From: Paul Ramsey Date: Mon, 29 Jun 2015 17:34:49 +0000 (+0000) Subject: Fix longstanding parser memory leak X-Git-Tag: 2.2.0rc1~291 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c71b310d96390d2bb44e63d11ce6ad94f2cd7a3b;p=postgis Fix longstanding parser memory leak git-svn-id: http://svn.osgeo.org/postgis/trunk@13747 b70326c6-7e19-0410-871a-916f4a2858ee --- diff --git a/liblwgeom/lwin_wkt.h b/liblwgeom/lwin_wkt.h index e60673e3c..cc621304d 100644 --- a/liblwgeom/lwin_wkt.h +++ b/liblwgeom/lwin_wkt.h @@ -25,6 +25,7 @@ extern const char *parser_error_messages[]; */ extern void wkt_lexer_init(char *str); extern void wkt_lexer_close(void); +extern int wkt_yylex_destroy(void); /* diff --git a/liblwgeom/lwin_wkt_lex.c b/liblwgeom/lwin_wkt_lex.c index 0c3042aaa..9ef57c358 100644 --- a/liblwgeom/lwin_wkt_lex.c +++ b/liblwgeom/lwin_wkt_lex.c @@ -28,7 +28,7 @@ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 5 -#define YY_FLEX_SUBMINOR_VERSION 35 +#define YY_FLEX_SUBMINOR_VERSION 37 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif @@ -161,15 +161,7 @@ typedef unsigned int flex_uint32_t; /* 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. @@ -181,7 +173,12 @@ typedef unsigned int flex_uint32_t; typedef struct yy_buffer_state *YY_BUFFER_STATE; #endif -extern int wkt_yyleng; +#ifndef YY_TYPEDEF_YY_SIZE_T +#define YY_TYPEDEF_YY_SIZE_T +typedef size_t yy_size_t; +#endif + +extern yy_size_t wkt_yyleng; extern FILE *wkt_yyin, *wkt_yyout; @@ -207,11 +204,6 @@ extern FILE *wkt_yyin, *wkt_yyout; #define unput(c) yyunput( c, (yytext_ptr) ) -#ifndef YY_TYPEDEF_YY_SIZE_T -#define YY_TYPEDEF_YY_SIZE_T -typedef size_t yy_size_t; -#endif - #ifndef YY_STRUCT_YY_BUFFER_STATE #define YY_STRUCT_YY_BUFFER_STATE struct yy_buffer_state @@ -229,7 +221,7 @@ struct yy_buffer_state /* Number of characters read into yy_ch_buf, not including EOB * characters. */ - int yy_n_chars; + yy_size_t 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 @@ -299,8 +291,8 @@ static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */ /* yy_hold_char holds the character lost when wkt_yytext is formed. */ static char yy_hold_char; -static int yy_n_chars; /* number of characters read into yy_ch_buf */ -int wkt_yyleng; +static yy_size_t yy_n_chars; /* number of characters read into yy_ch_buf */ +yy_size_t wkt_yyleng; /* Points to current character in buffer. */ static char *yy_c_buf_p = (char *) 0; @@ -328,7 +320,7 @@ static void wkt_yy_init_buffer (YY_BUFFER_STATE b,FILE *file ); 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,int len ); +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 ); @@ -360,7 +352,7 @@ void wkt_yyfree (void * ); /* Begin user sect3 */ -#define wkt_yywrap(n) 1 +#define wkt_yywrap() 1 #define YY_SKIP_YYWRAP typedef unsigned char YY_CHAR; @@ -682,7 +674,8 @@ static void wkt_lexer_unknown() #define YY_NO_INPUT 1 -#line 686 "lwin_wkt_lex.c" +/* Suppress the default implementations. */ +#line 679 "lwin_wkt_lex.c" #define INITIAL 0 @@ -721,7 +714,7 @@ FILE *wkt_yyget_out (void ); void wkt_yyset_out (FILE * out_str ); -int wkt_yyget_leng (void ); +yy_size_t wkt_yyget_leng (void ); char *wkt_yyget_text (void ); @@ -761,12 +754,7 @@ static int input (void ); /* 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. */ @@ -867,10 +855,10 @@ YY_DECL register char *yy_cp, *yy_bp; register int yy_act; -#line 65 "lwin_wkt_lex.l" +#line 67 "lwin_wkt_lex.l" -#line 874 "lwin_wkt_lex.c" +#line 862 "lwin_wkt_lex.c" if ( !(yy_init) ) { @@ -951,7 +939,7 @@ do_action: /* This label is used only to access EOF actions. */ case 1: YY_RULE_SETUP -#line 67 "lwin_wkt_lex.l" +#line 69 "lwin_wkt_lex.l" { LWDEBUG(5,"DOUBLE"); wkt_yylval.doublevalue = atof(wkt_yytext); @@ -960,7 +948,7 @@ YY_RULE_SETUP YY_BREAK case 2: YY_RULE_SETUP -#line 73 "lwin_wkt_lex.l" +#line 75 "lwin_wkt_lex.l" { LWDEBUG(5,"SRID"); wkt_yylval.integervalue = wkt_lexer_read_srid(wkt_yytext); @@ -969,87 +957,87 @@ YY_RULE_SETUP YY_BREAK case 3: YY_RULE_SETUP -#line 79 "lwin_wkt_lex.l" +#line 81 "lwin_wkt_lex.l" { return COLLECTION_TOK; } YY_BREAK case 4: YY_RULE_SETUP -#line 80 "lwin_wkt_lex.l" +#line 82 "lwin_wkt_lex.l" { return MSURFACE_TOK; } YY_BREAK case 5: YY_RULE_SETUP -#line 81 "lwin_wkt_lex.l" +#line 83 "lwin_wkt_lex.l" { return MPOLYGON_TOK; } YY_BREAK case 6: YY_RULE_SETUP -#line 82 "lwin_wkt_lex.l" +#line 84 "lwin_wkt_lex.l" { return MCURVE_TOK; } YY_BREAK case 7: YY_RULE_SETUP -#line 83 "lwin_wkt_lex.l" +#line 85 "lwin_wkt_lex.l" { return MLINESTRING_TOK; } YY_BREAK case 8: YY_RULE_SETUP -#line 84 "lwin_wkt_lex.l" +#line 86 "lwin_wkt_lex.l" { return MPOINT_TOK; } YY_BREAK case 9: YY_RULE_SETUP -#line 85 "lwin_wkt_lex.l" +#line 87 "lwin_wkt_lex.l" { return CURVEPOLYGON_TOK; } YY_BREAK case 10: YY_RULE_SETUP -#line 86 "lwin_wkt_lex.l" +#line 88 "lwin_wkt_lex.l" { return POLYGON_TOK; } YY_BREAK case 11: YY_RULE_SETUP -#line 87 "lwin_wkt_lex.l" +#line 89 "lwin_wkt_lex.l" { return COMPOUNDCURVE_TOK; } YY_BREAK case 12: YY_RULE_SETUP -#line 88 "lwin_wkt_lex.l" +#line 90 "lwin_wkt_lex.l" { return CIRCULARSTRING_TOK; } YY_BREAK case 13: YY_RULE_SETUP -#line 89 "lwin_wkt_lex.l" +#line 91 "lwin_wkt_lex.l" { return LINESTRING_TOK; } YY_BREAK case 14: YY_RULE_SETUP -#line 90 "lwin_wkt_lex.l" +#line 92 "lwin_wkt_lex.l" { return POLYHEDRALSURFACE_TOK; } YY_BREAK case 15: YY_RULE_SETUP -#line 91 "lwin_wkt_lex.l" +#line 93 "lwin_wkt_lex.l" { return TRIANGLE_TOK; } YY_BREAK case 16: YY_RULE_SETUP -#line 92 "lwin_wkt_lex.l" +#line 94 "lwin_wkt_lex.l" { return TIN_TOK; } YY_BREAK case 17: YY_RULE_SETUP -#line 93 "lwin_wkt_lex.l" +#line 95 "lwin_wkt_lex.l" { return POINT_TOK; } YY_BREAK case 18: YY_RULE_SETUP -#line 94 "lwin_wkt_lex.l" +#line 96 "lwin_wkt_lex.l" { return EMPTY_TOK; } YY_BREAK case 19: YY_RULE_SETUP -#line 96 "lwin_wkt_lex.l" +#line 98 "lwin_wkt_lex.l" { LWDEBUG(5,"DIMENSIONALITY"); wkt_yylval.stringvalue = wkt_yytext; @@ -1058,33 +1046,33 @@ YY_RULE_SETUP YY_BREAK case 20: YY_RULE_SETUP -#line 102 "lwin_wkt_lex.l" +#line 104 "lwin_wkt_lex.l" { LWDEBUG(5,"LBRACKET"); return LBRACKET_TOK; } YY_BREAK case 21: YY_RULE_SETUP -#line 103 "lwin_wkt_lex.l" +#line 105 "lwin_wkt_lex.l" { LWDEBUG(5,"RBRACKET"); return RBRACKET_TOK; } YY_BREAK case 22: YY_RULE_SETUP -#line 104 "lwin_wkt_lex.l" +#line 106 "lwin_wkt_lex.l" { LWDEBUG(5,"COMMA"); return COMMA_TOK; } YY_BREAK case 23: YY_RULE_SETUP -#line 105 "lwin_wkt_lex.l" +#line 107 "lwin_wkt_lex.l" { LWDEBUG(5,"SEMICOLON"); return SEMICOLON_TOK; } YY_BREAK case 24: /* rule 24 can match eol */ YY_RULE_SETUP -#line 107 "lwin_wkt_lex.l" +#line 109 "lwin_wkt_lex.l" { /* ignore whitespace */ LWDEBUG(5,"WHITESPACE"); } YY_BREAK case 25: YY_RULE_SETUP -#line 109 "lwin_wkt_lex.l" +#line 111 "lwin_wkt_lex.l" { /* Error out and stop parsing on unknown/unexpected characters */ LWDEBUG(5,"UNKNOWN"); wkt_lexer_unknown(); @@ -1093,10 +1081,10 @@ YY_RULE_SETUP YY_BREAK case 26: YY_RULE_SETUP -#line 115 "lwin_wkt_lex.l" +#line 117 "lwin_wkt_lex.l" ECHO; YY_BREAK -#line 1100 "lwin_wkt_lex.c" +#line 1088 "lwin_wkt_lex.c" case YY_STATE_EOF(INITIAL): yyterminate(); @@ -1283,21 +1271,21 @@ static int yy_get_next_buffer (void) else { - int num_to_read = + yy_size_t num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; while ( num_to_read <= 0 ) { /* Not enough room in the buffer - grow it. */ /* just a shorter name for the current buffer */ - YY_BUFFER_STATE b = YY_CURRENT_BUFFER; + YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE; int yy_c_buf_p_offset = (int) ((yy_c_buf_p) - b->yy_ch_buf); if ( b->yy_is_our_buffer ) { - int new_size = b->yy_buf_size * 2; + yy_size_t new_size = b->yy_buf_size * 2; if ( new_size <= 0 ) b->yy_buf_size += b->yy_buf_size / 8; @@ -1328,7 +1316,7 @@ static int yy_get_next_buffer (void) /* Read in more data. */ YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), - (yy_n_chars), (size_t) num_to_read ); + (yy_n_chars), num_to_read ); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); } @@ -1423,7 +1411,7 @@ static int yy_get_next_buffer (void) yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; yy_is_jam = (yy_current_state == 171); - return yy_is_jam ? 0 : yy_current_state; + return yy_is_jam ? 0 : yy_current_state; } #ifndef YY_NO_INPUT @@ -1450,7 +1438,7 @@ static int yy_get_next_buffer (void) else { /* need more input */ - int offset = (yy_c_buf_p) - (yytext_ptr); + yy_size_t offset = (yy_c_buf_p) - (yytext_ptr); ++(yy_c_buf_p); switch ( yy_get_next_buffer( ) ) @@ -1722,7 +1710,7 @@ void wkt_yypop_buffer_state (void) */ static void wkt_yyensure_buffer_stack (void) { - int num_to_alloc; + yy_size_t num_to_alloc; if (!(yy_buffer_stack)) { @@ -1819,7 +1807,7 @@ YY_BUFFER_STATE wkt_yy_scan_string (yyconst char * yystr ) * * @return the newly allocated buffer state object. */ -YY_BUFFER_STATE wkt_yy_scan_bytes (yyconst char * yybytes, int _yybytes_len ) +YY_BUFFER_STATE wkt_yy_scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len ) { YY_BUFFER_STATE b; char *buf; @@ -1906,7 +1894,7 @@ FILE *wkt_yyget_out (void) /** Get the length of the current token. * */ -int wkt_yyget_leng (void) +yy_size_t wkt_yyget_leng (void) { return wkt_yyleng; } @@ -2030,9 +2018,16 @@ static int yy_flex_strlen (yyconst char * s ) } #endif +#define YYTABLES_NAME "yytables" + +#line 117 "lwin_wkt_lex.l" + + + + void *wkt_yyalloc (yy_size_t size ) { - return (void *) malloc( size ); + return (void *) lwalloc( size ); } void *wkt_yyrealloc (void * ptr, yy_size_t size ) @@ -2044,17 +2039,10 @@ void *wkt_yyrealloc (void * ptr, yy_size_t size ) * any pointer type to void*, and deal with argument conversions * as though doing an assignment. */ - return (void *) realloc( (char *) ptr, size ); + return (void *) lwrealloc( (char *) ptr, size ); } void wkt_yyfree (void * ptr ) { - free( (char *) ptr ); /* see wkt_yyrealloc() for (char *) cast */ + lwfree( (char *) ptr ); /* see wkt_yyrealloc() for (char *) cast */ } - -#define YYTABLES_NAME "yytables" - -#line 115 "lwin_wkt_lex.l" - - - diff --git a/liblwgeom/lwin_wkt_lex.l b/liblwgeom/lwin_wkt_lex.l index f4df22976..188b5a022 100644 --- a/liblwgeom/lwin_wkt_lex.l +++ b/liblwgeom/lwin_wkt_lex.l @@ -61,6 +61,8 @@ static void wkt_lexer_unknown() %option never-interactive %option outfile="lwin_wkt_lex.c" %option noyywrap +/* Suppress the default implementations. */ +%option noyyalloc noyyrealloc noyyfree %% @@ -113,3 +115,18 @@ Z|M|ZM { } %% + +void *wkt_yyalloc (yy_size_t size ) +{ + return (void *) lwalloc( size ); +} + +void *wkt_yyrealloc (void * ptr, yy_size_t size ) +{ + return (void *) lwrealloc( (char *) ptr, size ); +} + +void wkt_yyfree (void * ptr ) +{ + lwfree( (char *) ptr ); /* see wkt_yyrealloc() for (char *) cast */ +} \ No newline at end of file diff --git a/liblwgeom/lwin_wkt_parse.c b/liblwgeom/lwin_wkt_parse.c index b1815676e..199eceee2 100644 --- a/liblwgeom/lwin_wkt_parse.c +++ b/liblwgeom/lwin_wkt_parse.c @@ -160,11 +160,13 @@ int lwgeom_parse_wkt(LWGEOM_PARSER_RESULT *parser_result, char *wktstr, int pars /* 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(); return LW_SUCCESS; } @@ -172,7 +174,7 @@ int lwgeom_parse_wkt(LWGEOM_PARSER_RESULT *parser_result, char *wktstr, int pars -#line 176 "lwin_wkt_parse.c" /* yacc.c:339 */ +#line 178 "lwin_wkt_parse.c" /* yacc.c:339 */ # ifndef YY_NULLPTR # if defined __cplusplus && 201103L <= __cplusplus @@ -262,7 +264,7 @@ extern int wkt_yydebug; union YYSTYPE { -#line 106 "lwin_wkt_parse.y" /* yacc.c:355 */ +#line 108 "lwin_wkt_parse.y" /* yacc.c:355 */ int integervalue; double doublevalue; @@ -271,7 +273,7 @@ union YYSTYPE POINT coordinatevalue; POINTARRAY *ptarrayvalue; -#line 275 "lwin_wkt_parse.c" /* yacc.c:355 */ +#line 277 "lwin_wkt_parse.c" /* yacc.c:355 */ }; typedef union YYSTYPE YYSTYPE; @@ -302,7 +304,7 @@ int wkt_yyparse (void); /* Copy the second part of user declarations. */ -#line 306 "lwin_wkt_parse.c" /* yacc.c:358 */ +#line 308 "lwin_wkt_parse.c" /* yacc.c:358 */ #ifdef short # undef short @@ -604,20 +606,20 @@ static const yytype_uint8 yytranslate[] = /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 210, 210, 212, 216, 217, 218, 219, 220, 221, - 222, 223, 224, 225, 226, 227, 228, 229, 230, 233, - 235, 237, 239, 243, 245, 249, 251, 253, 255, 259, - 261, 263, 265, 267, 269, 273, 275, 277, 279, 283, - 285, 287, 289, 293, 295, 297, 299, 303, 305, 309, - 311, 315, 317, 319, 321, 325, 327, 331, 334, 336, - 338, 340, 344, 346, 350, 351, 352, 353, 356, 358, - 362, 364, 368, 371, 374, 376, 378, 380, 384, 386, - 388, 390, 392, 394, 398, 400, 402, 404, 408, 410, - 412, 414, 416, 418, 420, 422, 426, 428, 430, 432, - 436, 438, 442, 444, 446, 448, 452, 454, 456, 458, - 462, 464, 468, 470, 474, 476, 478, 480, 484, 488, - 490, 492, 494, 498, 500, 504, 506, 508, 512, 514, - 516, 518, 522, 524, 528, 530, 532 + 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 }; #endif @@ -1383,219 +1385,219 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocatio switch (yytype) { case 28: /* geometry_no_srid */ -#line 188 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 190 "lwin_wkt_parse.y" /* yacc.c:1257 */ { lwgeom_free(((*yyvaluep).geometryvalue)); } -#line 1389 "lwin_wkt_parse.c" /* yacc.c:1257 */ +#line 1391 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 29: /* geometrycollection */ -#line 189 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 191 "lwin_wkt_parse.y" /* yacc.c:1257 */ { lwgeom_free(((*yyvaluep).geometryvalue)); } -#line 1395 "lwin_wkt_parse.c" /* yacc.c:1257 */ +#line 1397 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 31: /* multisurface */ -#line 196 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 198 "lwin_wkt_parse.y" /* yacc.c:1257 */ { lwgeom_free(((*yyvaluep).geometryvalue)); } -#line 1401 "lwin_wkt_parse.c" /* yacc.c:1257 */ +#line 1403 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 32: /* surface_list */ -#line 175 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 177 "lwin_wkt_parse.y" /* yacc.c:1257 */ { lwgeom_free(((*yyvaluep).geometryvalue)); } -#line 1407 "lwin_wkt_parse.c" /* yacc.c:1257 */ +#line 1409 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 33: /* tin */ -#line 203 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 205 "lwin_wkt_parse.y" /* yacc.c:1257 */ { lwgeom_free(((*yyvaluep).geometryvalue)); } -#line 1413 "lwin_wkt_parse.c" /* yacc.c:1257 */ +#line 1415 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 34: /* polyhedralsurface */ -#line 202 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 204 "lwin_wkt_parse.y" /* yacc.c:1257 */ { lwgeom_free(((*yyvaluep).geometryvalue)); } -#line 1419 "lwin_wkt_parse.c" /* yacc.c:1257 */ +#line 1421 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 35: /* multipolygon */ -#line 195 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 197 "lwin_wkt_parse.y" /* yacc.c:1257 */ { lwgeom_free(((*yyvaluep).geometryvalue)); } -#line 1425 "lwin_wkt_parse.c" /* yacc.c:1257 */ +#line 1427 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 36: /* polygon_list */ -#line 176 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 178 "lwin_wkt_parse.y" /* yacc.c:1257 */ { lwgeom_free(((*yyvaluep).geometryvalue)); } -#line 1431 "lwin_wkt_parse.c" /* yacc.c:1257 */ +#line 1433 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 37: /* patch_list */ -#line 177 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 179 "lwin_wkt_parse.y" /* yacc.c:1257 */ { lwgeom_free(((*yyvaluep).geometryvalue)); } -#line 1437 "lwin_wkt_parse.c" /* yacc.c:1257 */ +#line 1439 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 38: /* polygon */ -#line 199 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 201 "lwin_wkt_parse.y" /* yacc.c:1257 */ { lwgeom_free(((*yyvaluep).geometryvalue)); } -#line 1443 "lwin_wkt_parse.c" /* yacc.c:1257 */ +#line 1445 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 39: /* polygon_untagged */ -#line 201 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 203 "lwin_wkt_parse.y" /* yacc.c:1257 */ { lwgeom_free(((*yyvaluep).geometryvalue)); } -#line 1449 "lwin_wkt_parse.c" /* yacc.c:1257 */ +#line 1451 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 40: /* patch */ -#line 200 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 202 "lwin_wkt_parse.y" /* yacc.c:1257 */ { lwgeom_free(((*yyvaluep).geometryvalue)); } -#line 1455 "lwin_wkt_parse.c" /* yacc.c:1257 */ +#line 1457 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 41: /* curvepolygon */ -#line 186 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 188 "lwin_wkt_parse.y" /* yacc.c:1257 */ { lwgeom_free(((*yyvaluep).geometryvalue)); } -#line 1461 "lwin_wkt_parse.c" /* yacc.c:1257 */ +#line 1463 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 42: /* curvering_list */ -#line 173 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 175 "lwin_wkt_parse.y" /* yacc.c:1257 */ { lwgeom_free(((*yyvaluep).geometryvalue)); } -#line 1467 "lwin_wkt_parse.c" /* yacc.c:1257 */ +#line 1469 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 43: /* curvering */ -#line 187 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 189 "lwin_wkt_parse.y" /* yacc.c:1257 */ { lwgeom_free(((*yyvaluep).geometryvalue)); } -#line 1473 "lwin_wkt_parse.c" /* yacc.c:1257 */ +#line 1475 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 44: /* patchring_list */ -#line 183 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 185 "lwin_wkt_parse.y" /* yacc.c:1257 */ { lwgeom_free(((*yyvaluep).geometryvalue)); } -#line 1479 "lwin_wkt_parse.c" /* yacc.c:1257 */ +#line 1481 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 45: /* ring_list */ -#line 182 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 184 "lwin_wkt_parse.y" /* yacc.c:1257 */ { lwgeom_free(((*yyvaluep).geometryvalue)); } -#line 1485 "lwin_wkt_parse.c" /* yacc.c:1257 */ +#line 1487 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 46: /* patchring */ -#line 172 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 174 "lwin_wkt_parse.y" /* yacc.c:1257 */ { ptarray_free(((*yyvaluep).ptarrayvalue)); } -#line 1491 "lwin_wkt_parse.c" /* yacc.c:1257 */ +#line 1493 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 47: /* ring */ -#line 171 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 173 "lwin_wkt_parse.y" /* yacc.c:1257 */ { ptarray_free(((*yyvaluep).ptarrayvalue)); } -#line 1497 "lwin_wkt_parse.c" /* yacc.c:1257 */ +#line 1499 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 48: /* compoundcurve */ -#line 185 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 187 "lwin_wkt_parse.y" /* yacc.c:1257 */ { lwgeom_free(((*yyvaluep).geometryvalue)); } -#line 1503 "lwin_wkt_parse.c" /* yacc.c:1257 */ +#line 1505 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 49: /* compound_list */ -#line 181 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 183 "lwin_wkt_parse.y" /* yacc.c:1257 */ { lwgeom_free(((*yyvaluep).geometryvalue)); } -#line 1509 "lwin_wkt_parse.c" /* yacc.c:1257 */ +#line 1511 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 50: /* multicurve */ -#line 192 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 194 "lwin_wkt_parse.y" /* yacc.c:1257 */ { lwgeom_free(((*yyvaluep).geometryvalue)); } -#line 1515 "lwin_wkt_parse.c" /* yacc.c:1257 */ +#line 1517 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 51: /* curve_list */ -#line 180 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 182 "lwin_wkt_parse.y" /* yacc.c:1257 */ { lwgeom_free(((*yyvaluep).geometryvalue)); } -#line 1521 "lwin_wkt_parse.c" /* yacc.c:1257 */ +#line 1523 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 52: /* multilinestring */ -#line 193 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 195 "lwin_wkt_parse.y" /* yacc.c:1257 */ { lwgeom_free(((*yyvaluep).geometryvalue)); } -#line 1527 "lwin_wkt_parse.c" /* yacc.c:1257 */ +#line 1529 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 53: /* linestring_list */ -#line 179 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 181 "lwin_wkt_parse.y" /* yacc.c:1257 */ { lwgeom_free(((*yyvaluep).geometryvalue)); } -#line 1533 "lwin_wkt_parse.c" /* yacc.c:1257 */ +#line 1535 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 54: /* circularstring */ -#line 184 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 186 "lwin_wkt_parse.y" /* yacc.c:1257 */ { lwgeom_free(((*yyvaluep).geometryvalue)); } -#line 1539 "lwin_wkt_parse.c" /* yacc.c:1257 */ +#line 1541 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 55: /* linestring */ -#line 190 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 192 "lwin_wkt_parse.y" /* yacc.c:1257 */ { lwgeom_free(((*yyvaluep).geometryvalue)); } -#line 1545 "lwin_wkt_parse.c" /* yacc.c:1257 */ +#line 1547 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 56: /* linestring_untagged */ -#line 191 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 193 "lwin_wkt_parse.y" /* yacc.c:1257 */ { lwgeom_free(((*yyvaluep).geometryvalue)); } -#line 1551 "lwin_wkt_parse.c" /* yacc.c:1257 */ +#line 1553 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 57: /* triangle_list */ -#line 174 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 176 "lwin_wkt_parse.y" /* yacc.c:1257 */ { lwgeom_free(((*yyvaluep).geometryvalue)); } -#line 1557 "lwin_wkt_parse.c" /* yacc.c:1257 */ +#line 1559 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 58: /* triangle */ -#line 204 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 206 "lwin_wkt_parse.y" /* yacc.c:1257 */ { lwgeom_free(((*yyvaluep).geometryvalue)); } -#line 1563 "lwin_wkt_parse.c" /* yacc.c:1257 */ +#line 1565 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 59: /* triangle_untagged */ -#line 205 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 207 "lwin_wkt_parse.y" /* yacc.c:1257 */ { lwgeom_free(((*yyvaluep).geometryvalue)); } -#line 1569 "lwin_wkt_parse.c" /* yacc.c:1257 */ +#line 1571 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 60: /* multipoint */ -#line 194 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 196 "lwin_wkt_parse.y" /* yacc.c:1257 */ { lwgeom_free(((*yyvaluep).geometryvalue)); } -#line 1575 "lwin_wkt_parse.c" /* yacc.c:1257 */ +#line 1577 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 61: /* point_list */ -#line 178 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 180 "lwin_wkt_parse.y" /* yacc.c:1257 */ { lwgeom_free(((*yyvaluep).geometryvalue)); } -#line 1581 "lwin_wkt_parse.c" /* yacc.c:1257 */ +#line 1583 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 62: /* point_untagged */ -#line 198 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 200 "lwin_wkt_parse.y" /* yacc.c:1257 */ { lwgeom_free(((*yyvaluep).geometryvalue)); } -#line 1587 "lwin_wkt_parse.c" /* yacc.c:1257 */ +#line 1589 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 63: /* point */ -#line 197 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 199 "lwin_wkt_parse.y" /* yacc.c:1257 */ { lwgeom_free(((*yyvaluep).geometryvalue)); } -#line 1593 "lwin_wkt_parse.c" /* yacc.c:1257 */ +#line 1595 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; case 64: /* ptarray */ -#line 170 "lwin_wkt_parse.y" /* yacc.c:1257 */ +#line 172 "lwin_wkt_parse.y" /* yacc.c:1257 */ { ptarray_free(((*yyvaluep).ptarrayvalue)); } -#line 1599 "lwin_wkt_parse.c" /* yacc.c:1257 */ +#line 1601 "lwin_wkt_parse.c" /* yacc.c:1257 */ break; @@ -1881,817 +1883,817 @@ yyreduce: switch (yyn) { case 2: -#line 211 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 213 "lwin_wkt_parse.y" /* yacc.c:1646 */ { wkt_parser_geometry_new((yyvsp[0].geometryvalue), SRID_UNKNOWN); WKT_ERROR(); } -#line 1887 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 1889 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 3: -#line 213 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 215 "lwin_wkt_parse.y" /* yacc.c:1646 */ { wkt_parser_geometry_new((yyvsp[0].geometryvalue), (yyvsp[-2].integervalue)); WKT_ERROR(); } -#line 1893 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 1895 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 4: -#line 216 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 218 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); } -#line 1899 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 1901 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 5: -#line 217 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 219 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); } -#line 1905 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 1907 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 6: -#line 218 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 220 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); } -#line 1911 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 1913 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 7: -#line 219 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 221 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); } -#line 1917 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 1919 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 8: -#line 220 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 222 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); } -#line 1923 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 1925 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 9: -#line 221 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 223 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); } -#line 1929 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 1931 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 10: -#line 222 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 224 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); } -#line 1935 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 1937 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 11: -#line 223 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 225 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); } -#line 1941 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 1943 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 12: -#line 224 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 226 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); } -#line 1947 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 1949 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 13: -#line 225 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 227 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); } -#line 1953 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 1955 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 14: -#line 226 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 228 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); } -#line 1959 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 1961 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 15: -#line 227 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 229 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); } -#line 1965 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 1967 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 16: -#line 228 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 230 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); } -#line 1971 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 1973 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 17: -#line 229 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 231 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); } -#line 1977 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 1979 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 18: -#line 230 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 232 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); } -#line 1983 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 1985 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 19: -#line 234 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 236 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(COLLECTIONTYPE, (yyvsp[-1].geometryvalue), NULL); WKT_ERROR(); } -#line 1989 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 1991 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 20: -#line 236 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 238 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(COLLECTIONTYPE, (yyvsp[-1].geometryvalue), (yyvsp[-3].stringvalue)); WKT_ERROR(); } -#line 1995 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 1997 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 21: -#line 238 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 240 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(COLLECTIONTYPE, NULL, (yyvsp[-1].stringvalue)); WKT_ERROR(); } -#line 2001 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2003 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 22: -#line 240 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 242 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(COLLECTIONTYPE, NULL, NULL); WKT_ERROR(); } -#line 2007 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2009 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 23: -#line 244 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 246 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_add_geom((yyvsp[-2].geometryvalue),(yyvsp[0].geometryvalue)); WKT_ERROR(); } -#line 2013 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2015 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 24: -#line 246 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 248 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[0].geometryvalue)); WKT_ERROR(); } -#line 2019 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2021 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 25: -#line 250 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 252 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTISURFACETYPE, (yyvsp[-1].geometryvalue), NULL); WKT_ERROR(); } -#line 2025 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2027 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 26: -#line 252 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 254 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTISURFACETYPE, (yyvsp[-1].geometryvalue), (yyvsp[-3].stringvalue)); WKT_ERROR(); } -#line 2031 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2033 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 27: -#line 254 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 256 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTISURFACETYPE, NULL, (yyvsp[-1].stringvalue)); WKT_ERROR(); } -#line 2037 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2039 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 28: -#line 256 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 258 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTISURFACETYPE, NULL, NULL); WKT_ERROR(); } -#line 2043 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2045 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 29: -#line 260 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 262 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_add_geom((yyvsp[-2].geometryvalue),(yyvsp[0].geometryvalue)); WKT_ERROR(); } -#line 2049 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2051 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 30: -#line 262 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 264 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_add_geom((yyvsp[-2].geometryvalue),(yyvsp[0].geometryvalue)); WKT_ERROR(); } -#line 2055 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2057 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 31: -#line 264 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 266 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_add_geom((yyvsp[-2].geometryvalue),(yyvsp[0].geometryvalue)); WKT_ERROR(); } -#line 2061 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2063 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 32: -#line 266 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 268 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[0].geometryvalue)); WKT_ERROR(); } -#line 2067 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2069 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 33: -#line 268 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 270 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[0].geometryvalue)); WKT_ERROR(); } -#line 2073 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2075 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 34: -#line 270 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 272 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[0].geometryvalue)); WKT_ERROR(); } -#line 2079 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2081 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 35: -#line 274 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 276 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(TINTYPE, (yyvsp[-1].geometryvalue), NULL); WKT_ERROR(); } -#line 2085 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2087 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 36: -#line 276 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 278 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(TINTYPE, (yyvsp[-1].geometryvalue), (yyvsp[-3].stringvalue)); WKT_ERROR(); } -#line 2091 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2093 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 37: -#line 278 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 280 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(TINTYPE, NULL, (yyvsp[-1].stringvalue)); WKT_ERROR(); } -#line 2097 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2099 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 38: -#line 280 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 282 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(TINTYPE, NULL, NULL); WKT_ERROR(); } -#line 2103 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2105 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 39: -#line 284 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 286 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(POLYHEDRALSURFACETYPE, (yyvsp[-1].geometryvalue), NULL); WKT_ERROR(); } -#line 2109 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2111 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 40: -#line 286 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 288 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(POLYHEDRALSURFACETYPE, (yyvsp[-1].geometryvalue), (yyvsp[-3].stringvalue)); WKT_ERROR(); } -#line 2115 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2117 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 41: -#line 288 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 290 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(POLYHEDRALSURFACETYPE, NULL, (yyvsp[-1].stringvalue)); WKT_ERROR(); } -#line 2121 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2123 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 42: -#line 290 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 292 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(POLYHEDRALSURFACETYPE, NULL, NULL); WKT_ERROR(); } -#line 2127 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2129 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 43: -#line 294 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 296 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTIPOLYGONTYPE, (yyvsp[-1].geometryvalue), NULL); WKT_ERROR(); } -#line 2133 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2135 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 44: -#line 296 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 298 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTIPOLYGONTYPE, (yyvsp[-1].geometryvalue), (yyvsp[-3].stringvalue)); WKT_ERROR(); } -#line 2139 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2141 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 45: -#line 298 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 300 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTIPOLYGONTYPE, NULL, (yyvsp[-1].stringvalue)); WKT_ERROR(); } -#line 2145 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2147 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 46: -#line 300 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 302 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTIPOLYGONTYPE, NULL, NULL); WKT_ERROR(); } -#line 2151 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2153 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 47: -#line 304 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 306 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_add_geom((yyvsp[-2].geometryvalue),(yyvsp[0].geometryvalue)); WKT_ERROR(); } -#line 2157 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2159 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 48: -#line 306 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 308 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[0].geometryvalue)); WKT_ERROR(); } -#line 2163 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2165 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 49: -#line 310 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 312 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_add_geom((yyvsp[-2].geometryvalue),(yyvsp[0].geometryvalue)); WKT_ERROR(); } -#line 2169 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2171 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 50: -#line 312 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 314 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[0].geometryvalue)); WKT_ERROR(); } -#line 2175 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2177 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 51: -#line 316 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 318 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_polygon_finalize((yyvsp[-1].geometryvalue), NULL); WKT_ERROR(); } -#line 2181 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2183 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 52: -#line 318 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 320 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_polygon_finalize((yyvsp[-1].geometryvalue), (yyvsp[-3].stringvalue)); WKT_ERROR(); } -#line 2187 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2189 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 53: -#line 320 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 322 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_polygon_finalize(NULL, (yyvsp[-1].stringvalue)); WKT_ERROR(); } -#line 2193 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2195 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 54: -#line 322 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 324 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_polygon_finalize(NULL, NULL); WKT_ERROR(); } -#line 2199 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2201 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 55: -#line 326 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 328 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = (yyvsp[-1].geometryvalue); } -#line 2205 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2207 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 56: -#line 328 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 330 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_polygon_finalize(NULL, NULL); WKT_ERROR(); } -#line 2211 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2213 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 57: -#line 331 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 333 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = (yyvsp[-1].geometryvalue); } -#line 2217 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2219 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 58: -#line 335 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 337 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_curvepolygon_finalize((yyvsp[-1].geometryvalue), NULL); WKT_ERROR(); } -#line 2223 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2225 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 59: -#line 337 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 339 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_curvepolygon_finalize((yyvsp[-1].geometryvalue), (yyvsp[-3].stringvalue)); WKT_ERROR(); } -#line 2229 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2231 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 60: -#line 339 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 341 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_curvepolygon_finalize(NULL, (yyvsp[-1].stringvalue)); WKT_ERROR(); } -#line 2235 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2237 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 61: -#line 341 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 343 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_curvepolygon_finalize(NULL, NULL); WKT_ERROR(); } -#line 2241 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2243 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 62: -#line 345 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 347 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_curvepolygon_add_ring((yyvsp[-2].geometryvalue),(yyvsp[0].geometryvalue)); WKT_ERROR(); } -#line 2247 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2249 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 63: -#line 347 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 349 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_curvepolygon_new((yyvsp[0].geometryvalue)); WKT_ERROR(); } -#line 2253 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2255 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 64: -#line 350 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 352 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); } -#line 2259 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2261 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 65: -#line 351 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 353 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); } -#line 2265 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2267 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 66: -#line 352 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 354 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); } -#line 2271 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2273 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 67: -#line 353 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 355 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); } -#line 2277 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2279 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 68: -#line 357 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 359 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_polygon_add_ring((yyvsp[-2].geometryvalue),(yyvsp[0].ptarrayvalue),'Z'); WKT_ERROR(); } -#line 2283 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2285 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 69: -#line 359 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 361 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_polygon_new((yyvsp[0].ptarrayvalue),'Z'); WKT_ERROR(); } -#line 2289 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2291 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 70: -#line 363 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 365 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_polygon_add_ring((yyvsp[-2].geometryvalue),(yyvsp[0].ptarrayvalue),'2'); WKT_ERROR(); } -#line 2295 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2297 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 71: -#line 365 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 367 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_polygon_new((yyvsp[0].ptarrayvalue),'2'); WKT_ERROR(); } -#line 2301 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2303 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 72: -#line 368 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 370 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.ptarrayvalue) = (yyvsp[-1].ptarrayvalue); } -#line 2307 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2309 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 73: -#line 371 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 373 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.ptarrayvalue) = (yyvsp[-1].ptarrayvalue); } -#line 2313 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2315 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 74: -#line 375 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 377 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(COMPOUNDTYPE, (yyvsp[-1].geometryvalue), NULL); WKT_ERROR(); } -#line 2319 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2321 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 75: -#line 377 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 379 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(COMPOUNDTYPE, (yyvsp[-1].geometryvalue), (yyvsp[-3].stringvalue)); WKT_ERROR(); } -#line 2325 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2327 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 76: -#line 379 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 381 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(COMPOUNDTYPE, NULL, (yyvsp[-1].stringvalue)); WKT_ERROR(); } -#line 2331 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2333 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 77: -#line 381 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 383 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(COMPOUNDTYPE, NULL, NULL); WKT_ERROR(); } -#line 2337 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2339 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 78: -#line 385 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 387 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_compound_add_geom((yyvsp[-2].geometryvalue),(yyvsp[0].geometryvalue)); WKT_ERROR(); } -#line 2343 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2345 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 79: -#line 387 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 389 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_compound_add_geom((yyvsp[-2].geometryvalue),(yyvsp[0].geometryvalue)); WKT_ERROR(); } -#line 2349 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2351 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 80: -#line 389 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 391 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_compound_add_geom((yyvsp[-2].geometryvalue),(yyvsp[0].geometryvalue)); WKT_ERROR(); } -#line 2355 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2357 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 81: -#line 391 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 393 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_compound_new((yyvsp[0].geometryvalue)); WKT_ERROR(); } -#line 2361 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2363 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 82: -#line 393 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 395 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_compound_new((yyvsp[0].geometryvalue)); WKT_ERROR(); } -#line 2367 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2369 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 83: -#line 395 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 397 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_compound_new((yyvsp[0].geometryvalue)); WKT_ERROR(); } -#line 2373 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2375 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 84: -#line 399 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 401 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTICURVETYPE, (yyvsp[-1].geometryvalue), NULL); WKT_ERROR(); } -#line 2379 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2381 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 85: -#line 401 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 403 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTICURVETYPE, (yyvsp[-1].geometryvalue), (yyvsp[-3].stringvalue)); WKT_ERROR(); } -#line 2385 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2387 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 86: -#line 403 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 405 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTICURVETYPE, NULL, (yyvsp[-1].stringvalue)); WKT_ERROR(); } -#line 2391 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2393 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 87: -#line 405 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 407 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTICURVETYPE, NULL, NULL); WKT_ERROR(); } -#line 2397 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2399 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 88: -#line 409 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 411 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_add_geom((yyvsp[-2].geometryvalue),(yyvsp[0].geometryvalue)); WKT_ERROR(); } -#line 2403 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2405 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 89: -#line 411 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 413 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_add_geom((yyvsp[-2].geometryvalue),(yyvsp[0].geometryvalue)); WKT_ERROR(); } -#line 2409 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2411 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 90: -#line 413 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 415 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_add_geom((yyvsp[-2].geometryvalue),(yyvsp[0].geometryvalue)); WKT_ERROR(); } -#line 2415 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2417 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 91: -#line 415 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 417 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_add_geom((yyvsp[-2].geometryvalue),(yyvsp[0].geometryvalue)); WKT_ERROR(); } -#line 2421 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2423 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 92: -#line 417 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 419 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[0].geometryvalue)); WKT_ERROR(); } -#line 2427 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2429 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 93: -#line 419 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 421 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[0].geometryvalue)); WKT_ERROR(); } -#line 2433 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2435 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 94: -#line 421 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 423 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[0].geometryvalue)); WKT_ERROR(); } -#line 2439 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2441 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 95: -#line 423 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 425 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[0].geometryvalue)); WKT_ERROR(); } -#line 2445 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2447 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 96: -#line 427 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 429 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTILINETYPE, (yyvsp[-1].geometryvalue), NULL); WKT_ERROR(); } -#line 2451 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2453 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 97: -#line 429 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 431 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTILINETYPE, (yyvsp[-1].geometryvalue), (yyvsp[-3].stringvalue)); WKT_ERROR(); } -#line 2457 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2459 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 98: -#line 431 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 433 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTILINETYPE, NULL, (yyvsp[-1].stringvalue)); WKT_ERROR(); } -#line 2463 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2465 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 99: -#line 433 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 435 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTILINETYPE, NULL, NULL); WKT_ERROR(); } -#line 2469 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2471 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 100: -#line 437 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 439 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_add_geom((yyvsp[-2].geometryvalue),(yyvsp[0].geometryvalue)); WKT_ERROR(); } -#line 2475 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2477 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 101: -#line 439 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 441 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[0].geometryvalue)); WKT_ERROR(); } -#line 2481 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2483 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 102: -#line 443 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 445 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_circularstring_new((yyvsp[-1].ptarrayvalue), NULL); WKT_ERROR(); } -#line 2487 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2489 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 103: -#line 445 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 447 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_circularstring_new((yyvsp[-1].ptarrayvalue), (yyvsp[-3].stringvalue)); WKT_ERROR(); } -#line 2493 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2495 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 104: -#line 447 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 449 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_circularstring_new(NULL, (yyvsp[-1].stringvalue)); WKT_ERROR(); } -#line 2499 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2501 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 105: -#line 449 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 451 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_circularstring_new(NULL, NULL); WKT_ERROR(); } -#line 2505 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2507 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 106: -#line 453 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 455 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_linestring_new((yyvsp[-1].ptarrayvalue), NULL); WKT_ERROR(); } -#line 2511 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2513 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 107: -#line 455 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 457 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_linestring_new((yyvsp[-1].ptarrayvalue), (yyvsp[-3].stringvalue)); WKT_ERROR(); } -#line 2517 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2519 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 108: -#line 457 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 459 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_linestring_new(NULL, (yyvsp[-1].stringvalue)); WKT_ERROR(); } -#line 2523 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2525 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 109: -#line 459 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 461 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_linestring_new(NULL, NULL); WKT_ERROR(); } -#line 2529 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2531 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 110: -#line 463 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 465 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_linestring_new((yyvsp[-1].ptarrayvalue), NULL); WKT_ERROR(); } -#line 2535 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2537 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 111: -#line 465 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 467 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_linestring_new(NULL, NULL); WKT_ERROR(); } -#line 2541 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2543 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 112: -#line 469 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 471 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_add_geom((yyvsp[-2].geometryvalue),(yyvsp[0].geometryvalue)); WKT_ERROR(); } -#line 2547 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2549 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 113: -#line 471 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 473 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[0].geometryvalue)); WKT_ERROR(); } -#line 2553 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2555 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 114: -#line 475 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 477 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_triangle_new((yyvsp[-2].ptarrayvalue), NULL); WKT_ERROR(); } -#line 2559 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2561 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 115: -#line 477 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 479 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_triangle_new((yyvsp[-2].ptarrayvalue), (yyvsp[-5].stringvalue)); WKT_ERROR(); } -#line 2565 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2567 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 116: -#line 479 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 481 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_triangle_new(NULL, (yyvsp[-1].stringvalue)); WKT_ERROR(); } -#line 2571 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2573 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 117: -#line 481 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 483 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_triangle_new(NULL, NULL); WKT_ERROR(); } -#line 2577 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2579 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 118: -#line 485 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 487 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_triangle_new((yyvsp[-2].ptarrayvalue), NULL); WKT_ERROR(); } -#line 2583 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2585 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 119: -#line 489 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 491 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTIPOINTTYPE, (yyvsp[-1].geometryvalue), NULL); WKT_ERROR(); } -#line 2589 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2591 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 120: -#line 491 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 493 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTIPOINTTYPE, (yyvsp[-1].geometryvalue), (yyvsp[-3].stringvalue)); WKT_ERROR(); } -#line 2595 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2597 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 121: -#line 493 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 495 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTIPOINTTYPE, NULL, (yyvsp[-1].stringvalue)); WKT_ERROR(); } -#line 2601 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2603 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 122: -#line 495 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 497 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTIPOINTTYPE, NULL, NULL); WKT_ERROR(); } -#line 2607 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2609 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 123: -#line 499 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 501 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_add_geom((yyvsp[-2].geometryvalue),(yyvsp[0].geometryvalue)); WKT_ERROR(); } -#line 2613 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2615 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 124: -#line 501 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 503 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[0].geometryvalue)); WKT_ERROR(); } -#line 2619 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2621 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 125: -#line 505 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 507 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_point_new(wkt_parser_ptarray_new((yyvsp[0].coordinatevalue)),NULL); WKT_ERROR(); } -#line 2625 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2627 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 126: -#line 507 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 509 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_point_new(wkt_parser_ptarray_new((yyvsp[-1].coordinatevalue)),NULL); WKT_ERROR(); } -#line 2631 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2633 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 127: -#line 509 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 511 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_point_new(NULL, NULL); WKT_ERROR(); } -#line 2637 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2639 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 128: -#line 513 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 515 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_point_new((yyvsp[-1].ptarrayvalue), NULL); WKT_ERROR(); } -#line 2643 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2645 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 129: -#line 515 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 517 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_point_new((yyvsp[-1].ptarrayvalue), (yyvsp[-3].stringvalue)); WKT_ERROR(); } -#line 2649 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2651 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 130: -#line 517 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 519 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_point_new(NULL, (yyvsp[-1].stringvalue)); WKT_ERROR(); } -#line 2655 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2657 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 131: -#line 519 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 521 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.geometryvalue) = wkt_parser_point_new(NULL,NULL); WKT_ERROR(); } -#line 2661 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2663 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 132: -#line 523 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 525 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.ptarrayvalue) = wkt_parser_ptarray_add_coord((yyvsp[-2].ptarrayvalue), (yyvsp[0].coordinatevalue)); WKT_ERROR(); } -#line 2667 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2669 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 133: -#line 525 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 527 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.ptarrayvalue) = wkt_parser_ptarray_new((yyvsp[0].coordinatevalue)); WKT_ERROR(); } -#line 2673 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2675 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 134: -#line 529 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 531 "lwin_wkt_parse.y" /* yacc.c:1646 */ { (yyval.coordinatevalue) = wkt_parser_coord_2((yyvsp[-1].doublevalue), (yyvsp[0].doublevalue)); WKT_ERROR(); } -#line 2679 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2681 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 135: -#line 531 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 533 "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 2685 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2687 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; case 136: -#line 533 "lwin_wkt_parse.y" /* yacc.c:1646 */ +#line 535 "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 2691 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2693 "lwin_wkt_parse.c" /* yacc.c:1646 */ break; -#line 2695 "lwin_wkt_parse.c" /* yacc.c:1646 */ +#line 2697 "lwin_wkt_parse.c" /* yacc.c:1646 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -2926,6 +2928,6 @@ yyreturn: #endif return yyresult; } -#line 535 "lwin_wkt_parse.y" /* yacc.c:1906 */ +#line 537 "lwin_wkt_parse.y" /* yacc.c:1906 */ diff --git a/liblwgeom/lwin_wkt_parse.h b/liblwgeom/lwin_wkt_parse.h index 4a001390a..acb25607f 100644 --- a/liblwgeom/lwin_wkt_parse.h +++ b/liblwgeom/lwin_wkt_parse.h @@ -100,7 +100,7 @@ extern int wkt_yydebug; union YYSTYPE { -#line 106 "lwin_wkt_parse.y" /* yacc.c:1909 */ +#line 108 "lwin_wkt_parse.y" /* yacc.c:1909 */ int integervalue; double doublevalue; diff --git a/liblwgeom/lwin_wkt_parse.y b/liblwgeom/lwin_wkt_parse.y index c03bbd56d..1ddb06c29 100644 --- a/liblwgeom/lwin_wkt_parse.y +++ b/liblwgeom/lwin_wkt_parse.y @@ -86,11 +86,13 @@ int lwgeom_parse_wkt(LWGEOM_PARSER_RESULT *parser_result, char *wktstr, int pars /* 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(); return LW_SUCCESS; }