From a396db87647b449862df4168cec39eec92f45936 Mon Sep 17 00:00:00 2001 From: Paul Ramsey Date: Mon, 26 Feb 2018 19:52:01 +0000 Subject: [PATCH] Add re-generated files, a little after the lexer/parser so hopefully make stops harassing us for a while References #4017 git-svn-id: http://svn.osgeo.org/postgis/trunk@16423 b70326c6-7e19-0410-871a-916f4a2858ee --- liblwgeom/lwin_wkt_lex.c | 1070 ++++++++++++++++++++++-------------- liblwgeom/lwin_wkt_parse.c | 423 +++++++------- liblwgeom/lwin_wkt_parse.h | 27 +- 3 files changed, 850 insertions(+), 670 deletions(-) diff --git a/liblwgeom/lwin_wkt_lex.c b/liblwgeom/lwin_wkt_lex.c index a9670e21b..08e80b10a 100644 --- a/liblwgeom/lwin_wkt_lex.c +++ b/liblwgeom/lwin_wkt_lex.c @@ -1,31 +1,6 @@ -/********************************************************************** - * - * PostGIS - Spatial Types for PostgreSQL - * http://postgis.net - * - * PostGIS is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * PostGIS is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with PostGIS. If not, see . - * - ********************************************************************** - * - * Copyright (C) 2010-2015 Paul Ramsey - * Copyright (C) 2011-2014 Sandro Santilli - * - **********************************************************************/ +#line 1 "lwin_wkt_lex.c" -#line 2 "lwin_wkt_lex.c" - -#line 4 "lwin_wkt_lex.c" +#line 3 "lwin_wkt_lex.c" #define YY_INT_ALIGNED short int @@ -33,11 +8,17 @@ #define yy_create_buffer wkt_yy_create_buffer #define yy_delete_buffer wkt_yy_delete_buffer -#define yy_flex_debug wkt_yy_flex_debug +#define yy_scan_buffer wkt_yy_scan_buffer +#define yy_scan_string wkt_yy_scan_string +#define yy_scan_bytes wkt_yy_scan_bytes #define yy_init_buffer wkt_yy_init_buffer #define yy_flush_buffer wkt_yy_flush_buffer #define yy_load_buffer_state wkt_yy_load_buffer_state #define yy_switch_to_buffer wkt_yy_switch_to_buffer +#define yypush_buffer_state wkt_yypush_buffer_state +#define yypop_buffer_state wkt_yypop_buffer_state +#define yyensure_buffer_stack wkt_yyensure_buffer_stack +#define yy_flex_debug wkt_yy_flex_debug #define yyin wkt_yyin #define yyleng wkt_yyleng #define yylex wkt_yylex @@ -52,12 +33,246 @@ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 -#define YY_FLEX_MINOR_VERSION 5 -#define YY_FLEX_SUBMINOR_VERSION 37 +#define YY_FLEX_MINOR_VERSION 6 +#define YY_FLEX_SUBMINOR_VERSION 4 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif +#ifdef yy_create_buffer +#define wkt_yy_create_buffer_ALREADY_DEFINED +#else +#define yy_create_buffer wkt_yy_create_buffer +#endif + +#ifdef yy_delete_buffer +#define wkt_yy_delete_buffer_ALREADY_DEFINED +#else +#define yy_delete_buffer wkt_yy_delete_buffer +#endif + +#ifdef yy_scan_buffer +#define wkt_yy_scan_buffer_ALREADY_DEFINED +#else +#define yy_scan_buffer wkt_yy_scan_buffer +#endif + +#ifdef yy_scan_string +#define wkt_yy_scan_string_ALREADY_DEFINED +#else +#define yy_scan_string wkt_yy_scan_string +#endif + +#ifdef yy_scan_bytes +#define wkt_yy_scan_bytes_ALREADY_DEFINED +#else +#define yy_scan_bytes wkt_yy_scan_bytes +#endif + +#ifdef yy_init_buffer +#define wkt_yy_init_buffer_ALREADY_DEFINED +#else +#define yy_init_buffer wkt_yy_init_buffer +#endif + +#ifdef yy_flush_buffer +#define wkt_yy_flush_buffer_ALREADY_DEFINED +#else +#define yy_flush_buffer wkt_yy_flush_buffer +#endif + +#ifdef yy_load_buffer_state +#define wkt_yy_load_buffer_state_ALREADY_DEFINED +#else +#define yy_load_buffer_state wkt_yy_load_buffer_state +#endif + +#ifdef yy_switch_to_buffer +#define wkt_yy_switch_to_buffer_ALREADY_DEFINED +#else +#define yy_switch_to_buffer wkt_yy_switch_to_buffer +#endif + +#ifdef yypush_buffer_state +#define wkt_yypush_buffer_state_ALREADY_DEFINED +#else +#define yypush_buffer_state wkt_yypush_buffer_state +#endif + +#ifdef yypop_buffer_state +#define wkt_yypop_buffer_state_ALREADY_DEFINED +#else +#define yypop_buffer_state wkt_yypop_buffer_state +#endif + +#ifdef yyensure_buffer_stack +#define wkt_yyensure_buffer_stack_ALREADY_DEFINED +#else +#define yyensure_buffer_stack wkt_yyensure_buffer_stack +#endif + +#ifdef yylex +#define wkt_yylex_ALREADY_DEFINED +#else +#define yylex wkt_yylex +#endif + +#ifdef yyrestart +#define wkt_yyrestart_ALREADY_DEFINED +#else +#define yyrestart wkt_yyrestart +#endif + +#ifdef yylex_init +#define wkt_yylex_init_ALREADY_DEFINED +#else +#define yylex_init wkt_yylex_init +#endif + +#ifdef yylex_init_extra +#define wkt_yylex_init_extra_ALREADY_DEFINED +#else +#define yylex_init_extra wkt_yylex_init_extra +#endif + +#ifdef yylex_destroy +#define wkt_yylex_destroy_ALREADY_DEFINED +#else +#define yylex_destroy wkt_yylex_destroy +#endif + +#ifdef yyget_debug +#define wkt_yyget_debug_ALREADY_DEFINED +#else +#define yyget_debug wkt_yyget_debug +#endif + +#ifdef yyset_debug +#define wkt_yyset_debug_ALREADY_DEFINED +#else +#define yyset_debug wkt_yyset_debug +#endif + +#ifdef yyget_extra +#define wkt_yyget_extra_ALREADY_DEFINED +#else +#define yyget_extra wkt_yyget_extra +#endif + +#ifdef yyset_extra +#define wkt_yyset_extra_ALREADY_DEFINED +#else +#define yyset_extra wkt_yyset_extra +#endif + +#ifdef yyget_in +#define wkt_yyget_in_ALREADY_DEFINED +#else +#define yyget_in wkt_yyget_in +#endif + +#ifdef yyset_in +#define wkt_yyset_in_ALREADY_DEFINED +#else +#define yyset_in wkt_yyset_in +#endif + +#ifdef yyget_out +#define wkt_yyget_out_ALREADY_DEFINED +#else +#define yyget_out wkt_yyget_out +#endif + +#ifdef yyset_out +#define wkt_yyset_out_ALREADY_DEFINED +#else +#define yyset_out wkt_yyset_out +#endif + +#ifdef yyget_leng +#define wkt_yyget_leng_ALREADY_DEFINED +#else +#define yyget_leng wkt_yyget_leng +#endif + +#ifdef yyget_text +#define wkt_yyget_text_ALREADY_DEFINED +#else +#define yyget_text wkt_yyget_text +#endif + +#ifdef yyget_lineno +#define wkt_yyget_lineno_ALREADY_DEFINED +#else +#define yyget_lineno wkt_yyget_lineno +#endif + +#ifdef yyset_lineno +#define wkt_yyset_lineno_ALREADY_DEFINED +#else +#define yyset_lineno wkt_yyset_lineno +#endif + +#ifdef yywrap +#define wkt_yywrap_ALREADY_DEFINED +#else +#define yywrap wkt_yywrap +#endif + +#ifdef yyalloc +#define wkt_yyalloc_ALREADY_DEFINED +#else +#define yyalloc wkt_yyalloc +#endif + +#ifdef yyrealloc +#define wkt_yyrealloc_ALREADY_DEFINED +#else +#define yyrealloc wkt_yyrealloc +#endif + +#ifdef yyfree +#define wkt_yyfree_ALREADY_DEFINED +#else +#define yyfree wkt_yyfree +#endif + +#ifdef yytext +#define wkt_yytext_ALREADY_DEFINED +#else +#define yytext wkt_yytext +#endif + +#ifdef yyleng +#define wkt_yyleng_ALREADY_DEFINED +#else +#define yyleng wkt_yyleng +#endif + +#ifdef yyin +#define wkt_yyin_ALREADY_DEFINED +#else +#define yyin wkt_yyin +#endif + +#ifdef yyout +#define wkt_yyout_ALREADY_DEFINED +#else +#define yyout wkt_yyout +#endif + +#ifdef yy_flex_debug +#define wkt_yy_flex_debug_ALREADY_DEFINED +#else +#define yy_flex_debug wkt_yy_flex_debug +#endif + +#ifdef yylineno +#define wkt_yylineno_ALREADY_DEFINED +#else +#define yylineno wkt_yylineno +#endif + /* First, we deal with platform-specific or compiler-specific issues. */ /* begin standard C headers. */ @@ -78,7 +293,7 @@ #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, - * if you want the limit (max/min) macros for int types. + * if you want the limit (max/min) macros for int types. */ #ifndef __STDC_LIMIT_MACROS #define __STDC_LIMIT_MACROS 1 @@ -95,7 +310,7 @@ typedef uint32_t flex_uint32_t; typedef signed char flex_int8_t; typedef short int flex_int16_t; typedef int flex_int32_t; -typedef unsigned char flex_uint8_t; +typedef unsigned char flex_uint8_t; typedef unsigned short int flex_uint16_t; typedef unsigned int flex_uint32_t; @@ -128,65 +343,61 @@ typedef unsigned int flex_uint32_t; #define UINT32_MAX (4294967295U) #endif +#ifndef SIZE_MAX +#define SIZE_MAX (~(size_t)0) +#endif + #endif /* ! C99 */ #endif /* ! FLEXINT_H */ -#ifdef __cplusplus - -/* The "const" storage-class-modifier is valid. */ -#define YY_USE_CONST - -#else /* ! __cplusplus */ - -/* C99 requires __STDC__ to be defined as 1. */ -#if defined (__STDC__) +/* begin standard C++ headers. */ -#define YY_USE_CONST - -#endif /* defined (__STDC__) */ -#endif /* ! __cplusplus */ - -#ifdef YY_USE_CONST +/* TODO: this is always defined, so inline it */ #define yyconst const + +#if defined(__GNUC__) && __GNUC__ >= 3 +#define yynoreturn __attribute__((__noreturn__)) #else -#define yyconst +#define yynoreturn #endif /* Returned upon end-of-file. */ #define YY_NULL 0 -/* Promotes a possibly negative, possibly signed char to an unsigned - * integer for use as an array index. If the signed char is negative, - * we want to instead treat it as an 8-bit unsigned char, hence the - * double cast. +/* Promotes a possibly negative, possibly signed char to an + * integer in range [0..255] for use as an array index. */ -#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) +#define YY_SC_TO_UI(c) ((YY_CHAR) (c)) /* Enter a start condition. This macro really ought to take a parameter, * but we do it the disgusting crufty way forced on us by the ()-less * definition of BEGIN. */ #define BEGIN (yy_start) = 1 + 2 * - /* Translate the current start state into a value that can be later handed * to BEGIN to return to the state. The YYSTATE alias is for lex * compatibility. */ #define YY_START (((yy_start) - 1) / 2) #define YYSTATE YY_START - /* Action number for EOF rule of a given start state. */ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) - /* Special action meaning "start processing a new file". */ -#define YY_NEW_FILE wkt_yyrestart(wkt_yyin ) - +#define YY_NEW_FILE yyrestart( yyin ) #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ #ifndef YY_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k. + * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. + * Ditto for the __ia64__ case accordingly. + */ +#define YY_BUF_SIZE 32768 +#else #define YY_BUF_SIZE 16384 +#endif /* __ia64__ */ #endif /* The state buf must be large enough to hold one state per character in the main buffer. @@ -203,30 +414,30 @@ typedef struct yy_buffer_state *YY_BUFFER_STATE; typedef size_t yy_size_t; #endif -extern yy_size_t wkt_yyleng; +extern int yyleng; -extern FILE *wkt_yyin, *wkt_yyout; +extern FILE *yyin, *yyout; #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 - + #define YY_LESS_LINENO(n) - + #define YY_LINENO_REWIND_TO(ptr) + /* Return all but the first "n" matched characters back to the input stream. */ #define yyless(n) \ do \ { \ - /* Undo effects of setting up wkt_yytext. */ \ + /* Undo effects of setting up yytext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ *yy_cp = (yy_hold_char); \ YY_RESTORE_YY_MORE_OFFSET \ (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ - YY_DO_BEFORE_ACTION; /* set up wkt_yytext again */ \ + YY_DO_BEFORE_ACTION; /* set up yytext again */ \ } \ while ( 0 ) - #define unput(c) yyunput( c, (yytext_ptr) ) #ifndef YY_STRUCT_YY_BUFFER_STATE @@ -241,12 +452,12 @@ struct yy_buffer_state /* Size of input buffer in bytes, not including room for EOB * characters. */ - yy_size_t yy_buf_size; + int yy_buf_size; /* Number of characters read into yy_ch_buf, not including EOB * characters. */ - yy_size_t yy_n_chars; + int yy_n_chars; /* Whether we "own" the buffer - i.e., we know we created it, * and can realloc() it to grow it, and should free() it to @@ -286,8 +497,8 @@ struct yy_buffer_state * possible backing-up. * * When we actually see the EOF, we change the status to "new" - * (via wkt_yyrestart()), so that the user can continue scanning by - * just pointing wkt_yyin at a new input file. + * (via yyrestart()), so that the user can continue scanning by + * just pointing yyin at a new input file. */ #define YY_BUFFER_EOF_PENDING 2 @@ -297,7 +508,7 @@ struct yy_buffer_state /* Stack of input buffers. */ static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */ static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */ -static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */ +static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */ /* We provide macros for accessing buffer states in case in the * future we want to put the buffer states in a more general @@ -308,106 +519,101 @@ static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */ #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ : NULL) - /* Same as previous macro, but useful when we know that the buffer stack is not * NULL or when we need an lvalue. For internal use only. */ #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] -/* yy_hold_char holds the character lost when wkt_yytext is formed. */ +/* yy_hold_char holds the character lost when yytext is formed. */ static char yy_hold_char; -static yy_size_t yy_n_chars; /* number of characters read into yy_ch_buf */ -yy_size_t wkt_yyleng; +static int yy_n_chars; /* number of characters read into yy_ch_buf */ +int yyleng; /* Points to current character in buffer. */ -static char *yy_c_buf_p = (char *) 0; +static char *yy_c_buf_p = NULL; static int yy_init = 0; /* whether we need to initialize */ static int yy_start = 0; /* start state number */ -/* Flag which is used to allow wkt_yywrap()'s to do buffer switches - * instead of setting up a fresh wkt_yyin. A bit of a hack ... +/* Flag which is used to allow yywrap()'s to do buffer switches + * instead of setting up a fresh yyin. A bit of a hack ... */ static int yy_did_buffer_switch_on_eof; -void wkt_yyrestart (FILE *input_file ); -void wkt_yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ); -YY_BUFFER_STATE wkt_yy_create_buffer (FILE *file,int size ); -void wkt_yy_delete_buffer (YY_BUFFER_STATE b ); -void wkt_yy_flush_buffer (YY_BUFFER_STATE b ); -void wkt_yypush_buffer_state (YY_BUFFER_STATE new_buffer ); -void wkt_yypop_buffer_state (void ); +void yyrestart ( FILE *input_file ); +void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer ); +YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size ); +void yy_delete_buffer ( YY_BUFFER_STATE b ); +void yy_flush_buffer ( YY_BUFFER_STATE b ); +void yypush_buffer_state ( YY_BUFFER_STATE new_buffer ); +void yypop_buffer_state ( void ); -static void wkt_yyensure_buffer_stack (void ); -static void wkt_yy_load_buffer_state (void ); -static void wkt_yy_init_buffer (YY_BUFFER_STATE b,FILE *file ); +static void yyensure_buffer_stack ( void ); +static void yy_load_buffer_state ( void ); +static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file ); +#define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER ) -#define YY_FLUSH_BUFFER wkt_yy_flush_buffer(YY_CURRENT_BUFFER ) +YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size ); +YY_BUFFER_STATE yy_scan_string ( const char *yy_str ); +YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len ); -YY_BUFFER_STATE wkt_yy_scan_buffer (char *base,yy_size_t size ); -YY_BUFFER_STATE wkt_yy_scan_string (yyconst char *yy_str ); -YY_BUFFER_STATE wkt_yy_scan_bytes (yyconst char *bytes,yy_size_t len ); - -void *wkt_yyalloc (yy_size_t ); -void *wkt_yyrealloc (void *,yy_size_t ); -void wkt_yyfree (void * ); - -#define yy_new_buffer wkt_yy_create_buffer +void *yyalloc ( yy_size_t ); +void *yyrealloc ( void *, yy_size_t ); +void yyfree ( void * ); +#define yy_new_buffer yy_create_buffer #define yy_set_interactive(is_interactive) \ { \ if ( ! YY_CURRENT_BUFFER ){ \ - wkt_yyensure_buffer_stack (); \ + yyensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ - wkt_yy_create_buffer(wkt_yyin,YY_BUF_SIZE ); \ + yy_create_buffer( yyin, YY_BUF_SIZE ); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } - #define yy_set_bol(at_bol) \ { \ if ( ! YY_CURRENT_BUFFER ){\ - wkt_yyensure_buffer_stack (); \ + yyensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ - wkt_yy_create_buffer(wkt_yyin,YY_BUF_SIZE ); \ + yy_create_buffer( yyin, YY_BUF_SIZE ); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ } - #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) /* Begin user sect3 */ -#define wkt_yywrap() 1 +#define wkt_yywrap() (/*CONSTCOND*/1) #define YY_SKIP_YYWRAP +typedef flex_uint8_t YY_CHAR; -typedef unsigned char YY_CHAR; - -FILE *wkt_yyin = (FILE *) 0, *wkt_yyout = (FILE *) 0; +FILE *yyin = NULL, *yyout = NULL; typedef int yy_state_type; -extern int wkt_yylineno; - -int wkt_yylineno = 1; +extern int yylineno; +int yylineno = 1; -extern char *wkt_yytext; -#define yytext_ptr wkt_yytext +extern char *yytext; +#ifdef yytext_ptr +#undef yytext_ptr +#endif +#define yytext_ptr yytext -static yy_state_type yy_get_previous_state (void ); -static yy_state_type yy_try_NUL_trans (yy_state_type current_state ); -static int yy_get_next_buffer (void ); -static void yy_fatal_error (yyconst char msg[] ); +static yy_state_type yy_get_previous_state ( void ); +static yy_state_type yy_try_NUL_trans ( yy_state_type current_state ); +static int yy_get_next_buffer ( void ); +static void yynoreturn yy_fatal_error ( const char* msg ); /* Done after the current pattern has been matched and before the - * corresponding action - sets up wkt_yytext. + * corresponding action - sets up yytext. */ #define YY_DO_BEFORE_ACTION \ (yytext_ptr) = yy_bp; \ - wkt_yyleng = (size_t) (yy_cp - yy_bp); \ + yyleng = (int) (yy_cp - yy_bp); \ (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; - #define YY_NUM_RULES 26 #define YY_END_OF_BUFFER 27 /* This struct is not used in this scanner, @@ -417,7 +623,7 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[172] = +static const flex_int16_t yy_accept[172] = { 0, 0, 0, 27, 25, 24, 24, 20, 21, 22, 25, 25, 1, 23, 25, 25, 25, 25, 19, 25, 25, @@ -440,7 +646,7 @@ static yyconst flex_int16_t yy_accept[172] = 0 } ; -static yyconst flex_int32_t yy_ec[256] = +static const YY_CHAR yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, @@ -472,7 +678,7 @@ static yyconst flex_int32_t yy_ec[256] = 1, 1, 1, 1, 1 } ; -static yyconst flex_int32_t yy_meta[53] = +static const YY_CHAR yy_meta[53] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -482,7 +688,7 @@ static yyconst flex_int32_t yy_meta[53] = 1, 1 } ; -static yyconst flex_int16_t yy_base[172] = +static const flex_int16_t yy_base[172] = { 0, 0, 0, 353, 366, 51, 53, 366, 366, 366, 48, 342, 50, 366, 41, 40, 47, 44, 38, 44, 43, @@ -505,7 +711,7 @@ static yyconst flex_int16_t yy_base[172] = 366 } ; -static yyconst flex_int16_t yy_def[172] = +static const flex_int16_t yy_def[172] = { 0, 171, 1, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, @@ -528,7 +734,7 @@ static yyconst flex_int16_t yy_def[172] = 0 } ; -static yyconst flex_int16_t yy_nxt[419] = +static const flex_int16_t yy_nxt[419] = { 0, 4, 5, 6, 7, 8, 4, 9, 10, 11, 12, 13, 4, 4, 14, 4, 15, 4, 16, 4, 4, @@ -578,7 +784,7 @@ static yyconst flex_int16_t yy_nxt[419] = 171, 171, 171, 171, 171, 171, 171, 171 } ; -static yyconst flex_int16_t yy_chk[419] = +static const flex_int16_t yy_chk[419] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -631,8 +837,8 @@ static yyconst flex_int16_t yy_chk[419] = static yy_state_type yy_last_accepting_state; static char *yy_last_accepting_cpos; -extern int wkt_yy_flex_debug; -int wkt_yy_flex_debug = 0; +extern int yy_flex_debug; +int yy_flex_debug = 0; /* The intent behind this definition is that it'll catch * any uses of REJECT which flex missed. @@ -641,7 +847,7 @@ int wkt_yy_flex_debug = 0; #define yymore() yymore_used_but_not_detected #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET -char *wkt_yytext; +char *yytext; #line 1 "lwin_wkt_lex.l" #line 2 "lwin_wkt_lex.l" @@ -653,29 +859,12 @@ char *wkt_yytext; #include "lwin_wkt_parse.h" #include "lwgeom_log.h" -static YY_BUFFER_STATE wkt_yy_buf_state; - - -/* -* Set up the lexer! -*/ -void wkt_lexer_init(char *src) -{ - 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); -} +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; @@ -683,24 +872,24 @@ static void wkt_lexer_unknown() 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. */ #define YY_USER_ACTION do { \ - wkt_yylloc.first_line = wkt_yylloc.last_line = wkt_yylineno; \ + wkt_yylloc.first_line = wkt_yylloc.last_line = yylineno; \ wkt_yylloc.first_column = wkt_yylloc.last_column; \ - wkt_yylloc.last_column += wkt_yyleng; \ + wkt_yylloc.last_column += yyleng; \ LWDEBUGF(5,"lex: %s", wkt_yytext); \ } while (0); - + +#line 889 "lwin_wkt_lex.c" #define YY_NO_INPUT 1 /* Suppress the default implementations. */ -#line 679 "lwin_wkt_lex.c" +#line 892 "lwin_wkt_lex.c" #define INITIAL 0 @@ -716,36 +905,36 @@ static void wkt_lexer_unknown() #define YY_EXTRA_TYPE void * #endif -static int yy_init_globals (void ); +static int yy_init_globals ( void ); /* Accessor methods to globals. These are made visible to non-reentrant scanners for convenience. */ -int wkt_yylex_destroy (void ); +int yylex_destroy ( void ); -int wkt_yyget_debug (void ); +int yyget_debug ( void ); -void wkt_yyset_debug (int debug_flag ); +void yyset_debug ( int debug_flag ); -YY_EXTRA_TYPE wkt_yyget_extra (void ); +YY_EXTRA_TYPE yyget_extra ( void ); -void wkt_yyset_extra (YY_EXTRA_TYPE user_defined ); +void yyset_extra ( YY_EXTRA_TYPE user_defined ); -FILE *wkt_yyget_in (void ); +FILE *yyget_in ( void ); -void wkt_yyset_in (FILE * in_str ); +void yyset_in ( FILE * _in_str ); -FILE *wkt_yyget_out (void ); +FILE *yyget_out ( void ); -void wkt_yyset_out (FILE * out_str ); +void yyset_out ( FILE * _out_str ); -yy_size_t wkt_yyget_leng (void ); + int yyget_leng ( void ); -char *wkt_yyget_text (void ); +char *yyget_text ( void ); -int wkt_yyget_lineno (void ); +int yyget_lineno ( void ); -void wkt_yyset_lineno (int line_number ); +void yyset_lineno ( int _line_number ); /* Macros after this point can all be overridden by user definitions in * section 1. @@ -753,33 +942,41 @@ void wkt_yyset_lineno (int line_number ); #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus -extern "C" int wkt_yywrap (void ); +extern "C" int yywrap ( void ); #else -extern int wkt_yywrap (void ); +extern int yywrap ( void ); +#endif #endif + +#ifndef YY_NO_UNPUT + #endif #ifndef yytext_ptr -static void yy_flex_strncpy (char *,yyconst char *,int ); +static void yy_flex_strncpy ( char *, const char *, int ); #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * ); +static int yy_flex_strlen ( const char * ); #endif #ifndef YY_NO_INPUT - #ifdef __cplusplus -static int yyinput (void ); +static int yyinput ( void ); #else -static int input (void ); +static int input ( void ); #endif #endif /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k */ +#define YY_READ_BUF_SIZE 16384 +#else #define YY_READ_BUF_SIZE 8192 +#endif /* __ia64__ */ #endif /* Copy whatever the last rule matched to the standard output. */ @@ -787,7 +984,7 @@ static int input (void ); /* This used to be an fputs(), but since the string might contain NUL's, * we now use fwrite(). */ -#define ECHO do { if (fwrite( wkt_yytext, wkt_yyleng, 1, wkt_yyout )) {} } while (0) +#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0) #endif /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, @@ -798,20 +995,20 @@ static int input (void ); if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ { \ int c = '*'; \ - size_t n; \ + int n; \ for ( n = 0; n < max_size && \ - (c = getc( wkt_yyin )) != EOF && c != '\n'; ++n ) \ + (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ buf[n] = (char) c; \ if ( c == '\n' ) \ buf[n++] = (char) c; \ - if ( c == EOF && ferror( wkt_yyin ) ) \ + if ( c == EOF && ferror( yyin ) ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ result = n; \ } \ else \ { \ errno=0; \ - while ( (result = fread(buf, 1, max_size, wkt_yyin))==0 && ferror(wkt_yyin)) \ + while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \ { \ if( errno != EINTR) \ { \ @@ -819,7 +1016,7 @@ static int input (void ); break; \ } \ errno=0; \ - clearerr(wkt_yyin); \ + clearerr(yyin); \ } \ }\ \ @@ -852,12 +1049,12 @@ static int input (void ); #ifndef YY_DECL #define YY_DECL_IS_OURS 1 -extern int wkt_yylex (void); +extern int yylex (void); -#define YY_DECL int wkt_yylex (void) +#define YY_DECL int yylex (void) #endif /* !YY_DECL */ -/* Code executed at the beginning of each rule, after wkt_yytext and wkt_yyleng +/* Code executed at the beginning of each rule, after yytext and yyleng * have been set up. */ #ifndef YY_USER_ACTION @@ -866,7 +1063,7 @@ extern int wkt_yylex (void); /* Code executed at the end of each rule. */ #ifndef YY_BREAK -#define YY_BREAK break; +#define YY_BREAK /*LINTED*/break; #endif #define YY_RULE_SETUP \ @@ -876,15 +1073,10 @@ extern int wkt_yylex (void); */ YY_DECL { - register yy_state_type yy_current_state; - register char *yy_cp, *yy_bp; - register int yy_act; - -#line 67 "lwin_wkt_lex.l" - - -#line 862 "lwin_wkt_lex.c" - + yy_state_type yy_current_state; + char *yy_cp, *yy_bp; + int yy_act; + if ( !(yy_init) ) { (yy_init) = 1; @@ -896,26 +1088,32 @@ YY_DECL if ( ! (yy_start) ) (yy_start) = 1; /* first start state */ - if ( ! wkt_yyin ) - wkt_yyin = stdin; + if ( ! yyin ) + yyin = stdin; - if ( ! wkt_yyout ) - wkt_yyout = stdout; + if ( ! yyout ) + yyout = stdout; if ( ! YY_CURRENT_BUFFER ) { - wkt_yyensure_buffer_stack (); + yyensure_buffer_stack (); YY_CURRENT_BUFFER_LVALUE = - wkt_yy_create_buffer(wkt_yyin,YY_BUF_SIZE ); + yy_create_buffer( yyin, YY_BUF_SIZE ); } - wkt_yy_load_buffer_state( ); + yy_load_buffer_state( ); } - while ( 1 ) /* loops until end-of-file is reached */ + { +#line 49 "lwin_wkt_lex.l" + + +#line 1110 "lwin_wkt_lex.c" + + while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { yy_cp = (yy_c_buf_p); - /* Support of wkt_yytext. */ + /* Support of yytext. */ *yy_cp = (yy_hold_char); /* yy_bp points to the position in yy_ch_buf of the start of @@ -927,7 +1125,7 @@ YY_DECL yy_match: do { - register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; + YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -937,9 +1135,9 @@ yy_match: { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 172 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } while ( yy_current_state != 171 ); @@ -964,152 +1162,152 @@ do_action: /* This label is used only to access EOF actions. */ case 1: YY_RULE_SETUP -#line 69 "lwin_wkt_lex.l" -{ +#line 51 "lwin_wkt_lex.l" +{ LWDEBUG(5,"DOUBLE"); - wkt_yylval.doublevalue = atof(wkt_yytext); - return DOUBLE_TOK; + wkt_yylval.doublevalue = atof(wkt_yytext); + return DOUBLE_TOK; } YY_BREAK case 2: YY_RULE_SETUP -#line 75 "lwin_wkt_lex.l" -{ +#line 57 "lwin_wkt_lex.l" +{ 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; } YY_BREAK case 3: YY_RULE_SETUP -#line 81 "lwin_wkt_lex.l" +#line 63 "lwin_wkt_lex.l" { return COLLECTION_TOK; } YY_BREAK case 4: YY_RULE_SETUP -#line 82 "lwin_wkt_lex.l" +#line 64 "lwin_wkt_lex.l" { return MSURFACE_TOK; } YY_BREAK case 5: YY_RULE_SETUP -#line 83 "lwin_wkt_lex.l" +#line 65 "lwin_wkt_lex.l" { return MPOLYGON_TOK; } YY_BREAK case 6: YY_RULE_SETUP -#line 84 "lwin_wkt_lex.l" +#line 66 "lwin_wkt_lex.l" { return MCURVE_TOK; } YY_BREAK case 7: YY_RULE_SETUP -#line 85 "lwin_wkt_lex.l" +#line 67 "lwin_wkt_lex.l" { return MLINESTRING_TOK; } YY_BREAK case 8: YY_RULE_SETUP -#line 86 "lwin_wkt_lex.l" +#line 68 "lwin_wkt_lex.l" { return MPOINT_TOK; } YY_BREAK case 9: YY_RULE_SETUP -#line 87 "lwin_wkt_lex.l" +#line 69 "lwin_wkt_lex.l" { return CURVEPOLYGON_TOK; } YY_BREAK case 10: YY_RULE_SETUP -#line 88 "lwin_wkt_lex.l" +#line 70 "lwin_wkt_lex.l" { return POLYGON_TOK; } YY_BREAK case 11: YY_RULE_SETUP -#line 89 "lwin_wkt_lex.l" +#line 71 "lwin_wkt_lex.l" { return COMPOUNDCURVE_TOK; } YY_BREAK case 12: YY_RULE_SETUP -#line 90 "lwin_wkt_lex.l" +#line 72 "lwin_wkt_lex.l" { return CIRCULARSTRING_TOK; } YY_BREAK case 13: YY_RULE_SETUP -#line 91 "lwin_wkt_lex.l" +#line 73 "lwin_wkt_lex.l" { return LINESTRING_TOK; } YY_BREAK case 14: YY_RULE_SETUP -#line 92 "lwin_wkt_lex.l" +#line 74 "lwin_wkt_lex.l" { return POLYHEDRALSURFACE_TOK; } YY_BREAK case 15: YY_RULE_SETUP -#line 93 "lwin_wkt_lex.l" +#line 75 "lwin_wkt_lex.l" { return TRIANGLE_TOK; } YY_BREAK case 16: YY_RULE_SETUP -#line 94 "lwin_wkt_lex.l" +#line 76 "lwin_wkt_lex.l" { return TIN_TOK; } YY_BREAK case 17: YY_RULE_SETUP -#line 95 "lwin_wkt_lex.l" +#line 77 "lwin_wkt_lex.l" { return POINT_TOK; } YY_BREAK case 18: YY_RULE_SETUP -#line 96 "lwin_wkt_lex.l" +#line 78 "lwin_wkt_lex.l" { return EMPTY_TOK; } YY_BREAK case 19: YY_RULE_SETUP -#line 98 "lwin_wkt_lex.l" -{ +#line 80 "lwin_wkt_lex.l" +{ LWDEBUG(5,"DIMENSIONALITY"); wkt_yylval.stringvalue = wkt_yytext; - return DIMENSIONALITY_TOK; + return DIMENSIONALITY_TOK; } YY_BREAK case 20: YY_RULE_SETUP -#line 104 "lwin_wkt_lex.l" +#line 86 "lwin_wkt_lex.l" { LWDEBUG(5,"LBRACKET"); return LBRACKET_TOK; } YY_BREAK case 21: YY_RULE_SETUP -#line 105 "lwin_wkt_lex.l" +#line 87 "lwin_wkt_lex.l" { LWDEBUG(5,"RBRACKET"); return RBRACKET_TOK; } YY_BREAK case 22: YY_RULE_SETUP -#line 106 "lwin_wkt_lex.l" +#line 88 "lwin_wkt_lex.l" { LWDEBUG(5,"COMMA"); return COMMA_TOK; } YY_BREAK case 23: YY_RULE_SETUP -#line 107 "lwin_wkt_lex.l" +#line 89 "lwin_wkt_lex.l" { LWDEBUG(5,"SEMICOLON"); return SEMICOLON_TOK; } YY_BREAK case 24: /* rule 24 can match eol */ YY_RULE_SETUP -#line 109 "lwin_wkt_lex.l" +#line 91 "lwin_wkt_lex.l" { /* ignore whitespace */ LWDEBUG(5,"WHITESPACE"); } YY_BREAK case 25: YY_RULE_SETUP -#line 111 "lwin_wkt_lex.l" +#line 93 "lwin_wkt_lex.l" { /* Error out and stop parsing on unknown/unexpected characters */ - LWDEBUG(5,"UNKNOWN"); + LWDEBUG(5,"UNKNOWN"); wkt_lexer_unknown(); - yyterminate(); + yyterminate(); } YY_BREAK case 26: YY_RULE_SETUP -#line 117 "lwin_wkt_lex.l" +#line 99 "lwin_wkt_lex.l" ECHO; YY_BREAK -#line 1088 "lwin_wkt_lex.c" +#line 1310 "lwin_wkt_lex.c" case YY_STATE_EOF(INITIAL): yyterminate(); @@ -1126,15 +1324,15 @@ case YY_STATE_EOF(INITIAL): { /* We're scanning a new file or input source. It's * possible that this happened because the user - * just pointed wkt_yyin at a new source and called - * wkt_yylex(). If so, then we have to assure + * just pointed yyin at a new source and called + * yylex(). If so, then we have to assure * consistency between YY_CURRENT_BUFFER and our * globals. Here is the right place to do so, because * this is the first action (other than possibly a * back-up) that will match for the new input source. */ (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; - YY_CURRENT_BUFFER_LVALUE->yy_input_file = wkt_yyin; + YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; } @@ -1188,11 +1386,11 @@ case YY_STATE_EOF(INITIAL): { (yy_did_buffer_switch_on_eof) = 0; - if ( wkt_yywrap( ) ) + if ( yywrap( ) ) { /* Note: because we've taken care in * yy_get_next_buffer() to have set up - * wkt_yytext, we can now set up + * yytext, we can now set up * yy_c_buf_p so that if some total * hoser (like flex itself) wants to * call the scanner after we return the @@ -1241,7 +1439,8 @@ case YY_STATE_EOF(INITIAL): "fatal flex scanner internal error--no action found" ); } /* end of action switch */ } /* end of scanning one token */ -} /* end of wkt_yylex */ + } /* end of user's declarations */ +} /* end of yylex */ /* yy_get_next_buffer - try to read in a new buffer * @@ -1252,9 +1451,9 @@ case YY_STATE_EOF(INITIAL): */ static int yy_get_next_buffer (void) { - register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; - register char *source = (yytext_ptr); - register int number_to_move, i; + char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; + char *source = (yytext_ptr); + int number_to_move, i; int ret_val; if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) @@ -1283,7 +1482,7 @@ static int yy_get_next_buffer (void) /* Try to read more data. */ /* First move last chars to start of buffer. */ - number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1; + number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1); for ( i = 0; i < number_to_move; ++i ) *(dest++) = *(source++); @@ -1296,7 +1495,7 @@ static int yy_get_next_buffer (void) else { - yy_size_t num_to_read = + int num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; while ( num_to_read <= 0 ) @@ -1310,7 +1509,7 @@ static int yy_get_next_buffer (void) if ( b->yy_is_our_buffer ) { - yy_size_t new_size = b->yy_buf_size * 2; + int new_size = b->yy_buf_size * 2; if ( new_size <= 0 ) b->yy_buf_size += b->yy_buf_size / 8; @@ -1319,11 +1518,12 @@ static int yy_get_next_buffer (void) b->yy_ch_buf = (char *) /* Include room in for 2 EOB chars. */ - wkt_yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); + yyrealloc( (void *) b->yy_ch_buf, + (yy_size_t) (b->yy_buf_size + 2) ); } else /* Can't grow it, we don't own it. */ - b->yy_ch_buf = 0; + b->yy_ch_buf = NULL; if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( @@ -1351,7 +1551,7 @@ static int yy_get_next_buffer (void) if ( number_to_move == YY_MORE_ADJ ) { ret_val = EOB_ACT_END_OF_FILE; - wkt_yyrestart(wkt_yyin ); + yyrestart( yyin ); } else @@ -1365,12 +1565,15 @@ static int yy_get_next_buffer (void) else ret_val = EOB_ACT_CONTINUE_SCAN; - if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { + if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { /* Extend the array by 50%, plus the number we really need. */ - yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) wkt_yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); + int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc( + (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size ); if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); + /* "- 2" to take care of EOB's */ + YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2); } (yy_n_chars) += number_to_move; @@ -1386,14 +1589,14 @@ static int yy_get_next_buffer (void) static yy_state_type yy_get_previous_state (void) { - register yy_state_type yy_current_state; - register char *yy_cp; - + yy_state_type yy_current_state; + char *yy_cp; + yy_current_state = (yy_start); for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) { - register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); + YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -1403,9 +1606,9 @@ static int yy_get_next_buffer (void) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 172 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; } return yy_current_state; @@ -1418,10 +1621,10 @@ static int yy_get_next_buffer (void) */ static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state ) { - register int yy_is_jam; - register char *yy_cp = (yy_c_buf_p); + int yy_is_jam; + char *yy_cp = (yy_c_buf_p); - register YY_CHAR yy_c = 1; + YY_CHAR yy_c = 1; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -1431,14 +1634,18 @@ static int yy_get_next_buffer (void) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 172 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; yy_is_jam = (yy_current_state == 171); return yy_is_jam ? 0 : yy_current_state; } +#ifndef YY_NO_UNPUT + +#endif + #ifndef YY_NO_INPUT #ifdef __cplusplus static int yyinput (void) @@ -1448,7 +1655,7 @@ static int yy_get_next_buffer (void) { int c; - + *(yy_c_buf_p) = (yy_hold_char); if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR ) @@ -1463,7 +1670,7 @@ static int yy_get_next_buffer (void) else { /* need more input */ - yy_size_t offset = (yy_c_buf_p) - (yytext_ptr); + int offset = (int) ((yy_c_buf_p) - (yytext_ptr)); ++(yy_c_buf_p); switch ( yy_get_next_buffer( ) ) @@ -1480,14 +1687,14 @@ static int yy_get_next_buffer (void) */ /* Reset buffer status. */ - wkt_yyrestart(wkt_yyin ); + yyrestart( yyin ); /*FALLTHROUGH*/ case EOB_ACT_END_OF_FILE: { - if ( wkt_yywrap( ) ) - return EOF; + if ( yywrap( ) ) + return 0; if ( ! (yy_did_buffer_switch_on_eof) ) YY_NEW_FILE; @@ -1506,7 +1713,7 @@ static int yy_get_next_buffer (void) } c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */ - *(yy_c_buf_p) = '\0'; /* preserve wkt_yytext */ + *(yy_c_buf_p) = '\0'; /* preserve yytext */ (yy_hold_char) = *++(yy_c_buf_p); return c; @@ -1515,35 +1722,35 @@ static int yy_get_next_buffer (void) /** Immediately switch to a different input stream. * @param input_file A readable stream. - * + * * @note This function does not reset the start condition to @c INITIAL . */ - void wkt_yyrestart (FILE * input_file ) + void yyrestart (FILE * input_file ) { - + if ( ! YY_CURRENT_BUFFER ){ - wkt_yyensure_buffer_stack (); + yyensure_buffer_stack (); YY_CURRENT_BUFFER_LVALUE = - wkt_yy_create_buffer(wkt_yyin,YY_BUF_SIZE ); + yy_create_buffer( yyin, YY_BUF_SIZE ); } - wkt_yy_init_buffer(YY_CURRENT_BUFFER,input_file ); - wkt_yy_load_buffer_state( ); + yy_init_buffer( YY_CURRENT_BUFFER, input_file ); + yy_load_buffer_state( ); } /** Switch to a different input buffer. * @param new_buffer The new input buffer. - * + * */ - void wkt_yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ) + void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ) { - + /* TODO. We should be able to replace this entire function body * with - * wkt_yypop_buffer_state(); - * wkt_yypush_buffer_state(new_buffer); + * yypop_buffer_state(); + * yypush_buffer_state(new_buffer); */ - wkt_yyensure_buffer_stack (); + yyensure_buffer_stack (); if ( YY_CURRENT_BUFFER == new_buffer ) return; @@ -1556,61 +1763,61 @@ static int yy_get_next_buffer (void) } YY_CURRENT_BUFFER_LVALUE = new_buffer; - wkt_yy_load_buffer_state( ); + yy_load_buffer_state( ); /* We don't actually know whether we did this switch during - * EOF (wkt_yywrap()) processing, but the only time this flag - * is looked at is after wkt_yywrap() is called, so it's safe + * EOF (yywrap()) processing, but the only time this flag + * is looked at is after yywrap() is called, so it's safe * to go ahead and always set it. */ (yy_did_buffer_switch_on_eof) = 1; } -static void wkt_yy_load_buffer_state (void) +static void yy_load_buffer_state (void) { (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; - wkt_yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; + yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; (yy_hold_char) = *(yy_c_buf_p); } /** Allocate and initialize an input buffer state. * @param file A readable stream. * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. - * + * * @return the allocated buffer state. */ - YY_BUFFER_STATE wkt_yy_create_buffer (FILE * file, int size ) + YY_BUFFER_STATE yy_create_buffer (FILE * file, int size ) { YY_BUFFER_STATE b; - - b = (YY_BUFFER_STATE) wkt_yyalloc(sizeof( struct yy_buffer_state ) ); + + b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) - YY_FATAL_ERROR( "out of dynamic memory in wkt_yy_create_buffer()" ); + YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); b->yy_buf_size = size; /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. */ - b->yy_ch_buf = (char *) wkt_yyalloc(b->yy_buf_size + 2 ); + b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) ); if ( ! b->yy_ch_buf ) - YY_FATAL_ERROR( "out of dynamic memory in wkt_yy_create_buffer()" ); + YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); b->yy_is_our_buffer = 1; - wkt_yy_init_buffer(b,file ); + yy_init_buffer( b, file ); return b; } /** Destroy the buffer. - * @param b a buffer created with wkt_yy_create_buffer() - * + * @param b a buffer created with yy_create_buffer() + * */ - void wkt_yy_delete_buffer (YY_BUFFER_STATE b ) + void yy_delete_buffer (YY_BUFFER_STATE b ) { - + if ( ! b ) return; @@ -1618,27 +1825,27 @@ static void wkt_yy_load_buffer_state (void) YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; if ( b->yy_is_our_buffer ) - wkt_yyfree((void *) b->yy_ch_buf ); + yyfree( (void *) b->yy_ch_buf ); - wkt_yyfree((void *) b ); + yyfree( (void *) b ); } /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, - * such as during a wkt_yyrestart() or at EOF. + * such as during a yyrestart() or at EOF. */ - static void wkt_yy_init_buffer (YY_BUFFER_STATE b, FILE * file ) + static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file ) { int oerrno = errno; - - wkt_yy_flush_buffer(b ); + + yy_flush_buffer( b ); b->yy_input_file = file; b->yy_fill_buffer = 1; - /* If b is the current buffer, then wkt_yy_init_buffer was _probably_ - * called from wkt_yyrestart() or through yy_get_next_buffer. + /* If b is the current buffer, then yy_init_buffer was _probably_ + * called from yyrestart() or through yy_get_next_buffer. * In that case, we don't want to reset the lineno or column. */ if (b != YY_CURRENT_BUFFER){ @@ -1647,15 +1854,15 @@ static void wkt_yy_load_buffer_state (void) } b->yy_is_interactive = 0; - + errno = oerrno; } /** Discard all buffered characters. On the next scan, YY_INPUT will be called. * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. - * + * */ - void wkt_yy_flush_buffer (YY_BUFFER_STATE b ) + void yy_flush_buffer (YY_BUFFER_STATE b ) { if ( ! b ) return; @@ -1675,23 +1882,23 @@ static void wkt_yy_load_buffer_state (void) b->yy_buffer_status = YY_BUFFER_NEW; if ( b == YY_CURRENT_BUFFER ) - wkt_yy_load_buffer_state( ); + yy_load_buffer_state( ); } /** Pushes the new state onto the stack. The new state becomes * the current state. This function will allocate the stack * if necessary. * @param new_buffer The new state. - * + * */ -void wkt_yypush_buffer_state (YY_BUFFER_STATE new_buffer ) +void yypush_buffer_state (YY_BUFFER_STATE new_buffer ) { if (new_buffer == NULL) return; - wkt_yyensure_buffer_stack(); + yyensure_buffer_stack(); - /* This block is copied from wkt_yy_switch_to_buffer. */ + /* This block is copied from yy_switch_to_buffer. */ if ( YY_CURRENT_BUFFER ) { /* Flush out information for old buffer. */ @@ -1705,27 +1912,27 @@ void wkt_yypush_buffer_state (YY_BUFFER_STATE new_buffer ) (yy_buffer_stack_top)++; YY_CURRENT_BUFFER_LVALUE = new_buffer; - /* copied from wkt_yy_switch_to_buffer. */ - wkt_yy_load_buffer_state( ); + /* copied from yy_switch_to_buffer. */ + yy_load_buffer_state( ); (yy_did_buffer_switch_on_eof) = 1; } /** Removes and deletes the top of the stack, if present. * The next element becomes the new top. - * + * */ -void wkt_yypop_buffer_state (void) +void yypop_buffer_state (void) { if (!YY_CURRENT_BUFFER) return; - wkt_yy_delete_buffer(YY_CURRENT_BUFFER ); + yy_delete_buffer(YY_CURRENT_BUFFER ); YY_CURRENT_BUFFER_LVALUE = NULL; if ((yy_buffer_stack_top) > 0) --(yy_buffer_stack_top); if (YY_CURRENT_BUFFER) { - wkt_yy_load_buffer_state( ); + yy_load_buffer_state( ); (yy_did_buffer_switch_on_eof) = 1; } } @@ -1733,22 +1940,22 @@ void wkt_yypop_buffer_state (void) /* Allocates the stack if it does not exist. * Guarantees space for at least one push. */ -static void wkt_yyensure_buffer_stack (void) +static void yyensure_buffer_stack (void) { yy_size_t num_to_alloc; - + if (!(yy_buffer_stack)) { /* First allocation is just for 2 elements, since we don't know if this * scanner will even need a stack. We use 2 instead of 1 to avoid an * immediate realloc on the next call. */ - num_to_alloc = 1; - (yy_buffer_stack) = (struct yy_buffer_state**)wkt_yyalloc + num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */ + (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc (num_to_alloc * sizeof(struct yy_buffer_state*) ); if ( ! (yy_buffer_stack) ) - YY_FATAL_ERROR( "out of dynamic memory in wkt_yyensure_buffer_stack()" ); + YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); @@ -1760,15 +1967,15 @@ static void wkt_yyensure_buffer_stack (void) if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ /* Increase the buffer to prepare for a possible push. */ - int grow_size = 8 /* arbitrary grow size */; + yy_size_t grow_size = 8 /* arbitrary grow size */; num_to_alloc = (yy_buffer_stack_max) + grow_size; - (yy_buffer_stack) = (struct yy_buffer_state**)wkt_yyrealloc + (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc ((yy_buffer_stack), num_to_alloc * sizeof(struct yy_buffer_state*) ); if ( ! (yy_buffer_stack) ) - YY_FATAL_ERROR( "out of dynamic memory in wkt_yyensure_buffer_stack()" ); + YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); /* zero only the new slots.*/ memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*)); @@ -1779,79 +1986,80 @@ static void wkt_yyensure_buffer_stack (void) /** Setup the input buffer state to scan directly from a user-specified character buffer. * @param base the character buffer * @param size the size in bytes of the character buffer - * + * * @return the newly allocated buffer state object. */ -YY_BUFFER_STATE wkt_yy_scan_buffer (char * base, yy_size_t size ) +YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) { YY_BUFFER_STATE b; - + if ( size < 2 || base[size-2] != YY_END_OF_BUFFER_CHAR || base[size-1] != YY_END_OF_BUFFER_CHAR ) /* They forgot to leave room for the EOB's. */ - return 0; + return NULL; - b = (YY_BUFFER_STATE) wkt_yyalloc(sizeof( struct yy_buffer_state ) ); + b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) - YY_FATAL_ERROR( "out of dynamic memory in wkt_yy_scan_buffer()" ); + YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); - b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ + b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */ b->yy_buf_pos = b->yy_ch_buf = base; b->yy_is_our_buffer = 0; - b->yy_input_file = 0; + b->yy_input_file = NULL; b->yy_n_chars = b->yy_buf_size; b->yy_is_interactive = 0; b->yy_at_bol = 1; b->yy_fill_buffer = 0; b->yy_buffer_status = YY_BUFFER_NEW; - wkt_yy_switch_to_buffer(b ); + yy_switch_to_buffer( b ); return b; } -/** Setup the input buffer state to scan a string. The next call to wkt_yylex() will +/** Setup the input buffer state to scan a string. The next call to yylex() will * scan from a @e copy of @a str. * @param yystr a NUL-terminated string to scan - * + * * @return the newly allocated buffer state object. * @note If you want to scan bytes that may contain NUL values, then use - * wkt_yy_scan_bytes() instead. + * yy_scan_bytes() instead. */ -YY_BUFFER_STATE wkt_yy_scan_string (yyconst char * yystr ) +YY_BUFFER_STATE yy_scan_string (const char * yystr ) { - return wkt_yy_scan_bytes(yystr, strlen(yystr) ); + + return yy_scan_bytes( yystr, (int) strlen(yystr) ); } -/** Setup the input buffer state to scan the given bytes. The next call to wkt_yylex() will +/** Setup the input buffer state to scan the given bytes. The next call to yylex() will * scan from a @e copy of @a bytes. * @param yybytes the byte buffer to scan * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes. - * + * * @return the newly allocated buffer state object. */ -YY_BUFFER_STATE wkt_yy_scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len ) +YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len ) { YY_BUFFER_STATE b; char *buf; yy_size_t n; - yy_size_t i; - + int i; + /* Get memory for full buffer, including space for trailing EOB's. */ - n = _yybytes_len + 2; - buf = (char *) wkt_yyalloc(n ); + n = (yy_size_t) (_yybytes_len + 2); + buf = (char *) yyalloc( n ); if ( ! buf ) - YY_FATAL_ERROR( "out of dynamic memory in wkt_yy_scan_bytes()" ); + YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); for ( i = 0; i < _yybytes_len; ++i ) buf[i] = yybytes[i]; buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; - b = wkt_yy_scan_buffer(buf,n ); + b = yy_scan_buffer( buf, n ); if ( ! b ) - YY_FATAL_ERROR( "bad buffer in wkt_yy_scan_bytes()" ); + YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" ); /* It's okay to grow etc. this buffer, and we should throw it * away when we're done. @@ -1865,9 +2073,9 @@ YY_BUFFER_STATE wkt_yy_scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_ #define YY_EXIT_FAILURE 2 #endif -static void yy_fatal_error (yyconst char* msg ) +static void yynoreturn yy_fatal_error (const char* msg ) { - (void) fprintf( stderr, "%s\n", msg ); + fprintf( stderr, "%s\n", msg ); exit( YY_EXIT_FAILURE ); } @@ -1877,142 +2085,142 @@ static void yy_fatal_error (yyconst char* msg ) #define yyless(n) \ do \ { \ - /* Undo effects of setting up wkt_yytext. */ \ + /* Undo effects of setting up yytext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ - wkt_yytext[wkt_yyleng] = (yy_hold_char); \ - (yy_c_buf_p) = wkt_yytext + yyless_macro_arg; \ + yytext[yyleng] = (yy_hold_char); \ + (yy_c_buf_p) = yytext + yyless_macro_arg; \ (yy_hold_char) = *(yy_c_buf_p); \ *(yy_c_buf_p) = '\0'; \ - wkt_yyleng = yyless_macro_arg; \ + yyleng = yyless_macro_arg; \ } \ while ( 0 ) /* Accessor methods (get/set functions) to struct members. */ /** Get the current line number. - * + * */ -int wkt_yyget_lineno (void) +int yyget_lineno (void) { - - return wkt_yylineno; + + return yylineno; } /** Get the input stream. - * + * */ -FILE *wkt_yyget_in (void) +FILE *yyget_in (void) { - return wkt_yyin; + return yyin; } /** Get the output stream. - * + * */ -FILE *wkt_yyget_out (void) +FILE *yyget_out (void) { - return wkt_yyout; + return yyout; } /** Get the length of the current token. - * + * */ -yy_size_t wkt_yyget_leng (void) +int yyget_leng (void) { - return wkt_yyleng; + return yyleng; } /** Get the current token. - * + * */ -char *wkt_yyget_text (void) +char *yyget_text (void) { - return wkt_yytext; + return yytext; } /** Set the current line number. - * @param line_number - * + * @param _line_number line number + * */ -void wkt_yyset_lineno (int line_number ) +void yyset_lineno (int _line_number ) { - - wkt_yylineno = line_number; + + yylineno = _line_number; } /** Set the input stream. This does not discard the current * input buffer. - * @param in_str A readable stream. - * - * @see wkt_yy_switch_to_buffer + * @param _in_str A readable stream. + * + * @see yy_switch_to_buffer */ -void wkt_yyset_in (FILE * in_str ) +void yyset_in (FILE * _in_str ) { - wkt_yyin = in_str ; + yyin = _in_str ; } -void wkt_yyset_out (FILE * out_str ) +void yyset_out (FILE * _out_str ) { - wkt_yyout = out_str ; + yyout = _out_str ; } -int wkt_yyget_debug (void) +int yyget_debug (void) { - return wkt_yy_flex_debug; + return yy_flex_debug; } -void wkt_yyset_debug (int bdebug ) +void yyset_debug (int _bdebug ) { - wkt_yy_flex_debug = bdebug ; + yy_flex_debug = _bdebug ; } static int yy_init_globals (void) { /* Initialization is the same as for the non-reentrant scanner. - * This function is called from wkt_yylex_destroy(), so don't allocate here. + * This function is called from yylex_destroy(), so don't allocate here. */ - (yy_buffer_stack) = 0; + (yy_buffer_stack) = NULL; (yy_buffer_stack_top) = 0; (yy_buffer_stack_max) = 0; - (yy_c_buf_p) = (char *) 0; + (yy_c_buf_p) = NULL; (yy_init) = 0; (yy_start) = 0; /* Defined in main.c */ #ifdef YY_STDINIT - wkt_yyin = stdin; - wkt_yyout = stdout; + yyin = stdin; + yyout = stdout; #else - wkt_yyin = (FILE *) 0; - wkt_yyout = (FILE *) 0; + yyin = NULL; + yyout = NULL; #endif /* For future reference: Set errno on error, since we are called by - * wkt_yylex_init() + * yylex_init() */ return 0; } -/* wkt_yylex_destroy is for both reentrant and non-reentrant scanners. */ -int wkt_yylex_destroy (void) +/* yylex_destroy is for both reentrant and non-reentrant scanners. */ +int yylex_destroy (void) { - + /* Pop the buffer stack, destroying each element. */ while(YY_CURRENT_BUFFER){ - wkt_yy_delete_buffer(YY_CURRENT_BUFFER ); + yy_delete_buffer( YY_CURRENT_BUFFER ); YY_CURRENT_BUFFER_LVALUE = NULL; - wkt_yypop_buffer_state(); + yypop_buffer_state(); } /* Destroy the stack itself. */ - wkt_yyfree((yy_buffer_stack) ); + yyfree((yy_buffer_stack) ); (yy_buffer_stack) = NULL; /* Reset the globals. This is important in a non-reentrant scanner so the next time - * wkt_yylex() is called, initialization will occur. */ + * yylex() is called, initialization will occur. */ yy_init_globals( ); return 0; @@ -2023,18 +2231,19 @@ int wkt_yylex_destroy (void) */ #ifndef yytext_ptr -static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) +static void yy_flex_strncpy (char* s1, const char * s2, int n ) { - register int i; + + int i; for ( i = 0; i < n; ++i ) s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * s ) +static int yy_flex_strlen (const char * s ) { - register int n; + int n; for ( n = 0; s[n]; ++n ) ; @@ -2044,8 +2253,7 @@ static int yy_flex_strlen (yyconst char * s ) #define YYTABLES_NAME "yytables" -#line 117 "lwin_wkt_lex.l" - +#line 99 "lwin_wkt_lex.l" void *wkt_yyalloc (yy_size_t size ) @@ -2062,3 +2270,21 @@ void wkt_yyfree (void * ptr ) { lwfree( (char *) ptr ); /* see wkt_yyrealloc() for (char *) cast */ } + +/* +* Set up the lexer! +*/ +void wkt_lexer_init(char *src) +{ + 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); +} + + diff --git a/liblwgeom/lwin_wkt_parse.c b/liblwgeom/lwin_wkt_parse.c index d17eb940a..0f1c30aff 100644 --- a/liblwgeom/lwin_wkt_parse.c +++ b/liblwgeom/lwin_wkt_parse.c @@ -1,27 +1,4 @@ -/********************************************************************** - * - * PostGIS - Spatial Types for PostgreSQL - * http://postgis.net - * - * PostGIS is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * PostGIS is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with PostGIS. If not, see . - * - ********************************************************************** - * - Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc. - * - **********************************************************************/ - +/* A Bison parser, made by GNU Bison 3.0.4. */ /* Bison implementation for Yacc-like parsers in C @@ -118,16 +95,16 @@ LWGEOM_PARSER_RESULT global_parser_result; /* Turn on/off verbose parsing (turn off for production) */ int wkt_yydebug = 0; -/* -* Error handler called by the bison parser. Mostly we will be +/* +* Error handler called by the bison parser. Mostly we will be * catching our own errors and filling out the message and errlocation -* from WKT_ERROR in the grammar, but we keep this one +* from WKT_ERROR in the grammar, but we keep this one * around just in case. */ void wkt_yyerror(__attribute__((__unused__)) const char *str) { /* If we haven't already set a message and location, let's set one now. */ - if ( ! global_parser_result.message ) + if ( ! global_parser_result.message ) { global_parser_result.message = parser_error_messages[PARSER_ERROR_OTHER]; global_parser_result.errcode = PARSER_ERROR_OTHER; @@ -160,14 +137,14 @@ int lwgeom_parse_wkt(LWGEOM_PARSER_RESULT *parser_result, char *wktstr, int pars /* Set the input text string, and parse checks. */ global_parser_result.wkinput = wktstr; global_parser_result.parser_check_flags = parser_check_flags; - + wkt_lexer_init(wktstr); /* Lexer ready */ parse_rv = wkt_yyparse(); /* Run the parse */ LWDEBUGF(4,"wkt_yyparse returned %d", parse_rv); wkt_lexer_close(); /* Clean up lexer */ - + /* A non-zero parser return is an error. */ - if ( parse_rv != 0 ) + if ( parse_rv != 0 ) { if( ! global_parser_result.errcode ) { @@ -176,17 +153,17 @@ int lwgeom_parse_wkt(LWGEOM_PARSER_RESULT *parser_result, char *wktstr, int pars global_parser_result.errlocation = wkt_yylloc.last_column; } - LWDEBUGF(5, "error returned by wkt_yyparse() @ %d: [%d] '%s'", - global_parser_result.errlocation, - global_parser_result.errcode, + LWDEBUGF(5, "error returned by wkt_yyparse() @ %d: [%d] '%s'", + global_parser_result.errlocation, + global_parser_result.errcode, global_parser_result.message); - + /* Copy the global values into the return pointer */ *parser_result = global_parser_result; wkt_yylex_destroy(); return LW_FAILURE; } - + /* Copy the global value into the return pointer */ *parser_result = global_parser_result; wkt_yylex_destroy(); @@ -287,7 +264,7 @@ extern int wkt_yydebug; union YYSTYPE { -#line 108 "lwin_wkt_parse.y" /* yacc.c:355 */ +#line 107 "lwin_wkt_parse.y" /* yacc.c:355 */ int integervalue; double doublevalue; @@ -629,20 +606,20 @@ static const yytype_uint8 yytranslate[] = /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 212, 212, 214, 218, 219, 220, 221, 222, 223, - 224, 225, 226, 227, 228, 229, 230, 231, 232, 235, - 237, 239, 241, 245, 247, 251, 253, 255, 257, 261, - 263, 265, 267, 269, 271, 275, 277, 279, 281, 285, - 287, 289, 291, 295, 297, 299, 301, 305, 307, 311, - 313, 317, 319, 321, 323, 327, 329, 333, 336, 338, - 340, 342, 346, 348, 352, 353, 354, 355, 358, 360, - 364, 366, 370, 373, 376, 378, 380, 382, 386, 388, - 390, 392, 394, 396, 400, 402, 404, 406, 410, 412, - 414, 416, 418, 420, 422, 424, 428, 430, 432, 434, - 438, 440, 444, 446, 448, 450, 454, 456, 458, 460, - 464, 466, 470, 472, 476, 478, 480, 482, 486, 490, - 492, 494, 496, 500, 502, 506, 508, 510, 514, 516, - 518, 520, 524, 526, 530, 532, 534 + 0, 211, 211, 213, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 234, + 236, 238, 240, 244, 246, 250, 252, 254, 256, 260, + 262, 264, 266, 268, 270, 274, 276, 278, 280, 284, + 286, 288, 290, 294, 296, 298, 300, 304, 306, 310, + 312, 316, 318, 320, 322, 326, 328, 332, 335, 337, + 339, 341, 345, 347, 351, 352, 353, 354, 357, 359, + 363, 365, 369, 372, 375, 377, 379, 381, 385, 387, + 389, 391, 393, 395, 399, 401, 403, 405, 409, 411, + 413, 415, 417, 419, 421, 423, 427, 429, 431, 433, + 437, 439, 443, 445, 447, 449, 453, 455, 457, 459, + 463, 465, 469, 471, 475, 477, 479, 481, 485, 489, + 491, 493, 495, 499, 501, 505, 507, 509, 513, 515, + 517, 519, 523, 525, 529, 531, 533 }; #endif @@ -1408,217 +1385,217 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocatio switch (yytype) { case 28: /* geometry_no_srid */ -#line 190 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 189 "lwin_wkt_parse.y" /* yacc.c:1257 */ { lwgeom_free(((*yyvaluep).geometryvalue)); } #line 1391 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 29: /* geometrycollection */ -#line 191 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 190 "lwin_wkt_parse.y" /* yacc.c:1257 */ { lwgeom_free(((*yyvaluep).geometryvalue)); } #line 1397 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 31: /* multisurface */ -#line 198 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 197 "lwin_wkt_parse.y" /* yacc.c:1257 */ { lwgeom_free(((*yyvaluep).geometryvalue)); } #line 1403 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 32: /* surface_list */ -#line 177 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 176 "lwin_wkt_parse.y" /* yacc.c:1257 */ { lwgeom_free(((*yyvaluep).geometryvalue)); } #line 1409 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 33: /* tin */ -#line 205 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 204 "lwin_wkt_parse.y" /* yacc.c:1257 */ { lwgeom_free(((*yyvaluep).geometryvalue)); } #line 1415 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 34: /* polyhedralsurface */ -#line 204 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 203 "lwin_wkt_parse.y" /* yacc.c:1257 */ { lwgeom_free(((*yyvaluep).geometryvalue)); } #line 1421 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 35: /* multipolygon */ -#line 197 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 196 "lwin_wkt_parse.y" /* yacc.c:1257 */ { lwgeom_free(((*yyvaluep).geometryvalue)); } #line 1427 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 36: /* polygon_list */ -#line 178 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 177 "lwin_wkt_parse.y" /* yacc.c:1257 */ { lwgeom_free(((*yyvaluep).geometryvalue)); } #line 1433 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 37: /* patch_list */ -#line 179 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 178 "lwin_wkt_parse.y" /* yacc.c:1257 */ { lwgeom_free(((*yyvaluep).geometryvalue)); } #line 1439 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 38: /* polygon */ -#line 201 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 200 "lwin_wkt_parse.y" /* yacc.c:1257 */ { lwgeom_free(((*yyvaluep).geometryvalue)); } #line 1445 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 39: /* polygon_untagged */ -#line 203 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 202 "lwin_wkt_parse.y" /* yacc.c:1257 */ { lwgeom_free(((*yyvaluep).geometryvalue)); } #line 1451 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 40: /* patch */ -#line 202 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 201 "lwin_wkt_parse.y" /* yacc.c:1257 */ { lwgeom_free(((*yyvaluep).geometryvalue)); } #line 1457 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 41: /* curvepolygon */ -#line 188 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 187 "lwin_wkt_parse.y" /* yacc.c:1257 */ { lwgeom_free(((*yyvaluep).geometryvalue)); } #line 1463 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 42: /* curvering_list */ -#line 175 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 174 "lwin_wkt_parse.y" /* yacc.c:1257 */ { lwgeom_free(((*yyvaluep).geometryvalue)); } #line 1469 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 43: /* curvering */ -#line 189 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 188 "lwin_wkt_parse.y" /* yacc.c:1257 */ { lwgeom_free(((*yyvaluep).geometryvalue)); } #line 1475 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 44: /* patchring_list */ -#line 185 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 184 "lwin_wkt_parse.y" /* yacc.c:1257 */ { lwgeom_free(((*yyvaluep).geometryvalue)); } #line 1481 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 45: /* ring_list */ -#line 184 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 183 "lwin_wkt_parse.y" /* yacc.c:1257 */ { lwgeom_free(((*yyvaluep).geometryvalue)); } #line 1487 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 46: /* patchring */ -#line 174 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 173 "lwin_wkt_parse.y" /* yacc.c:1257 */ { ptarray_free(((*yyvaluep).ptarrayvalue)); } #line 1493 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 47: /* ring */ -#line 173 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 172 "lwin_wkt_parse.y" /* yacc.c:1257 */ { ptarray_free(((*yyvaluep).ptarrayvalue)); } #line 1499 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 48: /* compoundcurve */ -#line 187 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 186 "lwin_wkt_parse.y" /* yacc.c:1257 */ { lwgeom_free(((*yyvaluep).geometryvalue)); } #line 1505 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 49: /* compound_list */ -#line 183 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 182 "lwin_wkt_parse.y" /* yacc.c:1257 */ { lwgeom_free(((*yyvaluep).geometryvalue)); } #line 1511 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 50: /* multicurve */ -#line 194 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 193 "lwin_wkt_parse.y" /* yacc.c:1257 */ { lwgeom_free(((*yyvaluep).geometryvalue)); } #line 1517 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 51: /* curve_list */ -#line 182 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 181 "lwin_wkt_parse.y" /* yacc.c:1257 */ { lwgeom_free(((*yyvaluep).geometryvalue)); } #line 1523 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 52: /* multilinestring */ -#line 195 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 194 "lwin_wkt_parse.y" /* yacc.c:1257 */ { lwgeom_free(((*yyvaluep).geometryvalue)); } #line 1529 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 53: /* linestring_list */ -#line 181 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 180 "lwin_wkt_parse.y" /* yacc.c:1257 */ { lwgeom_free(((*yyvaluep).geometryvalue)); } #line 1535 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 54: /* circularstring */ -#line 186 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 185 "lwin_wkt_parse.y" /* yacc.c:1257 */ { lwgeom_free(((*yyvaluep).geometryvalue)); } #line 1541 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 55: /* linestring */ -#line 192 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 191 "lwin_wkt_parse.y" /* yacc.c:1257 */ { lwgeom_free(((*yyvaluep).geometryvalue)); } #line 1547 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 56: /* linestring_untagged */ -#line 193 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 192 "lwin_wkt_parse.y" /* yacc.c:1257 */ { lwgeom_free(((*yyvaluep).geometryvalue)); } #line 1553 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 57: /* triangle_list */ -#line 176 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 175 "lwin_wkt_parse.y" /* yacc.c:1257 */ { lwgeom_free(((*yyvaluep).geometryvalue)); } #line 1559 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 58: /* triangle */ -#line 206 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 205 "lwin_wkt_parse.y" /* yacc.c:1257 */ { lwgeom_free(((*yyvaluep).geometryvalue)); } #line 1565 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 59: /* triangle_untagged */ -#line 207 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 206 "lwin_wkt_parse.y" /* yacc.c:1257 */ { lwgeom_free(((*yyvaluep).geometryvalue)); } #line 1571 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 60: /* multipoint */ -#line 196 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 195 "lwin_wkt_parse.y" /* yacc.c:1257 */ { lwgeom_free(((*yyvaluep).geometryvalue)); } #line 1577 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 61: /* point_list */ -#line 180 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 179 "lwin_wkt_parse.y" /* yacc.c:1257 */ { lwgeom_free(((*yyvaluep).geometryvalue)); } #line 1583 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 62: /* point_untagged */ -#line 200 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 199 "lwin_wkt_parse.y" /* yacc.c:1257 */ { lwgeom_free(((*yyvaluep).geometryvalue)); } #line 1589 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 63: /* point */ -#line 199 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 198 "lwin_wkt_parse.y" /* yacc.c:1257 */ { lwgeom_free(((*yyvaluep).geometryvalue)); } #line 1595 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 64: /* ptarray */ -#line 172 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 171 "lwin_wkt_parse.y" /* yacc.c:1257 */ { ptarray_free(((*yyvaluep).ptarrayvalue)); } #line 1601 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; @@ -1906,811 +1883,811 @@ yyreduce: switch (yyn) { case 2: -#line 213 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 212 "lwin_wkt_parse.y" /* yacc.c:1646 */ { wkt_parser_geometry_new((yyvsp[0].geometryvalue), SRID_UNKNOWN); WKT_ERROR(); } #line 1889 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 3: -#line 215 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 214 "lwin_wkt_parse.y" /* yacc.c:1646 */ { wkt_parser_geometry_new((yyvsp[0].geometryvalue), (yyvsp[-2].integervalue)); WKT_ERROR(); } #line 1895 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 4: -#line 218 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 217 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); } #line 1901 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 5: -#line 219 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 218 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); } #line 1907 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 6: -#line 220 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 219 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); } #line 1913 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 7: -#line 221 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 220 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); } #line 1919 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 8: -#line 222 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 221 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); } #line 1925 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 9: -#line 223 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 222 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); } #line 1931 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 10: -#line 224 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 223 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); } #line 1937 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 11: -#line 225 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 224 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); } #line 1943 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 12: -#line 226 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 225 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); } #line 1949 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 13: -#line 227 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 226 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); } #line 1955 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 14: -#line 228 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 227 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); } #line 1961 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 15: -#line 229 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 228 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); } #line 1967 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 16: -#line 230 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 229 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); } #line 1973 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 17: -#line 231 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 230 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); } #line 1979 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 18: -#line 232 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 231 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); } #line 1985 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 19: -#line 236 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 235 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(COLLECTIONTYPE, (yyvsp[-1].geometryvalue), NULL); WKT_ERROR(); } #line 1991 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 20: -#line 238 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 237 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(COLLECTIONTYPE, (yyvsp[-1].geometryvalue), (yyvsp[-3].stringvalue)); WKT_ERROR(); } #line 1997 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 21: -#line 240 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 239 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(COLLECTIONTYPE, NULL, (yyvsp[-1].stringvalue)); WKT_ERROR(); } #line 2003 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 22: -#line 242 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 241 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(COLLECTIONTYPE, NULL, NULL); WKT_ERROR(); } #line 2009 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 23: -#line 246 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 245 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_add_geom((yyvsp[-2].geometryvalue),(yyvsp[0].geometryvalue)); WKT_ERROR(); } #line 2015 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 24: -#line 248 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 247 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[0].geometryvalue)); WKT_ERROR(); } #line 2021 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 25: -#line 252 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 251 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTISURFACETYPE, (yyvsp[-1].geometryvalue), NULL); WKT_ERROR(); } #line 2027 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 26: -#line 254 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 253 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTISURFACETYPE, (yyvsp[-1].geometryvalue), (yyvsp[-3].stringvalue)); WKT_ERROR(); } #line 2033 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 27: -#line 256 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 255 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTISURFACETYPE, NULL, (yyvsp[-1].stringvalue)); WKT_ERROR(); } #line 2039 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 28: -#line 258 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 257 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTISURFACETYPE, NULL, NULL); WKT_ERROR(); } #line 2045 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 29: -#line 262 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 261 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_add_geom((yyvsp[-2].geometryvalue),(yyvsp[0].geometryvalue)); WKT_ERROR(); } #line 2051 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 30: -#line 264 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 263 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_add_geom((yyvsp[-2].geometryvalue),(yyvsp[0].geometryvalue)); WKT_ERROR(); } #line 2057 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 31: -#line 266 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 265 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_add_geom((yyvsp[-2].geometryvalue),(yyvsp[0].geometryvalue)); WKT_ERROR(); } #line 2063 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 32: -#line 268 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 267 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[0].geometryvalue)); WKT_ERROR(); } #line 2069 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 33: -#line 270 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 269 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[0].geometryvalue)); WKT_ERROR(); } #line 2075 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 34: -#line 272 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 271 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[0].geometryvalue)); WKT_ERROR(); } #line 2081 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 35: -#line 276 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 275 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(TINTYPE, (yyvsp[-1].geometryvalue), NULL); WKT_ERROR(); } #line 2087 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 36: -#line 278 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 277 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(TINTYPE, (yyvsp[-1].geometryvalue), (yyvsp[-3].stringvalue)); WKT_ERROR(); } #line 2093 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 37: -#line 280 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 279 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(TINTYPE, NULL, (yyvsp[-1].stringvalue)); WKT_ERROR(); } #line 2099 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 38: -#line 282 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 281 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(TINTYPE, NULL, NULL); WKT_ERROR(); } #line 2105 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 39: -#line 286 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 285 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(POLYHEDRALSURFACETYPE, (yyvsp[-1].geometryvalue), NULL); WKT_ERROR(); } #line 2111 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 40: -#line 288 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 287 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(POLYHEDRALSURFACETYPE, (yyvsp[-1].geometryvalue), (yyvsp[-3].stringvalue)); WKT_ERROR(); } #line 2117 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 41: -#line 290 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 289 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(POLYHEDRALSURFACETYPE, NULL, (yyvsp[-1].stringvalue)); WKT_ERROR(); } #line 2123 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 42: -#line 292 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 291 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(POLYHEDRALSURFACETYPE, NULL, NULL); WKT_ERROR(); } #line 2129 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 43: -#line 296 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 295 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTIPOLYGONTYPE, (yyvsp[-1].geometryvalue), NULL); WKT_ERROR(); } #line 2135 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 44: -#line 298 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 297 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTIPOLYGONTYPE, (yyvsp[-1].geometryvalue), (yyvsp[-3].stringvalue)); WKT_ERROR(); } #line 2141 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 45: -#line 300 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 299 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTIPOLYGONTYPE, NULL, (yyvsp[-1].stringvalue)); WKT_ERROR(); } #line 2147 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 46: -#line 302 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 301 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTIPOLYGONTYPE, NULL, NULL); WKT_ERROR(); } #line 2153 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 47: -#line 306 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 305 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_add_geom((yyvsp[-2].geometryvalue),(yyvsp[0].geometryvalue)); WKT_ERROR(); } #line 2159 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 48: -#line 308 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 307 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[0].geometryvalue)); WKT_ERROR(); } #line 2165 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 49: -#line 312 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 311 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_add_geom((yyvsp[-2].geometryvalue),(yyvsp[0].geometryvalue)); WKT_ERROR(); } #line 2171 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 50: -#line 314 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 313 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[0].geometryvalue)); WKT_ERROR(); } #line 2177 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 51: -#line 318 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 317 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_polygon_finalize((yyvsp[-1].geometryvalue), NULL); WKT_ERROR(); } #line 2183 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 52: -#line 320 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 319 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_polygon_finalize((yyvsp[-1].geometryvalue), (yyvsp[-3].stringvalue)); WKT_ERROR(); } #line 2189 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 53: -#line 322 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 321 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_polygon_finalize(NULL, (yyvsp[-1].stringvalue)); WKT_ERROR(); } #line 2195 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 54: -#line 324 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 323 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_polygon_finalize(NULL, NULL); WKT_ERROR(); } #line 2201 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 55: -#line 328 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 327 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = (yyvsp[-1].geometryvalue); } #line 2207 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 56: -#line 330 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 329 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_polygon_finalize(NULL, NULL); WKT_ERROR(); } #line 2213 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 57: -#line 333 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 332 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = (yyvsp[-1].geometryvalue); } #line 2219 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 58: -#line 337 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 336 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_curvepolygon_finalize((yyvsp[-1].geometryvalue), NULL); WKT_ERROR(); } #line 2225 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 59: -#line 339 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 338 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_curvepolygon_finalize((yyvsp[-1].geometryvalue), (yyvsp[-3].stringvalue)); WKT_ERROR(); } #line 2231 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 60: -#line 341 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 340 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_curvepolygon_finalize(NULL, (yyvsp[-1].stringvalue)); WKT_ERROR(); } #line 2237 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 61: -#line 343 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 342 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_curvepolygon_finalize(NULL, NULL); WKT_ERROR(); } #line 2243 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 62: -#line 347 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 346 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_curvepolygon_add_ring((yyvsp[-2].geometryvalue),(yyvsp[0].geometryvalue)); WKT_ERROR(); } #line 2249 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 63: -#line 349 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 348 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_curvepolygon_new((yyvsp[0].geometryvalue)); WKT_ERROR(); } #line 2255 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 64: -#line 352 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 351 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); } #line 2261 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 65: -#line 353 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 352 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); } #line 2267 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 66: -#line 354 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 353 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); } #line 2273 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 67: -#line 355 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 354 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); } #line 2279 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 68: -#line 359 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 358 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_polygon_add_ring((yyvsp[-2].geometryvalue),(yyvsp[0].ptarrayvalue),'Z'); WKT_ERROR(); } #line 2285 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 69: -#line 361 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 360 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_polygon_new((yyvsp[0].ptarrayvalue),'Z'); WKT_ERROR(); } #line 2291 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 70: -#line 365 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 364 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_polygon_add_ring((yyvsp[-2].geometryvalue),(yyvsp[0].ptarrayvalue),'2'); WKT_ERROR(); } #line 2297 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 71: -#line 367 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 366 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_polygon_new((yyvsp[0].ptarrayvalue),'2'); WKT_ERROR(); } #line 2303 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 72: -#line 370 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 369 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.ptarrayvalue) = (yyvsp[-1].ptarrayvalue); } #line 2309 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 73: -#line 373 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 372 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.ptarrayvalue) = (yyvsp[-1].ptarrayvalue); } #line 2315 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 74: -#line 377 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 376 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(COMPOUNDTYPE, (yyvsp[-1].geometryvalue), NULL); WKT_ERROR(); } #line 2321 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 75: -#line 379 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 378 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(COMPOUNDTYPE, (yyvsp[-1].geometryvalue), (yyvsp[-3].stringvalue)); WKT_ERROR(); } #line 2327 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 76: -#line 381 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 380 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(COMPOUNDTYPE, NULL, (yyvsp[-1].stringvalue)); WKT_ERROR(); } #line 2333 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 77: -#line 383 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 382 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(COMPOUNDTYPE, NULL, NULL); WKT_ERROR(); } #line 2339 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 78: -#line 387 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 386 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_compound_add_geom((yyvsp[-2].geometryvalue),(yyvsp[0].geometryvalue)); WKT_ERROR(); } #line 2345 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 79: -#line 389 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 388 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_compound_add_geom((yyvsp[-2].geometryvalue),(yyvsp[0].geometryvalue)); WKT_ERROR(); } #line 2351 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 80: -#line 391 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 390 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_compound_add_geom((yyvsp[-2].geometryvalue),(yyvsp[0].geometryvalue)); WKT_ERROR(); } #line 2357 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 81: -#line 393 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 392 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_compound_new((yyvsp[0].geometryvalue)); WKT_ERROR(); } #line 2363 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 82: -#line 395 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 394 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_compound_new((yyvsp[0].geometryvalue)); WKT_ERROR(); } #line 2369 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 83: -#line 397 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 396 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_compound_new((yyvsp[0].geometryvalue)); WKT_ERROR(); } #line 2375 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 84: -#line 401 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 400 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTICURVETYPE, (yyvsp[-1].geometryvalue), NULL); WKT_ERROR(); } #line 2381 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 85: -#line 403 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 402 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTICURVETYPE, (yyvsp[-1].geometryvalue), (yyvsp[-3].stringvalue)); WKT_ERROR(); } #line 2387 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 86: -#line 405 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 404 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTICURVETYPE, NULL, (yyvsp[-1].stringvalue)); WKT_ERROR(); } #line 2393 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 87: -#line 407 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 406 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTICURVETYPE, NULL, NULL); WKT_ERROR(); } #line 2399 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 88: -#line 411 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 410 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_add_geom((yyvsp[-2].geometryvalue),(yyvsp[0].geometryvalue)); WKT_ERROR(); } #line 2405 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 89: -#line 413 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 412 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_add_geom((yyvsp[-2].geometryvalue),(yyvsp[0].geometryvalue)); WKT_ERROR(); } #line 2411 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 90: -#line 415 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 414 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_add_geom((yyvsp[-2].geometryvalue),(yyvsp[0].geometryvalue)); WKT_ERROR(); } #line 2417 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 91: -#line 417 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 416 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_add_geom((yyvsp[-2].geometryvalue),(yyvsp[0].geometryvalue)); WKT_ERROR(); } #line 2423 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 92: -#line 419 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 418 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[0].geometryvalue)); WKT_ERROR(); } #line 2429 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 93: -#line 421 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 420 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[0].geometryvalue)); WKT_ERROR(); } #line 2435 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 94: -#line 423 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 422 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[0].geometryvalue)); WKT_ERROR(); } #line 2441 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 95: -#line 425 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 424 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[0].geometryvalue)); WKT_ERROR(); } #line 2447 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 96: -#line 429 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 428 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTILINETYPE, (yyvsp[-1].geometryvalue), NULL); WKT_ERROR(); } #line 2453 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 97: -#line 431 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 430 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTILINETYPE, (yyvsp[-1].geometryvalue), (yyvsp[-3].stringvalue)); WKT_ERROR(); } #line 2459 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 98: -#line 433 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 432 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTILINETYPE, NULL, (yyvsp[-1].stringvalue)); WKT_ERROR(); } #line 2465 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 99: -#line 435 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 434 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTILINETYPE, NULL, NULL); WKT_ERROR(); } #line 2471 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 100: -#line 439 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 438 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_add_geom((yyvsp[-2].geometryvalue),(yyvsp[0].geometryvalue)); WKT_ERROR(); } #line 2477 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 101: -#line 441 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 440 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[0].geometryvalue)); WKT_ERROR(); } #line 2483 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 102: -#line 445 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 444 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_circularstring_new((yyvsp[-1].ptarrayvalue), NULL); WKT_ERROR(); } #line 2489 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 103: -#line 447 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 446 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_circularstring_new((yyvsp[-1].ptarrayvalue), (yyvsp[-3].stringvalue)); WKT_ERROR(); } #line 2495 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 104: -#line 449 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 448 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_circularstring_new(NULL, (yyvsp[-1].stringvalue)); WKT_ERROR(); } #line 2501 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 105: -#line 451 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 450 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_circularstring_new(NULL, NULL); WKT_ERROR(); } #line 2507 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 106: -#line 455 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 454 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_linestring_new((yyvsp[-1].ptarrayvalue), NULL); WKT_ERROR(); } #line 2513 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 107: -#line 457 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 456 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_linestring_new((yyvsp[-1].ptarrayvalue), (yyvsp[-3].stringvalue)); WKT_ERROR(); } #line 2519 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 108: -#line 459 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 458 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_linestring_new(NULL, (yyvsp[-1].stringvalue)); WKT_ERROR(); } #line 2525 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 109: -#line 461 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 460 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_linestring_new(NULL, NULL); WKT_ERROR(); } #line 2531 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 110: -#line 465 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 464 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_linestring_new((yyvsp[-1].ptarrayvalue), NULL); WKT_ERROR(); } #line 2537 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 111: -#line 467 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 466 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_linestring_new(NULL, NULL); WKT_ERROR(); } #line 2543 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 112: -#line 471 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 470 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_add_geom((yyvsp[-2].geometryvalue),(yyvsp[0].geometryvalue)); WKT_ERROR(); } #line 2549 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 113: -#line 473 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 472 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[0].geometryvalue)); WKT_ERROR(); } #line 2555 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 114: -#line 477 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 476 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_triangle_new((yyvsp[-2].ptarrayvalue), NULL); WKT_ERROR(); } #line 2561 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 115: -#line 479 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 478 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_triangle_new((yyvsp[-2].ptarrayvalue), (yyvsp[-5].stringvalue)); WKT_ERROR(); } #line 2567 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 116: -#line 481 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 480 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_triangle_new(NULL, (yyvsp[-1].stringvalue)); WKT_ERROR(); } #line 2573 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 117: -#line 483 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 482 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_triangle_new(NULL, NULL); WKT_ERROR(); } #line 2579 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 118: -#line 487 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 486 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_triangle_new((yyvsp[-2].ptarrayvalue), NULL); WKT_ERROR(); } #line 2585 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 119: -#line 491 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 490 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTIPOINTTYPE, (yyvsp[-1].geometryvalue), NULL); WKT_ERROR(); } #line 2591 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 120: -#line 493 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 492 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTIPOINTTYPE, (yyvsp[-1].geometryvalue), (yyvsp[-3].stringvalue)); WKT_ERROR(); } #line 2597 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 121: -#line 495 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 494 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTIPOINTTYPE, NULL, (yyvsp[-1].stringvalue)); WKT_ERROR(); } #line 2603 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 122: -#line 497 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 496 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTIPOINTTYPE, NULL, NULL); WKT_ERROR(); } #line 2609 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 123: -#line 501 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 500 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_add_geom((yyvsp[-2].geometryvalue),(yyvsp[0].geometryvalue)); WKT_ERROR(); } #line 2615 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 124: -#line 503 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 502 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[0].geometryvalue)); WKT_ERROR(); } #line 2621 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 125: -#line 507 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 506 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_point_new(wkt_parser_ptarray_new((yyvsp[0].coordinatevalue)),NULL); WKT_ERROR(); } #line 2627 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 126: -#line 509 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 508 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_point_new(wkt_parser_ptarray_new((yyvsp[-1].coordinatevalue)),NULL); WKT_ERROR(); } #line 2633 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 127: -#line 511 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 510 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_point_new(NULL, NULL); WKT_ERROR(); } #line 2639 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 128: -#line 515 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 514 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_point_new((yyvsp[-1].ptarrayvalue), NULL); WKT_ERROR(); } #line 2645 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 129: -#line 517 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 516 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_point_new((yyvsp[-1].ptarrayvalue), (yyvsp[-3].stringvalue)); WKT_ERROR(); } #line 2651 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 130: -#line 519 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 518 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_point_new(NULL, (yyvsp[-1].stringvalue)); WKT_ERROR(); } #line 2657 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 131: -#line 521 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 520 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_point_new(NULL,NULL); WKT_ERROR(); } #line 2663 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 132: -#line 525 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 524 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.ptarrayvalue) = wkt_parser_ptarray_add_coord((yyvsp[-2].ptarrayvalue), (yyvsp[0].coordinatevalue)); WKT_ERROR(); } #line 2669 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 133: -#line 527 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 526 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.ptarrayvalue) = wkt_parser_ptarray_new((yyvsp[0].coordinatevalue)); WKT_ERROR(); } #line 2675 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 134: -#line 531 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 530 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.coordinatevalue) = wkt_parser_coord_2((yyvsp[-1].doublevalue), (yyvsp[0].doublevalue)); WKT_ERROR(); } #line 2681 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 135: -#line 533 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 532 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.coordinatevalue) = wkt_parser_coord_3((yyvsp[-2].doublevalue), (yyvsp[-1].doublevalue), (yyvsp[0].doublevalue)); WKT_ERROR(); } #line 2687 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 136: -#line 535 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 534 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.coordinatevalue) = wkt_parser_coord_4((yyvsp[-3].doublevalue), (yyvsp[-2].doublevalue), (yyvsp[-1].doublevalue), (yyvsp[0].doublevalue)); WKT_ERROR(); } #line 2693 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; @@ -2951,6 +2928,6 @@ yyreturn: #endif return yyresult; } -#line 537 "lwin_wkt_parse.y" /* yacc.c:1906 */ +#line 536 "lwin_wkt_parse.y" /* yacc.c:1906 */ diff --git a/liblwgeom/lwin_wkt_parse.h b/liblwgeom/lwin_wkt_parse.h index 6fd6265cc..fc48b9073 100644 --- a/liblwgeom/lwin_wkt_parse.h +++ b/liblwgeom/lwin_wkt_parse.h @@ -1,27 +1,4 @@ -/********************************************************************** - * - * PostGIS - Spatial Types for PostgreSQL - * http://postgis.net - * - * PostGIS is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * PostGIS is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with PostGIS. If not, see . - * - ********************************************************************** - * - Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc. - * - **********************************************************************/ - +/* A Bison parser, made by GNU Bison 3.0.4. */ /* Bison interface for Yacc-like parsers in C @@ -123,7 +100,7 @@ extern int wkt_yydebug; union YYSTYPE { -#line 108 "lwin_wkt_parse.y" /* yacc.c:1909 */ +#line 107 "lwin_wkt_parse.y" /* yacc.c:1909 */ int integervalue; double doublevalue; -- 2.50.0