]> granicus.if.org Git - postgis/commitdiff
#2587, CompoundCurve with empties parses differently from WKB and WKT
authorPaul Ramsey <pramsey@cleverelephant.ca>
Mon, 27 Apr 2015 17:07:55 +0000 (17:07 +0000)
committerPaul Ramsey <pramsey@cleverelephant.ca>
Mon, 27 Apr 2015 17:07:55 +0000 (17:07 +0000)
git-svn-id: http://svn.osgeo.org/postgis/trunk@13452 b70326c6-7e19-0410-871a-916f4a2858ee

liblwgeom/lwin_wkt.c
liblwgeom/lwin_wkt.h
liblwgeom/lwin_wkt_parse.c
liblwgeom/lwin_wkt_parse.h
liblwgeom/lwin_wkt_parse.y

index ee325030bca98700ec6fba4b198133ec285d3816..e5e50a1a0d2c3fa51f0aad404bab5c535eae7f05 100644 (file)
@@ -707,6 +707,41 @@ LWGEOM* wkt_parser_collection_new(LWGEOM *geom)
 }
 
 
+LWGEOM* wkt_parser_compound_new(LWGEOM *geom) 
+{
+       LWCOLLECTION *col;
+       LWGEOM **geoms;
+       static int ngeoms = 1;
+       LWDEBUG(4,"entered");
+       
+       /* Toss error on null geometry input */
+       if( ! geom )
+       {
+               SET_PARSER_ERROR(PARSER_ERROR_OTHER);
+               return NULL;
+       }
+       
+       /* Elements of a compoundcurve cannot be empty, because */
+       /* empty things can't join up and form a ring */
+       if ( lwgeom_is_empty(geom) )
+       {
+               lwgeom_free(geom);
+               SET_PARSER_ERROR(PARSER_ERROR_INCONTINUOUS);
+               return NULL;            
+       }
+       
+       /* Create our geometry array */
+       geoms = lwalloc(sizeof(LWGEOM*) * ngeoms);
+       geoms[0] = geom;
+       
+       /* Make a new collection */
+       col = lwcollection_construct(COLLECTIONTYPE, SRID_UNKNOWN, NULL, ngeoms, geoms);
+
+       /* Return the result. */
+       return lwcollection_as_lwgeom(col);
+}
+
+
 LWGEOM* wkt_parser_compound_add_geom(LWGEOM *col, LWGEOM *geom)
 {
        LWDEBUG(4,"entered");
index febe97ddd3b3cfd90c44ed597b89f9434aa4ee57..e60673e3c08dac19649136bbbe099ebc6b1699ae 100644 (file)
@@ -46,6 +46,7 @@ LWGEOM* wkt_parser_polygon_finalize(LWGEOM *poly, char *dimensionality);
 LWGEOM* wkt_parser_curvepolygon_new(LWGEOM *ring);
 LWGEOM* wkt_parser_curvepolygon_add_ring(LWGEOM *poly, LWGEOM *ring);
 LWGEOM* wkt_parser_curvepolygon_finalize(LWGEOM *poly, char *dimensionality);
+LWGEOM* wkt_parser_compound_new(LWGEOM *element);
 LWGEOM* wkt_parser_compound_add_geom(LWGEOM *col, LWGEOM *geom);
 LWGEOM* wkt_parser_collection_new(LWGEOM *geom);
 LWGEOM* wkt_parser_collection_add_geom(LWGEOM *col, LWGEOM *geom);
index dde999ee1b0eda1dd4e90432e052b6f339ba6a1e..b1815676ee1f521d501fe1b4e0fb8ce41d8d8ea3 100644 (file)
@@ -1,8 +1,8 @@
-/* A Bison parser, made by GNU Bison 3.0.2.  */
+/* A Bison parser, made by GNU Bison 3.0.4.  */
 
 /* Bison implementation for Yacc-like parsers in C
 
-   Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
+   Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -44,7 +44,7 @@
 #define YYBISON 1
 
 /* Bison version.  */
-#define YYBISON_VERSION "3.0.2"
+#define YYBISON_VERSION "3.0.4"
 
 /* Skeleton name.  */
 #define YYSKELETON_NAME "yacc.c"
@@ -259,7 +259,7 @@ extern int wkt_yydebug;
 
 /* Value type.  */
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-typedef union YYSTYPE YYSTYPE;
+
 union YYSTYPE
 {
 #line 106 "lwin_wkt_parse.y" /* yacc.c:355  */
@@ -273,6 +273,8 @@ union YYSTYPE
 
 #line 275 "lwin_wkt_parse.c" /* yacc.c:355  */
 };
+
+typedef union YYSTYPE YYSTYPE;
 # define YYSTYPE_IS_TRIVIAL 1
 # define YYSTYPE_IS_DECLARED 1
 #endif
@@ -300,7 +302,7 @@ int wkt_yyparse (void);
 
 /* Copy the second part of user declarations.  */
 
-#line 304 "lwin_wkt_parse.c" /* yacc.c:358  */
+#line 306 "lwin_wkt_parse.c" /* yacc.c:358  */
 
 #ifdef short
 # undef short
@@ -1383,217 +1385,217 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocatio
           case 28: /* geometry_no_srid  */
 #line 188 "lwin_wkt_parse.y" /* yacc.c:1257  */
       { lwgeom_free(((*yyvaluep).geometryvalue)); }
-#line 1387 "lwin_wkt_parse.c" /* yacc.c:1257  */
+#line 1389 "lwin_wkt_parse.c" /* yacc.c:1257  */
         break;
 
     case 29: /* geometrycollection  */
 #line 189 "lwin_wkt_parse.y" /* yacc.c:1257  */
       { lwgeom_free(((*yyvaluep).geometryvalue)); }
-#line 1393 "lwin_wkt_parse.c" /* yacc.c:1257  */
+#line 1395 "lwin_wkt_parse.c" /* yacc.c:1257  */
         break;
 
     case 31: /* multisurface  */
 #line 196 "lwin_wkt_parse.y" /* yacc.c:1257  */
       { lwgeom_free(((*yyvaluep).geometryvalue)); }
-#line 1399 "lwin_wkt_parse.c" /* yacc.c:1257  */
+#line 1401 "lwin_wkt_parse.c" /* yacc.c:1257  */
         break;
 
     case 32: /* surface_list  */
 #line 175 "lwin_wkt_parse.y" /* yacc.c:1257  */
       { lwgeom_free(((*yyvaluep).geometryvalue)); }
-#line 1405 "lwin_wkt_parse.c" /* yacc.c:1257  */
+#line 1407 "lwin_wkt_parse.c" /* yacc.c:1257  */
         break;
 
     case 33: /* tin  */
 #line 203 "lwin_wkt_parse.y" /* yacc.c:1257  */
       { lwgeom_free(((*yyvaluep).geometryvalue)); }
-#line 1411 "lwin_wkt_parse.c" /* yacc.c:1257  */
+#line 1413 "lwin_wkt_parse.c" /* yacc.c:1257  */
         break;
 
     case 34: /* polyhedralsurface  */
 #line 202 "lwin_wkt_parse.y" /* yacc.c:1257  */
       { lwgeom_free(((*yyvaluep).geometryvalue)); }
-#line 1417 "lwin_wkt_parse.c" /* yacc.c:1257  */
+#line 1419 "lwin_wkt_parse.c" /* yacc.c:1257  */
         break;
 
     case 35: /* multipolygon  */
 #line 195 "lwin_wkt_parse.y" /* yacc.c:1257  */
       { lwgeom_free(((*yyvaluep).geometryvalue)); }
-#line 1423 "lwin_wkt_parse.c" /* yacc.c:1257  */
+#line 1425 "lwin_wkt_parse.c" /* yacc.c:1257  */
         break;
 
     case 36: /* polygon_list  */
 #line 176 "lwin_wkt_parse.y" /* yacc.c:1257  */
       { lwgeom_free(((*yyvaluep).geometryvalue)); }
-#line 1429 "lwin_wkt_parse.c" /* yacc.c:1257  */
+#line 1431 "lwin_wkt_parse.c" /* yacc.c:1257  */
         break;
 
     case 37: /* patch_list  */
 #line 177 "lwin_wkt_parse.y" /* yacc.c:1257  */
       { lwgeom_free(((*yyvaluep).geometryvalue)); }
-#line 1435 "lwin_wkt_parse.c" /* yacc.c:1257  */
+#line 1437 "lwin_wkt_parse.c" /* yacc.c:1257  */
         break;
 
     case 38: /* polygon  */
 #line 199 "lwin_wkt_parse.y" /* yacc.c:1257  */
       { lwgeom_free(((*yyvaluep).geometryvalue)); }
-#line 1441 "lwin_wkt_parse.c" /* yacc.c:1257  */
+#line 1443 "lwin_wkt_parse.c" /* yacc.c:1257  */
         break;
 
     case 39: /* polygon_untagged  */
 #line 201 "lwin_wkt_parse.y" /* yacc.c:1257  */
       { lwgeom_free(((*yyvaluep).geometryvalue)); }
-#line 1447 "lwin_wkt_parse.c" /* yacc.c:1257  */
+#line 1449 "lwin_wkt_parse.c" /* yacc.c:1257  */
         break;
 
     case 40: /* patch  */
 #line 200 "lwin_wkt_parse.y" /* yacc.c:1257  */
       { lwgeom_free(((*yyvaluep).geometryvalue)); }
-#line 1453 "lwin_wkt_parse.c" /* yacc.c:1257  */
+#line 1455 "lwin_wkt_parse.c" /* yacc.c:1257  */
         break;
 
     case 41: /* curvepolygon  */
 #line 186 "lwin_wkt_parse.y" /* yacc.c:1257  */
       { lwgeom_free(((*yyvaluep).geometryvalue)); }
-#line 1459 "lwin_wkt_parse.c" /* yacc.c:1257  */
+#line 1461 "lwin_wkt_parse.c" /* yacc.c:1257  */
         break;
 
     case 42: /* curvering_list  */
 #line 173 "lwin_wkt_parse.y" /* yacc.c:1257  */
       { lwgeom_free(((*yyvaluep).geometryvalue)); }
-#line 1465 "lwin_wkt_parse.c" /* yacc.c:1257  */
+#line 1467 "lwin_wkt_parse.c" /* yacc.c:1257  */
         break;
 
     case 43: /* curvering  */
 #line 187 "lwin_wkt_parse.y" /* yacc.c:1257  */
       { lwgeom_free(((*yyvaluep).geometryvalue)); }
-#line 1471 "lwin_wkt_parse.c" /* yacc.c:1257  */
+#line 1473 "lwin_wkt_parse.c" /* yacc.c:1257  */
         break;
 
     case 44: /* patchring_list  */
 #line 183 "lwin_wkt_parse.y" /* yacc.c:1257  */
       { lwgeom_free(((*yyvaluep).geometryvalue)); }
-#line 1477 "lwin_wkt_parse.c" /* yacc.c:1257  */
+#line 1479 "lwin_wkt_parse.c" /* yacc.c:1257  */
         break;
 
     case 45: /* ring_list  */
 #line 182 "lwin_wkt_parse.y" /* yacc.c:1257  */
       { lwgeom_free(((*yyvaluep).geometryvalue)); }
-#line 1483 "lwin_wkt_parse.c" /* yacc.c:1257  */
+#line 1485 "lwin_wkt_parse.c" /* yacc.c:1257  */
         break;
 
     case 46: /* patchring  */
 #line 172 "lwin_wkt_parse.y" /* yacc.c:1257  */
       { ptarray_free(((*yyvaluep).ptarrayvalue)); }
-#line 1489 "lwin_wkt_parse.c" /* yacc.c:1257  */
+#line 1491 "lwin_wkt_parse.c" /* yacc.c:1257  */
         break;
 
     case 47: /* ring  */
 #line 171 "lwin_wkt_parse.y" /* yacc.c:1257  */
       { ptarray_free(((*yyvaluep).ptarrayvalue)); }
-#line 1495 "lwin_wkt_parse.c" /* yacc.c:1257  */
+#line 1497 "lwin_wkt_parse.c" /* yacc.c:1257  */
         break;
 
     case 48: /* compoundcurve  */
 #line 185 "lwin_wkt_parse.y" /* yacc.c:1257  */
       { lwgeom_free(((*yyvaluep).geometryvalue)); }
-#line 1501 "lwin_wkt_parse.c" /* yacc.c:1257  */
+#line 1503 "lwin_wkt_parse.c" /* yacc.c:1257  */
         break;
 
     case 49: /* compound_list  */
 #line 181 "lwin_wkt_parse.y" /* yacc.c:1257  */
       { lwgeom_free(((*yyvaluep).geometryvalue)); }
-#line 1507 "lwin_wkt_parse.c" /* yacc.c:1257  */
+#line 1509 "lwin_wkt_parse.c" /* yacc.c:1257  */
         break;
 
     case 50: /* multicurve  */
 #line 192 "lwin_wkt_parse.y" /* yacc.c:1257  */
       { lwgeom_free(((*yyvaluep).geometryvalue)); }
-#line 1513 "lwin_wkt_parse.c" /* yacc.c:1257  */
+#line 1515 "lwin_wkt_parse.c" /* yacc.c:1257  */
         break;
 
     case 51: /* curve_list  */
 #line 180 "lwin_wkt_parse.y" /* yacc.c:1257  */
       { lwgeom_free(((*yyvaluep).geometryvalue)); }
-#line 1519 "lwin_wkt_parse.c" /* yacc.c:1257  */
+#line 1521 "lwin_wkt_parse.c" /* yacc.c:1257  */
         break;
 
     case 52: /* multilinestring  */
 #line 193 "lwin_wkt_parse.y" /* yacc.c:1257  */
       { lwgeom_free(((*yyvaluep).geometryvalue)); }
-#line 1525 "lwin_wkt_parse.c" /* yacc.c:1257  */
+#line 1527 "lwin_wkt_parse.c" /* yacc.c:1257  */
         break;
 
     case 53: /* linestring_list  */
 #line 179 "lwin_wkt_parse.y" /* yacc.c:1257  */
       { lwgeom_free(((*yyvaluep).geometryvalue)); }
-#line 1531 "lwin_wkt_parse.c" /* yacc.c:1257  */
+#line 1533 "lwin_wkt_parse.c" /* yacc.c:1257  */
         break;
 
     case 54: /* circularstring  */
 #line 184 "lwin_wkt_parse.y" /* yacc.c:1257  */
       { lwgeom_free(((*yyvaluep).geometryvalue)); }
-#line 1537 "lwin_wkt_parse.c" /* yacc.c:1257  */
+#line 1539 "lwin_wkt_parse.c" /* yacc.c:1257  */
         break;
 
     case 55: /* linestring  */
 #line 190 "lwin_wkt_parse.y" /* yacc.c:1257  */
       { lwgeom_free(((*yyvaluep).geometryvalue)); }
-#line 1543 "lwin_wkt_parse.c" /* yacc.c:1257  */
+#line 1545 "lwin_wkt_parse.c" /* yacc.c:1257  */
         break;
 
     case 56: /* linestring_untagged  */
 #line 191 "lwin_wkt_parse.y" /* yacc.c:1257  */
       { lwgeom_free(((*yyvaluep).geometryvalue)); }
-#line 1549 "lwin_wkt_parse.c" /* yacc.c:1257  */
+#line 1551 "lwin_wkt_parse.c" /* yacc.c:1257  */
         break;
 
     case 57: /* triangle_list  */
 #line 174 "lwin_wkt_parse.y" /* yacc.c:1257  */
       { lwgeom_free(((*yyvaluep).geometryvalue)); }
-#line 1555 "lwin_wkt_parse.c" /* yacc.c:1257  */
+#line 1557 "lwin_wkt_parse.c" /* yacc.c:1257  */
         break;
 
     case 58: /* triangle  */
 #line 204 "lwin_wkt_parse.y" /* yacc.c:1257  */
       { lwgeom_free(((*yyvaluep).geometryvalue)); }
-#line 1561 "lwin_wkt_parse.c" /* yacc.c:1257  */
+#line 1563 "lwin_wkt_parse.c" /* yacc.c:1257  */
         break;
 
     case 59: /* triangle_untagged  */
 #line 205 "lwin_wkt_parse.y" /* yacc.c:1257  */
       { lwgeom_free(((*yyvaluep).geometryvalue)); }
-#line 1567 "lwin_wkt_parse.c" /* yacc.c:1257  */
+#line 1569 "lwin_wkt_parse.c" /* yacc.c:1257  */
         break;
 
     case 60: /* multipoint  */
 #line 194 "lwin_wkt_parse.y" /* yacc.c:1257  */
       { lwgeom_free(((*yyvaluep).geometryvalue)); }
-#line 1573 "lwin_wkt_parse.c" /* yacc.c:1257  */
+#line 1575 "lwin_wkt_parse.c" /* yacc.c:1257  */
         break;
 
     case 61: /* point_list  */
 #line 178 "lwin_wkt_parse.y" /* yacc.c:1257  */
       { lwgeom_free(((*yyvaluep).geometryvalue)); }
-#line 1579 "lwin_wkt_parse.c" /* yacc.c:1257  */
+#line 1581 "lwin_wkt_parse.c" /* yacc.c:1257  */
         break;
 
     case 62: /* point_untagged  */
 #line 198 "lwin_wkt_parse.y" /* yacc.c:1257  */
       { lwgeom_free(((*yyvaluep).geometryvalue)); }
-#line 1585 "lwin_wkt_parse.c" /* yacc.c:1257  */
+#line 1587 "lwin_wkt_parse.c" /* yacc.c:1257  */
         break;
 
     case 63: /* point  */
 #line 197 "lwin_wkt_parse.y" /* yacc.c:1257  */
       { lwgeom_free(((*yyvaluep).geometryvalue)); }
-#line 1591 "lwin_wkt_parse.c" /* yacc.c:1257  */
+#line 1593 "lwin_wkt_parse.c" /* yacc.c:1257  */
         break;
 
     case 64: /* ptarray  */
 #line 170 "lwin_wkt_parse.y" /* yacc.c:1257  */
       { ptarray_free(((*yyvaluep).ptarrayvalue)); }
-#line 1597 "lwin_wkt_parse.c" /* yacc.c:1257  */
+#line 1599 "lwin_wkt_parse.c" /* yacc.c:1257  */
         break;
 
 
@@ -1881,815 +1883,815 @@ yyreduce:
         case 2:
 #line 211 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { wkt_parser_geometry_new((yyvsp[0].geometryvalue), SRID_UNKNOWN); WKT_ERROR(); }
-#line 1885 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 1887 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 3:
 #line 213 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { wkt_parser_geometry_new((yyvsp[0].geometryvalue), (yyvsp[-2].integervalue)); WKT_ERROR(); }
-#line 1891 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 1893 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 4:
 #line 216 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); }
-#line 1897 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 1899 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 5:
 #line 217 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); }
-#line 1903 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 1905 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 6:
 #line 218 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); }
-#line 1909 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 1911 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 7:
 #line 219 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); }
-#line 1915 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 1917 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 8:
 #line 220 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); }
-#line 1921 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 1923 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 9:
 #line 221 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); }
-#line 1927 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 1929 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 10:
 #line 222 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); }
-#line 1933 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 1935 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 11:
 #line 223 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); }
-#line 1939 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 1941 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 12:
 #line 224 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); }
-#line 1945 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 1947 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 13:
 #line 225 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); }
-#line 1951 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 1953 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 14:
 #line 226 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); }
-#line 1957 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 1959 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 15:
 #line 227 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); }
-#line 1963 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 1965 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 16:
 #line 228 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); }
-#line 1969 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 1971 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 17:
 #line 229 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); }
-#line 1975 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 1977 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 18:
 #line 230 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); }
-#line 1981 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 1983 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 19:
 #line 234 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_collection_finalize(COLLECTIONTYPE, (yyvsp[-1].geometryvalue), NULL); WKT_ERROR(); }
-#line 1987 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 1989 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 20:
 #line 236 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_collection_finalize(COLLECTIONTYPE, (yyvsp[-1].geometryvalue), (yyvsp[-3].stringvalue)); WKT_ERROR(); }
-#line 1993 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 1995 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 21:
 #line 238 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_collection_finalize(COLLECTIONTYPE, NULL, (yyvsp[-1].stringvalue)); WKT_ERROR(); }
-#line 1999 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2001 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 22:
 #line 240 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_collection_finalize(COLLECTIONTYPE, NULL, NULL); WKT_ERROR(); }
-#line 2005 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2007 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 23:
 #line 244 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_collection_add_geom((yyvsp[-2].geometryvalue),(yyvsp[0].geometryvalue)); WKT_ERROR(); }
-#line 2011 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2013 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 24:
 #line 246 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[0].geometryvalue)); WKT_ERROR(); }
-#line 2017 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2019 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 25:
 #line 250 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTISURFACETYPE, (yyvsp[-1].geometryvalue), NULL); WKT_ERROR(); }
-#line 2023 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2025 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 26:
 #line 252 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTISURFACETYPE, (yyvsp[-1].geometryvalue), (yyvsp[-3].stringvalue)); WKT_ERROR(); }
-#line 2029 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2031 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 27:
 #line 254 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTISURFACETYPE, NULL, (yyvsp[-1].stringvalue)); WKT_ERROR(); }
-#line 2035 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2037 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 28:
 #line 256 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTISURFACETYPE, NULL, NULL); WKT_ERROR(); }
-#line 2041 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2043 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 29:
 #line 260 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_collection_add_geom((yyvsp[-2].geometryvalue),(yyvsp[0].geometryvalue)); WKT_ERROR(); }
-#line 2047 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2049 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 30:
 #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 2053 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2055 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 31:
 #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 2059 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2061 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 32:
 #line 266 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[0].geometryvalue)); WKT_ERROR(); }
-#line 2065 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2067 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 33:
 #line 268 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[0].geometryvalue)); WKT_ERROR(); }
-#line 2071 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2073 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 34:
 #line 270 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[0].geometryvalue)); WKT_ERROR(); }
-#line 2077 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2079 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 35:
 #line 274 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_collection_finalize(TINTYPE, (yyvsp[-1].geometryvalue), NULL); WKT_ERROR(); }
-#line 2083 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2085 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 36:
 #line 276 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_collection_finalize(TINTYPE, (yyvsp[-1].geometryvalue), (yyvsp[-3].stringvalue)); WKT_ERROR(); }
-#line 2089 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2091 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 37:
 #line 278 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_collection_finalize(TINTYPE, NULL, (yyvsp[-1].stringvalue)); WKT_ERROR(); }
-#line 2095 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2097 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 38:
 #line 280 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_collection_finalize(TINTYPE, NULL, NULL); WKT_ERROR(); }
-#line 2101 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2103 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 39:
 #line 284 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_collection_finalize(POLYHEDRALSURFACETYPE, (yyvsp[-1].geometryvalue), NULL); WKT_ERROR(); }
-#line 2107 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2109 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 40:
 #line 286 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_collection_finalize(POLYHEDRALSURFACETYPE, (yyvsp[-1].geometryvalue), (yyvsp[-3].stringvalue)); WKT_ERROR(); }
-#line 2113 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2115 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 41:
 #line 288 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_collection_finalize(POLYHEDRALSURFACETYPE, NULL, (yyvsp[-1].stringvalue)); WKT_ERROR(); }
-#line 2119 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2121 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 42:
 #line 290 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_collection_finalize(POLYHEDRALSURFACETYPE, NULL, NULL); WKT_ERROR(); }
-#line 2125 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2127 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 43:
 #line 294 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTIPOLYGONTYPE, (yyvsp[-1].geometryvalue), NULL); WKT_ERROR(); }
-#line 2131 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2133 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 44:
 #line 296 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTIPOLYGONTYPE, (yyvsp[-1].geometryvalue), (yyvsp[-3].stringvalue)); WKT_ERROR(); }
-#line 2137 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2139 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 45:
 #line 298 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTIPOLYGONTYPE, NULL, (yyvsp[-1].stringvalue)); WKT_ERROR(); }
-#line 2143 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2145 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 46:
 #line 300 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTIPOLYGONTYPE, NULL, NULL); WKT_ERROR(); }
-#line 2149 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2151 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 47:
 #line 304 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_collection_add_geom((yyvsp[-2].geometryvalue),(yyvsp[0].geometryvalue)); WKT_ERROR(); }
-#line 2155 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2157 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 48:
 #line 306 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[0].geometryvalue)); WKT_ERROR(); }
-#line 2161 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2163 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 49:
 #line 310 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_collection_add_geom((yyvsp[-2].geometryvalue),(yyvsp[0].geometryvalue)); WKT_ERROR(); }
-#line 2167 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2169 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 50:
 #line 312 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[0].geometryvalue)); WKT_ERROR(); }
-#line 2173 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2175 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 51:
 #line 316 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_polygon_finalize((yyvsp[-1].geometryvalue), NULL); WKT_ERROR(); }
-#line 2179 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2181 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 52:
 #line 318 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_polygon_finalize((yyvsp[-1].geometryvalue), (yyvsp[-3].stringvalue)); WKT_ERROR(); }
-#line 2185 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2187 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 53:
 #line 320 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_polygon_finalize(NULL, (yyvsp[-1].stringvalue)); WKT_ERROR(); }
-#line 2191 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2193 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 54:
 #line 322 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_polygon_finalize(NULL, NULL); WKT_ERROR(); }
-#line 2197 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2199 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 55:
 #line 326 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = (yyvsp[-1].geometryvalue); }
-#line 2203 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2205 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 56:
 #line 328 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_polygon_finalize(NULL, NULL); WKT_ERROR(); }
-#line 2209 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2211 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 57:
 #line 331 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = (yyvsp[-1].geometryvalue); }
-#line 2215 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2217 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 58:
 #line 335 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_curvepolygon_finalize((yyvsp[-1].geometryvalue), NULL); WKT_ERROR(); }
-#line 2221 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2223 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 59:
 #line 337 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_curvepolygon_finalize((yyvsp[-1].geometryvalue), (yyvsp[-3].stringvalue)); WKT_ERROR(); }
-#line 2227 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2229 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 60:
 #line 339 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_curvepolygon_finalize(NULL, (yyvsp[-1].stringvalue)); WKT_ERROR(); }
-#line 2233 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2235 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 61:
 #line 341 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_curvepolygon_finalize(NULL, NULL); WKT_ERROR(); }
-#line 2239 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2241 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 62:
 #line 345 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_curvepolygon_add_ring((yyvsp[-2].geometryvalue),(yyvsp[0].geometryvalue)); WKT_ERROR(); }
-#line 2245 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2247 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 63:
 #line 347 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_curvepolygon_new((yyvsp[0].geometryvalue)); WKT_ERROR(); }
-#line 2251 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2253 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 64:
 #line 350 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); }
-#line 2257 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2259 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 65:
 #line 351 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); }
-#line 2263 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2265 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 66:
 #line 352 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); }
-#line 2269 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2271 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 67:
 #line 353 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = (yyvsp[0].geometryvalue); }
-#line 2275 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2277 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 68:
 #line 357 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_polygon_add_ring((yyvsp[-2].geometryvalue),(yyvsp[0].ptarrayvalue),'Z'); WKT_ERROR(); }
-#line 2281 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2283 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 69:
 #line 359 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_polygon_new((yyvsp[0].ptarrayvalue),'Z'); WKT_ERROR(); }
-#line 2287 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2289 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 70:
 #line 363 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_polygon_add_ring((yyvsp[-2].geometryvalue),(yyvsp[0].ptarrayvalue),'2'); WKT_ERROR(); }
-#line 2293 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2295 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 71:
 #line 365 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_polygon_new((yyvsp[0].ptarrayvalue),'2'); WKT_ERROR(); }
-#line 2299 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2301 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 72:
 #line 368 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.ptarrayvalue) = (yyvsp[-1].ptarrayvalue); }
-#line 2305 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2307 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 73:
 #line 371 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.ptarrayvalue) = (yyvsp[-1].ptarrayvalue); }
-#line 2311 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2313 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 74:
 #line 375 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_collection_finalize(COMPOUNDTYPE, (yyvsp[-1].geometryvalue), NULL); WKT_ERROR(); }
-#line 2317 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2319 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 75:
 #line 377 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_collection_finalize(COMPOUNDTYPE, (yyvsp[-1].geometryvalue), (yyvsp[-3].stringvalue)); WKT_ERROR(); }
-#line 2323 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2325 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 76:
 #line 379 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_collection_finalize(COMPOUNDTYPE, NULL, (yyvsp[-1].stringvalue)); WKT_ERROR(); }
-#line 2329 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2331 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 77:
 #line 381 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_collection_finalize(COMPOUNDTYPE, NULL, NULL); WKT_ERROR(); }
-#line 2335 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2337 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 78:
 #line 385 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_compound_add_geom((yyvsp[-2].geometryvalue),(yyvsp[0].geometryvalue)); WKT_ERROR(); }
-#line 2341 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2343 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 79:
 #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 2347 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2349 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 80:
 #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 2353 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2355 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 81:
 #line 391 "lwin_wkt_parse.y" /* yacc.c:1646  */
-    { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[0].geometryvalue)); WKT_ERROR(); }
-#line 2359 "lwin_wkt_parse.c" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_compound_new((yyvsp[0].geometryvalue)); WKT_ERROR(); }
+#line 2361 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 82:
 #line 393 "lwin_wkt_parse.y" /* yacc.c:1646  */
-    { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[0].geometryvalue)); WKT_ERROR(); }
-#line 2365 "lwin_wkt_parse.c" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_compound_new((yyvsp[0].geometryvalue)); WKT_ERROR(); }
+#line 2367 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 83:
 #line 395 "lwin_wkt_parse.y" /* yacc.c:1646  */
-    { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[0].geometryvalue)); WKT_ERROR(); }
-#line 2371 "lwin_wkt_parse.c" /* yacc.c:1646  */
+    { (yyval.geometryvalue) = wkt_parser_compound_new((yyvsp[0].geometryvalue)); WKT_ERROR(); }
+#line 2373 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 84:
 #line 399 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTICURVETYPE, (yyvsp[-1].geometryvalue), NULL); WKT_ERROR(); }
-#line 2377 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2379 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 85:
 #line 401 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTICURVETYPE, (yyvsp[-1].geometryvalue), (yyvsp[-3].stringvalue)); WKT_ERROR(); }
-#line 2383 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2385 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 86:
 #line 403 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTICURVETYPE, NULL, (yyvsp[-1].stringvalue)); WKT_ERROR(); }
-#line 2389 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2391 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 87:
 #line 405 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTICURVETYPE, NULL, NULL); WKT_ERROR(); }
-#line 2395 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2397 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 88:
 #line 409 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_collection_add_geom((yyvsp[-2].geometryvalue),(yyvsp[0].geometryvalue)); WKT_ERROR(); }
-#line 2401 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2403 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 89:
 #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 2407 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2409 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 90:
 #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 2413 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2415 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 91:
 #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 2419 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2421 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 92:
 #line 417 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[0].geometryvalue)); WKT_ERROR(); }
-#line 2425 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2427 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 93:
 #line 419 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[0].geometryvalue)); WKT_ERROR(); }
-#line 2431 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2433 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 94:
 #line 421 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[0].geometryvalue)); WKT_ERROR(); }
-#line 2437 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2439 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 95:
 #line 423 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[0].geometryvalue)); WKT_ERROR(); }
-#line 2443 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2445 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 96:
 #line 427 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTILINETYPE, (yyvsp[-1].geometryvalue), NULL); WKT_ERROR(); }
-#line 2449 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2451 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 97:
 #line 429 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTILINETYPE, (yyvsp[-1].geometryvalue), (yyvsp[-3].stringvalue)); WKT_ERROR(); }
-#line 2455 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2457 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 98:
 #line 431 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTILINETYPE, NULL, (yyvsp[-1].stringvalue)); WKT_ERROR(); }
-#line 2461 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2463 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 99:
 #line 433 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTILINETYPE, NULL, NULL); WKT_ERROR(); }
-#line 2467 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2469 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 100:
 #line 437 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_collection_add_geom((yyvsp[-2].geometryvalue),(yyvsp[0].geometryvalue)); WKT_ERROR(); }
-#line 2473 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2475 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 101:
 #line 439 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[0].geometryvalue)); WKT_ERROR(); }
-#line 2479 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2481 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 102:
 #line 443 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_circularstring_new((yyvsp[-1].ptarrayvalue), NULL); WKT_ERROR(); }
-#line 2485 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2487 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 103:
 #line 445 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_circularstring_new((yyvsp[-1].ptarrayvalue), (yyvsp[-3].stringvalue)); WKT_ERROR(); }
-#line 2491 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2493 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 104:
 #line 447 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_circularstring_new(NULL, (yyvsp[-1].stringvalue)); WKT_ERROR(); }
-#line 2497 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2499 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 105:
 #line 449 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_circularstring_new(NULL, NULL); WKT_ERROR(); }
-#line 2503 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2505 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 106:
 #line 453 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_linestring_new((yyvsp[-1].ptarrayvalue), NULL); WKT_ERROR(); }
-#line 2509 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2511 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 107:
 #line 455 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_linestring_new((yyvsp[-1].ptarrayvalue), (yyvsp[-3].stringvalue)); WKT_ERROR(); }
-#line 2515 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2517 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 108:
 #line 457 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_linestring_new(NULL, (yyvsp[-1].stringvalue)); WKT_ERROR(); }
-#line 2521 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2523 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 109:
 #line 459 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_linestring_new(NULL, NULL); WKT_ERROR(); }
-#line 2527 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2529 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 110:
 #line 463 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_linestring_new((yyvsp[-1].ptarrayvalue), NULL); WKT_ERROR(); }
-#line 2533 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2535 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 111:
 #line 465 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_linestring_new(NULL, NULL); WKT_ERROR(); }
-#line 2539 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2541 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 112:
 #line 469 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_collection_add_geom((yyvsp[-2].geometryvalue),(yyvsp[0].geometryvalue)); WKT_ERROR(); }
-#line 2545 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2547 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 113:
 #line 471 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[0].geometryvalue)); WKT_ERROR(); }
-#line 2551 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2553 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 114:
 #line 475 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_triangle_new((yyvsp[-2].ptarrayvalue), NULL); WKT_ERROR(); }
-#line 2557 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2559 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 115:
 #line 477 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_triangle_new((yyvsp[-2].ptarrayvalue), (yyvsp[-5].stringvalue)); WKT_ERROR(); }
-#line 2563 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2565 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 116:
 #line 479 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_triangle_new(NULL, (yyvsp[-1].stringvalue)); WKT_ERROR(); }
-#line 2569 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2571 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 117:
 #line 481 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_triangle_new(NULL, NULL); WKT_ERROR(); }
-#line 2575 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2577 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 118:
 #line 485 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_triangle_new((yyvsp[-2].ptarrayvalue), NULL); WKT_ERROR(); }
-#line 2581 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2583 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 119:
 #line 489 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTIPOINTTYPE, (yyvsp[-1].geometryvalue), NULL); WKT_ERROR(); }
-#line 2587 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2589 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 120:
 #line 491 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTIPOINTTYPE, (yyvsp[-1].geometryvalue), (yyvsp[-3].stringvalue)); WKT_ERROR(); }
-#line 2593 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2595 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 121:
 #line 493 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTIPOINTTYPE, NULL, (yyvsp[-1].stringvalue)); WKT_ERROR(); }
-#line 2599 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2601 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 122:
 #line 495 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_collection_finalize(MULTIPOINTTYPE, NULL, NULL); WKT_ERROR(); }
-#line 2605 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2607 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 123:
 #line 499 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_collection_add_geom((yyvsp[-2].geometryvalue),(yyvsp[0].geometryvalue)); WKT_ERROR(); }
-#line 2611 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2613 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 124:
 #line 501 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_collection_new((yyvsp[0].geometryvalue)); WKT_ERROR(); }
-#line 2617 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2619 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 125:
 #line 505 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_point_new(wkt_parser_ptarray_new((yyvsp[0].coordinatevalue)),NULL); WKT_ERROR(); }
-#line 2623 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2625 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 126:
 #line 507 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_point_new(wkt_parser_ptarray_new((yyvsp[-1].coordinatevalue)),NULL); WKT_ERROR(); }
-#line 2629 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2631 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 127:
 #line 509 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_point_new(NULL, NULL); WKT_ERROR(); }
-#line 2635 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2637 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 128:
 #line 513 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_point_new((yyvsp[-1].ptarrayvalue), NULL); WKT_ERROR(); }
-#line 2641 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2643 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 129:
 #line 515 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_point_new((yyvsp[-1].ptarrayvalue), (yyvsp[-3].stringvalue)); WKT_ERROR(); }
-#line 2647 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2649 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 130:
 #line 517 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_point_new(NULL, (yyvsp[-1].stringvalue)); WKT_ERROR(); }
-#line 2653 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2655 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 131:
 #line 519 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.geometryvalue) = wkt_parser_point_new(NULL,NULL); WKT_ERROR(); }
-#line 2659 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2661 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 132:
 #line 523 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.ptarrayvalue) = wkt_parser_ptarray_add_coord((yyvsp[-2].ptarrayvalue), (yyvsp[0].coordinatevalue)); WKT_ERROR(); }
-#line 2665 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2667 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 133:
 #line 525 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.ptarrayvalue) = wkt_parser_ptarray_new((yyvsp[0].coordinatevalue)); WKT_ERROR(); }
-#line 2671 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2673 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 134:
 #line 529 "lwin_wkt_parse.y" /* yacc.c:1646  */
     { (yyval.coordinatevalue) = wkt_parser_coord_2((yyvsp[-1].doublevalue), (yyvsp[0].doublevalue)); WKT_ERROR(); }
-#line 2677 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2679 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 135:
 #line 531 "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 2683 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2685 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
   case 136:
 #line 533 "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 2689 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2691 "lwin_wkt_parse.c" /* yacc.c:1646  */
     break;
 
 
-#line 2693 "lwin_wkt_parse.c" /* yacc.c:1646  */
+#line 2695 "lwin_wkt_parse.c" /* yacc.c:1646  */
       default: break;
     }
   /* User semantic actions sometimes alter yychar, and that requires
index 30d9a8d93a63103b06d376fdcca6c1f06b580f39..4a001390a935ad20d72cde3d3340b40be512c88a 100644 (file)
@@ -1,8 +1,8 @@
-/* A Bison parser, made by GNU Bison 3.0.2.  */
+/* A Bison parser, made by GNU Bison 3.0.4.  */
 
 /* Bison interface for Yacc-like parsers in C
 
-   Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
+   Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -97,7 +97,7 @@ extern int wkt_yydebug;
 
 /* Value type.  */
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-typedef union YYSTYPE YYSTYPE;
+
 union YYSTYPE
 {
 #line 106 "lwin_wkt_parse.y" /* yacc.c:1909  */
@@ -111,6 +111,8 @@ union YYSTYPE
 
 #line 113 "lwin_wkt_parse.h" /* yacc.c:1909  */
 };
+
+typedef union YYSTYPE YYSTYPE;
 # define YYSTYPE_IS_TRIVIAL 1
 # define YYSTYPE_IS_DECLARED 1
 #endif
index 3bd1776d2d1cfb5fb8e6c365bb5875a31ab56e8f..c03bbd56d79c6e3e7bf86045a4feb894dbf86c51 100644 (file)
@@ -388,11 +388,11 @@ compound_list :
        compound_list COMMA_TOK linestring_untagged
                { $$ = wkt_parser_compound_add_geom($1,$3); WKT_ERROR(); } |
        circularstring
-               { $$ = wkt_parser_collection_new($1); WKT_ERROR(); } |
+               { $$ = wkt_parser_compound_new($1); WKT_ERROR(); } |
        linestring
-               { $$ = wkt_parser_collection_new($1); WKT_ERROR(); } |
+               { $$ = wkt_parser_compound_new($1); WKT_ERROR(); } |
        linestring_untagged
-               { $$ = wkt_parser_collection_new($1); WKT_ERROR(); } ;
+               { $$ = wkt_parser_compound_new($1); WKT_ERROR(); } ;
 
 multicurve :
        MCURVE_TOK LBRACKET_TOK curve_list RBRACKET_TOK