summaryrefslogtreecommitdiff
path: root/src/interfaces/ecpg/preproc/pgc.l
diff options
context:
space:
mode:
Diffstat (limited to 'src/interfaces/ecpg/preproc/pgc.l')
-rw-r--r--src/interfaces/ecpg/preproc/pgc.l12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/interfaces/ecpg/preproc/pgc.l b/src/interfaces/ecpg/preproc/pgc.l
index 146938bf7d..c9f0cd459b 100644
--- a/src/interfaces/ecpg/preproc/pgc.l
+++ b/src/interfaces/ecpg/preproc/pgc.l
@@ -139,12 +139,13 @@ self [,()\[\].$\:\+\-\*\/\<\>\=\|]
op_and_self [\~\!\@\#\%\^\&\|\`\?\$\:\+\-\*\/\<\>\=]
operator {op_and_self}+
-xminteger {integer}/-
-xmreal {real}/{space}*-{digit}
xmstop -
-integer -?{digit}+
-real -?{digit}+\.{digit}+([Ee][-+]?{digit}+)?
+integer [\-]?{digit}+
+/*
+real [\-]?{digit}+\.{digit}+([Ee][-+]?{digit}+)?
+*/
+real [\-]?(((({digit}*\.{digit}+)|({digit}+\.{digit}*))([Ee][-+]?{digit}+)?)|({digit}+[Ee][-+]?{digit}+))
param \${integer}
@@ -309,7 +310,8 @@ before_comment);
<SQL>{typecast} { return TYPECAST; }
-<SQL>{self}/-[\.0-9] {
+<SQL>{self}/{space}*-[\.0-9] {
+ BEGIN(xm);
return (yytext[0]);
}
<SQL>{self} { return (yytext[0]); }