[postgis-tickets] r17234 - Add lex initialization
Paul Ramsey
pramsey at cleverelephant.ca
Mon Feb 11 09:17:04 PST 2019
Author: pramsey
Date: 2019-02-11 09:17:03 -0800 (Mon, 11 Feb 2019)
New Revision: 17234
Modified:
trunk/liblwgeom/lwin_wkt_lex.l
Log:
Add lex initialization
References #4017
Modified: trunk/liblwgeom/lwin_wkt_lex.l
===================================================================
--- trunk/liblwgeom/lwin_wkt_lex.l 2019-02-11 16:41:35 UTC (rev 17233)
+++ trunk/liblwgeom/lwin_wkt_lex.l 2019-02-11 17:17:03 UTC (rev 17234)
@@ -8,12 +8,12 @@
#include "lwin_wkt_parse.h"
#include "lwgeom_log.h"
-static YY_BUFFER_STATE wkt_yy_buf_state;
+static YY_BUFFER_STATE wkt_yy_buf_state;
/*
* Handle errors due to unexpected junk in WKT strings.
*/
-static void wkt_lexer_unknown()
+static void wkt_lexer_unknown()
{
/* Set the global error state */
global_parser_result.errcode = PARSER_ERROR_OTHER;
@@ -21,8 +21,8 @@
global_parser_result.errlocation = wkt_yylloc.last_column;
}
-/*
-* This macro is magically run after a rule is found but before the main
+/*
+* This macro is magically run after a rule is found but before the main
* action is run. We use it to update the parse location information
* so we can report on where things fail. Also optionally to dump
* debugging info.
@@ -34,7 +34,7 @@
LWDEBUGF(5,"lex: %s", wkt_yytext); \
} while (0);
-
+
%}
%option prefix="wkt_yy"
@@ -52,13 +52,13 @@
LWDEBUG(5,"DOUBLE");
wkt_yylval.doublevalue = atof(wkt_yytext);
yyless(wkt_yyleng-1);
- return DOUBLE_TOK;
+ return DOUBLE_TOK;
}
-SRID=-?[0-9]+ {
+SRID=-?[0-9]+ {
LWDEBUG(5,"SRID");
- wkt_yylval.integervalue = wkt_lexer_read_srid(wkt_yytext);
- return SRID_TOK;
+ wkt_yylval.integervalue = wkt_lexer_read_srid(wkt_yytext);
+ return SRID_TOK;
}
GEOMETRYCOLLECTION { return COLLECTION_TOK; }
@@ -78,10 +78,10 @@
POINT { return POINT_TOK; }
EMPTY { return EMPTY_TOK; }
-Z|M|ZM {
+Z|M|ZM {
LWDEBUG(5,"DIMENSIONALITY");
wkt_yylval.stringvalue = wkt_yytext;
- return DIMENSIONALITY_TOK;
+ return DIMENSIONALITY_TOK;
}
\( { LWDEBUG(5,"LBRACKET"); return LBRACKET_TOK; }
@@ -92,9 +92,9 @@
[ \t\n\r]+ { /* ignore whitespace */ LWDEBUG(5,"WHITESPACE"); }
. { /* Error out and stop parsing on unknown/unexpected characters */
- LWDEBUG(5,"UNKNOWN");
+ LWDEBUG(5,"UNKNOWN");
wkt_lexer_unknown();
- yyterminate();
+ yyterminate();
}
%%
@@ -117,16 +117,17 @@
/*
* Set up the lexer!
*/
-void wkt_lexer_init(char *src)
-{
- wkt_yy_buf_state = wkt_yy_scan_string(src);
-}
+void wkt_lexer_init(char *src)
+{
+ yy_init_globals();
+ wkt_yy_buf_state = wkt_yy_scan_string(src);
+}
/*
* Clean up the lexer!
*/
-void wkt_lexer_close()
-{
- wkt_yy_delete_buffer(wkt_yy_buf_state);
-}
+void wkt_lexer_close()
+{
+ wkt_yy_delete_buffer(wkt_yy_buf_state);
+}
More information about the postgis-tickets
mailing list