summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas G. Lockhart1998-05-09 23:15:20 +0000
committerThomas G. Lockhart1998-05-09 23:15:20 +0000
commitd4a95fd7ab5f3294eec134bf970fb01a5be2c950 (patch)
tree215b319304d75acc61b4abfc90caafc8c2308aff
parentdc9a9cdfb9d5f823e69f30a6b7a13cf57531e32d (diff)
Allow more variations on valid floating point numbers (e.g. ".1", "1e6").
Reintroduce fixes for unary minus parsing with leading spaces.
-rw-r--r--src/backend/parser/scan.l17
1 files changed, 11 insertions, 6 deletions
diff --git a/src/backend/parser/scan.l b/src/backend/parser/scan.l
index 8b0952103e7..6fe3af8369c 100644
--- a/src/backend/parser/scan.l
+++ b/src/backend/parser/scan.l
@@ -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;