* and to eliminate parsing troubles for numeric strings.
* Exclusive states:
* bit string literal
- * extended C-style comments - thomas 1997-07-12
+ * extended C-style comments in C
+ * extended C-style comments in SQL
* delimited identifiers (double-quoted identifiers) - thomas 1997-10-27
* hexadecimal numeric string - thomas 1997-11-16
* standard quoted strings - thomas 1997-07-30
*/
%x xb
-%x xc
+%x xcc
+%x xcsql
%x xd
%x xdc
%x xh
{whitespace} { /* ignore */ }
-,SQL>{xcstart} {
+{xcstart} {
token_start = yytext;
state_before = YYSTATE;
xcdepth = 0;
- BEGIN(xc);
+ BEGIN(xcc);
/* Put back any characters past slash-star; see above */
yyless(2);
fputs("/*", yyout);
}
-{xcstart} {
+{xcstart} {
+ token_start = yytext;
+ state_before = YYSTATE;
+ xcdepth = 0;
+ BEGIN(xcsql);
+ /* Put back any characters past slash-star; see above */
+ yyless(2);
+ fputs("/*", yyout);
+ }
+{xcstart} { ECHO; }
+{xcstart} {
xcdepth++;
/* Put back any characters past slash-star; see above */
yyless(2);
fputs("/*", yyout);
}
-
-{xcstop} {
+{xcstop} {
ECHO;
if (xcdepth <= 0)
{
else
xcdepth--;
}
+{xcstop} {
+ ECHO;
+ BEGIN(state_before);
+ token_start = NULL;
+ }
+{xcinside} { ECHO; }
+{op_chars} { ECHO; }
+\*+ { ECHO; }
-{xcinside} { ECHO; }
-{op_chars} { ECHO; }
-\*+ { ECHO; }
-
-<> { mmfatal(PARSE_ERROR, "unterminated /* comment"); }
+<> { mmfatal(PARSE_ERROR, "unterminated /* comment"); }
{xbstart} {
token_start = yytext;