File token.l changed (mode: 100644) (index a59add3..768c4e9) |
... |
... |
HEXDIGIT [0-9a-fA-F] |
30 |
30 |
ID [a-zA-Z]([a-zA-Z0-9_]*[a-zA-Z0-9])? |
ID [a-zA-Z]([a-zA-Z0-9_]*[a-zA-Z0-9])? |
31 |
31 |
SPACE [ \t] |
SPACE [ \t] |
32 |
32 |
TABS [\x01-\x09\x0B\x0C\x0E-\x1F] |
TABS [\x01-\x09\x0B\x0C\x0E-\x1F] |
33 |
|
STRINGSTART ["] |
|
|
33 |
|
|
34 |
34 |
|
|
35 |
35 |
%x RAWCODE |
%x RAWCODE |
|
36 |
|
%x INSTRING |
36 |
37 |
|
|
37 |
38 |
%% |
%% |
38 |
39 |
|
|
|
... |
... |
STRINGSTART ["] |
45 |
46 |
return NEWLINE; |
return NEWLINE; |
46 |
47 |
} |
} |
47 |
48 |
|
|
48 |
|
[']\\[btrnf"\\]['] { return UNITTYPEINT; } |
|
|
49 |
|
[']\\[btrnf\\]['] { return UNITTYPEINT; } |
49 |
50 |
[']\\.['] { |
[']\\.['] { |
50 |
51 |
yyerrorline(3, lineno, "Invalid escape character sequence"); |
yyerrorline(3, lineno, "Invalid escape character sequence"); |
51 |
52 |
return UNITTYPEINT; |
return UNITTYPEINT; |
|
... |
... |
STRINGSTART ["] |
72 |
73 |
yyerrorline(3, lineno, "Invalid escape character sequence"); |
yyerrorline(3, lineno, "Invalid escape character sequence"); |
73 |
74 |
rawcodelen++; |
rawcodelen++; |
74 |
75 |
} |
} |
75 |
|
<RAWCODE>\r*\n { lineno++; isconstant = 0; rawcodelen += strlen(yytext) ;} |
|
|
76 |
|
<RAWCODE>\r?\n { lineno++; isconstant = 0; rawcodelen += strlen(yytext); } |
|
77 |
|
<RAWCODE>\r { lineno++; isconstant = 0; rawcodelen++; } |
76 |
78 |
<RAWCODE>. { rawcodelen++; } |
<RAWCODE>. { rawcodelen++; } |
77 |
79 |
|
|
|
80 |
|
["] { BEGIN(INSTRING); } |
|
81 |
|
<INSTRING>["] { BEGIN(INITIAL); return STRINGLIT; } |
|
82 |
|
<INSTRING>\\[btrnf"\\] { } |
|
83 |
|
<INSTRING>\\. { yyerrorline(3, lineno, "Invalid escape character sequence"); } |
|
84 |
|
<INSTRING>\r?\n { lineno++; isconstant = 0; } |
|
85 |
|
<INSTRING>\r { lineno++; isconstant = 0; } |
|
86 |
|
<INSTRING>. {} |
78 |
87 |
|
|
79 |
|
{STRINGSTART} { int prevChar = 0; |
|
80 |
|
int curChar = input(); |
|
81 |
|
islinebreak = 0; |
|
82 |
|
for (;;) { |
|
83 |
|
if (prevChar == '\r' && curChar != '\r') { |
|
84 |
|
lineno++; isconstant = 0; |
|
85 |
|
} |
|
86 |
|
if (curChar == EOF) |
|
87 |
|
break; |
|
88 |
|
else if (prevChar == '\\') { |
|
89 |
|
if (curChar != 'b' && curChar != 't' && curChar != 'r' && curChar != 'n' && curChar != 'f' && curChar != '\"' && curChar != '\\') |
|
90 |
|
yyerrorline(3, lineno, "Invalid escape character sequence"); |
|
91 |
|
curChar = 0; |
|
92 |
|
} else if (curChar == '\"') { |
|
93 |
|
break; |
|
94 |
|
} |
|
95 |
|
prevChar = curChar; |
|
96 |
|
curChar = input(); |
|
97 |
|
} |
|
98 |
|
return STRINGLIT; |
|
99 |
|
} |
|
100 |
88 |
|
|
101 |
89 |
{NEWLINE} lineno++; islinebreak=1; isconstant=0; return NEWLINE; |
{NEWLINE} lineno++; islinebreak=1; isconstant=0; return NEWLINE; |
102 |
90 |
|
|
|
... |
... |
STRINGSTART ["] |
166 |
154 |
[ \t]+ /* eat up whitespace */ |
[ \t]+ /* eat up whitespace */ |
167 |
155 |
[\x01-\x09\x0B\x0C\x0E-\x1F]+ /* eat up tabs */ |
[\x01-\x09\x0B\x0C\x0E-\x1F]+ /* eat up tabs */ |
168 |
156 |
|
|
169 |
|
. if (1) { char ebuf[1024]; sprintf(ebuf, "Unrecognized character %s (ASCII %d)", yytext, yytext[0] ); yyerrorline(3, lineno, ebuf); } |
|
|
157 |
|
. if (1) { char ebuf[1024]; sprintf(ebuf, "Unrecognized character %s (ASCII %d)", yytext, (unsigned char)yytext[0] ); yyerrorline(3, lineno, ebuf); } |
170 |
158 |
|
|
171 |
159 |
%% |
%% |
172 |
160 |
|
|