Allow more variations on valid floating point numbers (e.g. ".1", "1e6").
authorThomas G. Lockhart
Sat, 9 May 1998 23:15:20 +0000 (23:15 +0000)
committerThomas G. Lockhart
Sat, 9 May 1998 23:15:20 +0000 (23:15 +0000)
Reintroduce fixes for unary minus parsing with leading spaces.

src/backend/parser/scan.l

index 8b0952103e7a070441255b1bdb473ede1f439db6..6fe3af8369c8f69ed4bc65e840a15035587b037e 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/backend/parser/scan.l,v 1.38 1998/04/08 06:35:00 thomas Exp $
+ *   $Header: /cvsroot/pgsql/src/backend/parser/scan.l,v 1.39 1998/05/09 23:15:20 thomas Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -148,12 +148,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}
 
@@ -291,7 +292,8 @@ other           .
 
 {typecast}     { return TYPECAST; }
 
-{self}/-[\.0-9]    {
+{self}/{space}*-[\.0-9]    {
+                   BEGIN(xm);
                    return (yytext[0]);
                }
 {self}         {   return (yytext[0]); }
@@ -311,6 +313,7 @@ other           .
                    return (PARAM);
                }
 
+
 {identifier}/{space}*-{number} {
                    int i;
                    ScanKeyword     *keyword;
@@ -386,6 +389,8 @@ other           .
                    CheckFloat8Val(yylval.dval);
                    return (FCONST);
                }
+
+
 {identifier}   {
                    int i;
                    ScanKeyword     *keyword;