@@ -45,9 +45,10 @@ static void parseUnicode(char *s, int l);
45
45
46
46
%x xQUOTED
47
47
%x xNONQUOTED
48
+ %x xCOMMENT
48
49
49
50
special [\%\$\.\[\]\(\)\|\&\!\=\<\>\@\#\,\*]
50
- any [^\%\$\.\[\]\(\)\|\&\!\=\<\>\@\#\,\* \t\n\r\f\\\" ]
51
+ any [^\%\$\.\[\]\(\)\|\&\!\=\<\>\@\#\,\* \t\n\r\f\\\" \/ ]
51
52
blank [ \t\n\r\f ]
52
53
unicode \\ u[0-9A-Fa-f]{4}
53
54
@@ -57,6 +58,8 @@ unicode \\u[0-9A-Fa-f]{4}
57
58
58
59
<INITIAL>{blank}+ { /* ignore */ }
59
60
61
+ <INITIAL>\/\* { BEGIN xCOMMENT; }
62
+
60
63
<INITIAL>[+-]?[0-9]+(\.[0-9]+)?[eE][+-]?[0-9]+ /* float */ {
61
64
addstring(true, yytext, yyleng);
62
65
addchar(false, '\0 ');
@@ -113,6 +116,15 @@ unicode \\u[0-9A-Fa-f]{4}
113
116
}
114
117
115
118
119
+ <xNONQUOTED>\/\* {
120
+ yylval->str = scanstring;
121
+ BEGIN xCOMMENT;
122
+ return checkSpecialVal();
123
+ }
124
+
125
+
126
+ <xNONQUOTED,INITIAL>\/ { addchar(false, '/'); }
127
+
116
128
<xNONQUOTED>({special}|\" ) {
117
129
yylval->str = scanstring;
118
130
yyless(0);
@@ -126,9 +138,7 @@ unicode \\u[0-9A-Fa-f]{4}
126
138
return checkSpecialVal();
127
139
}
128
140
129
- <xNONQUOTED,xQUOTED>\\ [\"\\ ] {
130
- addchar(false, yytext[1]);
131
- }
141
+ <xNONQUOTED,xQUOTED>\\ [\"\\ ] { addchar(false, yytext[1]); }
132
142
133
143
<xNONQUOTED,xQUOTED>\\ b { addchar(false, '\b '); }
134
144
@@ -160,6 +170,14 @@ unicode \\u[0-9A-Fa-f]{4}
160
170
161
171
<INITIAL><<EOF>> { yyterminate(); }
162
172
173
+ <xCOMMENT>\*\/ { BEGIN INITIAL; }
174
+
175
+ <xCOMMENT>[^\*]+ { /* ignore */ }
176
+
177
+ <xCOMMENT>\* { /* ignore */ }
178
+
179
+ <xCOMMENT><<EOF>> { yyerror(" Unexpected end of comment" ); }
180
+
163
181
%%
164
182
165
183
void
0 commit comments