#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;
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.
LWDEBUGF(5,"lex: %s", wkt_yytext); \
} while (0);
-
+
%}
%option prefix="wkt_yy"
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; }
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; }
[ \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();
}
%%
/*
* 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);
+}