*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/pgc.l,v 1.116 2003/06/17 07:28:22 meskes Exp $
+ * $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/pgc.l,v 1.117 2003/06/20 15:16:06 meskes Exp $
*
*-------------------------------------------------------------------------
*/
xcinside [^*/]+
digit [0-9]
-letter [\200-\377_A-Za-z]
-letter_or_digit [\200-\377_A-Za-z0-9]
+ident_start [A-Za-z\200-\377_]
+ident_cont [A-Za-z\200-\377_0-9\$]
-identifier {letter}{letter_or_digit}*
+identifier {ident_start}{ident_cont}*
-array ({letter_or_digit}|[\+\-\*\%\/\(\)])*
+array ({ident_cont}|[\+\-\*\%\/\(\)])*
typecast "::"
/*
* If you change either set, adjust the character lists appearing in the
* rule for "operator"!
*/
-self [,()\[\].;$\:\+\-\*\/\%\^\<\>\=]
-op_chars [\~\!\@\#\^\&\|\`\?\$\+\-\*\/\%\<\>\=]
+self [,()\[\].;\:\+\-\*\/\%\^\<\>\=]
+op_chars [\~\!\@\#\^\&\|\`\?\+\-\*\/\%\<\>\=]
operator {op_chars}+
/* we no longer allow unary minus in numbers.
for (ic = nchars-2; ic >= 0; ic--)
{
- if (strchr("~!@#^&|`?$%", yytext[ic]))
+ if (strchr("~!@#^&|`?%", yytext[ic]))
break;
}
if (ic >= 0)
* that the "self" rule would have.
*/
if (nchars == 1 &&
- strchr(",()[].;$:+-*/%^<>=", yytext[0]))
+ strchr(",()[].;:+-*/%^<>=", yytext[0]))
return yytext[0];
}
else
BEGIN(xskip);
}
-<C,xskip>{informix_special}{endif}{space}* {
+<C,xskip>{informix_special}{endif}{space}*";" {
/* are we simulating Informix? */
if (compat == ECPG_COMPAT_INFORMIX)
{