diff --git a/lib/modules/Parser.pmod/C.pmod b/lib/modules/Parser.pmod/C.pmod index 251839ab0789fd9d6eb54b6e1151d6377f6d8c02..5150b3869ddc41daf2f007c6e83e9c2a44ee96ff 100644 --- a/lib/modules/Parser.pmod/C.pmod +++ b/lib/modules/Parser.pmod/C.pmod @@ -30,15 +30,18 @@ array(string) split(string data) case 'a'..'z': case 'A'..'Z': + case 128..65536: // Lets simplify things for now... case '_': while(1) { switch(data[pos]) { - case 'a'..'z': - case 'A'..'Z': - case '0'..'9': - case '_': + case '$': // allowed in some C (notably digital) + case 'a'..'z': + case 'A'..'Z': + case '0'..'9': + case 128..65536: // Lets simplify things for now... + case '_': pos++; continue; } @@ -52,6 +55,11 @@ array(string) split(string data) pos+=3; break; } + if(data[start..start+1]=="..") + { + pos+=3; + break; + } case '0'..'9': if(data[pos]=='0' && (data[pos+1]=='x' || data[pos+1]=='X')) @@ -105,6 +113,7 @@ array(string) split(string data) case '&': case '|': case '^': case '!': case '~': case '=': + case '@': case '+': case '-': case '<': case '>':