#include <stdio.h>
#ifndef INTERFACE
#define INTERFACE 1
#endif
#define YYCODETYPE unsigned char
#define YYNOCODE 117
#define YYACTIONTYPE unsigned short int
#define ParseTOKENTYPE void *
typedef union
{
int yyinit;
ParseTOKENTYPE yy0;
} YYMINORTYPE;
#ifndef YYSTACKDEPTH
#define YYSTACKDEPTH 1000000
#endif
#define ParseARG_SDECL struct ewkt_data *p_data ;
#define ParseARG_PDECL , struct ewkt_data *p_data
#define ParseARG_FETCH struct ewkt_data *p_data = yypParser->p_data
#define ParseARG_STORE yypParser->p_data = p_data
#define YYNSTATE 508
#define YYNRULE 199
#define YY_NO_ACTION (YYNSTATE+YYNRULE+2)
#define YY_ACCEPT_ACTION (YYNSTATE+YYNRULE+1)
#define YY_ERROR_ACTION (YYNSTATE+YYNRULE)
static const YYMINORTYPE yyzerominor = { 0 };
#ifndef yytestcase
#define yytestcase(X)
#endif
static const YYACTIONTYPE yy_action[] = {
249, 336, 337, 338, 339, 340, 341, 342, 343, 344,
345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
365, 366, 163, 201, 224, 178, 202, 225, 179, 203,
226, 180, 204, 227, 181, 205, 228, 182, 206, 229,
508, 101, 250, 128, 371, 254, 66, 129, 19, 80,
20, 95, 22, 124, 23, 141, 25, 158, 27, 232,
250, 254, 708, 1, 13, 80, 19, 95, 20, 124,
22, 141, 23, 158, 25, 247, 28, 103, 104, 371,
105, 106, 63, 305, 111, 117, 305, 255, 21, 164,
66, 165, 164, 166, 165, 167, 166, 169, 167, 177,
169, 313, 183, 374, 313, 375, 376, 187, 14, 188,
187, 189, 188, 190, 189, 192, 190, 200, 192, 321,
207, 404, 321, 405, 406, 210, 62, 211, 210, 212,
211, 213, 212, 215, 213, 223, 215, 254, 230, 3,
24, 80, 104, 95, 26, 124, 71, 141, 111, 158,
171, 240, 2, 172, 194, 163, 173, 195, 178, 174,
196, 179, 175, 197, 180, 176, 198, 181, 217, 199,
182, 218, 201, 125, 219, 202, 371, 220, 203, 224,
221, 204, 225, 222, 205, 226, 108, 206, 227, 371,
388, 228, 389, 390, 229, 284, 233, 242, 243, 244,
245, 246, 234, 235, 236, 237, 238, 239, 31, 113,
251, 252, 371, 253, 83, 63, 256, 258, 87, 260,
91, 63, 265, 270, 103, 275, 257, 63, 106, 68,
105, 78, 75, 75, 424, 117, 425, 426, 132, 119,
135, 138, 371, 436, 64, 437, 438, 146, 69, 150,
154, 65, 370, 68, 448, 70, 449, 450, 67, 184,
68, 186, 209, 73, 74, 373, 33, 71, 71, 79,
262, 75, 81, 66, 82, 66, 265, 66, 266, 267,
85, 68, 270, 68, 68, 68, 71, 271, 272, 89,
258, 71, 71, 71, 71, 275, 276, 75, 75, 277,
93, 75, 75, 280, 281, 282, 66, 66, 66, 377,
256, 99, 251, 378, 66, 68, 260, 68, 75, 252,
253, 72, 75, 71, 407, 408, 371, 371, 380, 76,
259, 77, 35, 36, 381, 38, 261, 383, 84, 263,
385, 386, 39, 88, 268, 43, 47, 92, 96, 273,
51, 98, 102, 278, 264, 86, 61, 283, 393, 269,
287, 285, 90, 400, 286, 396, 107, 97, 274, 94,
279, 399, 100, 289, 403, 108, 110, 413, 109, 288,
112, 291, 113, 114, 116, 118, 115, 290, 119, 15,
415, 419, 125, 120, 121, 123, 292, 122, 126, 130,
133, 127, 417, 296, 55, 136, 293, 428, 297, 56,
430, 131, 139, 298, 295, 57, 422, 294, 142, 148,
144, 147, 301, 152, 134, 151, 155, 137, 156, 140,
143, 159, 709, 145, 161, 16, 4, 168, 170, 149,
5, 17, 709, 6, 83, 153, 709, 191, 193, 433,
87, 709, 160, 157, 432, 299, 91, 162, 435, 374,
388, 7, 132, 709, 709, 709, 300, 709, 8, 440,
146, 404, 709, 18, 442, 214, 302, 445, 444, 216,
424, 709, 303, 709, 709, 709, 447, 709, 709, 709,
709, 436, 709, 709, 304, 709, 709, 375, 9, 709,
135, 709, 389, 709, 709, 709, 709, 452, 453, 454,
709, 455, 456, 709, 457, 185, 306, 312, 709, 150,
307, 308, 309, 310, 425, 184, 10, 11, 709, 405,
709, 709, 709, 311, 464, 709, 709, 709, 709, 709,
709, 709, 437, 709, 376, 466, 390, 709, 335, 709,
138, 709, 12, 709, 709, 367, 467, 154, 709, 29,
468, 208, 469, 470, 471, 406, 426, 314, 315, 316,
317, 318, 186, 319, 478, 368, 369, 372, 320, 379,
438, 30, 382, 32, 34, 384, 37, 387, 391, 40,
709, 392, 41, 42, 480, 481, 482, 394, 483, 44,
58, 45, 484, 46, 395, 48, 397, 485, 59, 231,
49, 50, 398, 52, 322, 401, 323, 53, 324, 54,
402, 409, 493, 325, 326, 327, 209, 492, 410, 328,
495, 496, 411, 412, 497, 498, 241, 499, 500, 501,
407, 329, 414, 330, 408, 416, 418, 331, 332, 420,
421, 423, 427, 429, 248, 431, 333, 434, 439, 334,
441, 443, 446, 451, 458, 459, 460, 461, 462, 463,
465, 472, 473, 474, 475, 476, 477, 479, 60, 709,
486, 487, 488, 489, 709, 490, 491, 494, 502, 709,
503, 504, 505, 506, 709, 507,
};
static const YYCODETYPE yy_lookahead[] = {
23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
53, 54, 27, 28, 29, 30, 31, 32, 33, 34,
35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
0, 3, 2, 57, 6, 5, 60, 61, 8, 9,
10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2, 5, 21, 22, 3, 9, 8, 11, 10, 13,
12, 15, 14, 17, 16, 19, 18, 55, 56, 6,
58, 59, 60, 2, 62, 63, 2, 57, 3, 8,
60, 10, 8, 12, 10, 14, 12, 16, 14, 18,
16, 2, 18, 72, 2, 74, 75, 8, 3, 10,
8, 12, 10, 14, 12, 16, 14, 18, 16, 2,
18, 88, 2, 90, 91, 8, 60, 10, 8, 12,
10, 14, 12, 16, 14, 18, 16, 5, 18, 3,
3, 9, 56, 11, 3, 13, 60, 15, 62, 17,
27, 19, 3, 30, 28, 27, 33, 31, 30, 36,
34, 33, 39, 37, 36, 42, 40, 39, 29, 43,
42, 32, 28, 3, 35, 31, 6, 38, 34, 29,
41, 37, 32, 44, 40, 35, 3, 43, 38, 6,
76, 41, 78, 79, 44, 60, 48, 49, 50, 51,
52, 53, 48, 49, 50, 51, 52, 53, 7, 3,
55, 56, 6, 58, 80, 60, 55, 56, 84, 58,
86, 60, 55, 56, 55, 58, 68, 60, 59, 60,
58, 58, 60, 60, 92, 63, 94, 95, 72, 3,
74, 75, 6, 100, 60, 102, 103, 76, 55, 78,
79, 60, 60, 60, 108, 55, 110, 111, 60, 108,
60, 110, 111, 56, 56, 60, 7, 60, 60, 58,
57, 60, 57, 60, 57, 60, 55, 60, 55, 55,
55, 60, 56, 60, 60, 60, 60, 56, 56, 56,
56, 60, 60, 60, 60, 58, 58, 60, 60, 58,
58, 60, 60, 57, 57, 57, 60, 60, 60, 60,
55, 57, 55, 68, 60, 60, 58, 60, 60, 56,
58, 60, 60, 60, 4, 4, 6, 6, 60, 60,
70, 60, 7, 3, 70, 7, 71, 71, 7, 69,
73, 69, 3, 7, 68, 3, 3, 7, 3, 70,
3, 7, 60, 71, 81, 80, 60, 69, 81, 85,
71, 68, 84, 77, 70, 85, 7, 82, 87, 86,
83, 87, 82, 64, 83, 3, 59, 64, 60, 60,
7, 66, 3, 60, 62, 7, 60, 60, 3, 3,
66, 89, 3, 60, 60, 63, 67, 60, 60, 7,
7, 60, 67, 96, 3, 7, 60, 96, 98, 3,
98, 61, 7, 99, 65, 3, 65, 69, 3, 3,
7, 7, 106, 3, 72, 7, 7, 74, 3, 75,
73, 3, 116, 73, 7, 3, 7, 3, 3, 76,
3, 3, 116, 7, 80, 78, 116, 3, 3, 93,
84, 116, 77, 79, 99, 97, 86, 77, 97, 72,
76, 3, 72, 116, 116, 116, 104, 116, 7, 104,
76, 88, 116, 3, 106, 3, 107, 101, 107, 3,
92, 116, 105, 116, 116, 116, 105, 116, 116, 116,
116, 100, 116, 116, 112, 116, 116, 74, 3, 116,
74, 116, 78, 116, 116, 116, 116, 112, 112, 112,
116, 112, 112, 116, 112, 108, 112, 114, 116, 78,
112, 112, 112, 112, 94, 108, 3, 7, 116, 90,
116, 116, 116, 112, 112, 116, 116, 116, 116, 116,
116, 116, 102, 116, 75, 114, 79, 116, 1, 116,
75, 116, 3, 116, 116, 4, 114, 79, 116, 3,
114, 110, 114, 114, 114, 91, 95, 114, 114, 114,
114, 114, 110, 114, 114, 4, 4, 4, 115, 4,
103, 7, 4, 7, 7, 4, 7, 4, 4, 7,
116, 4, 7, 7, 115, 115, 115, 4, 115, 7,
3, 7, 115, 7, 4, 7, 4, 115, 3, 111,
7, 7, 4, 7, 115, 4, 115, 7, 115, 7,
4, 4, 109, 115, 115, 115, 111, 115, 4, 113,
113, 113, 4, 4, 113, 113, 109, 113, 113, 113,
4, 113, 4, 113, 4, 4, 4, 113, 113, 4,
4, 4, 4, 4, 109, 4, 113, 4, 4, 113,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 3, 116,
4, 4, 4, 4, 116, 4, 4, 4, 4, 116,
4, 4, 4, 4, 116, 4,
};
#define YY_SHIFT_USE_DFLT (-1)
#define YY_SHIFT_MAX 334
static const short yy_shift_ofst[] = {
-1, 50, 68, 48, 91, 94, 109, 112, 127, 130,
66, 142, 83, 83, 83, 180, 193, 216, 246, 71,
95, 115, 146, 147, 71, 151, 95, 159, 159, 83,
83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
83, 330, 331, 83, 83, 83, 83, 83, 83, 211,
211, 83, 83, 269, 269, 83, 83, 83, 335, 335,
340, 338, 338, 341, 349, 211, 341, 346, 352, 269,
346, 350, 353, 335, 350, 355, 357, 354, 357, 338,
354, 83, 83, 211, 269, 335, 369, 382, 83, 83,
369, 383, 389, 83, 83, 83, 383, 388, 395, 83,
83, 83, 83, 388, 396, 83, 83, 83, 338, 402,
399, 402, 403, 411, 403, 408, 416, 408, 415, 422,
415, 425, 340, 423, 340, 423, 424, 426, 349, 424,
428, 430, 352, 428, 429, 435, 353, 429, 438, 355,
437, 355, 437, 439, 411, 426, 442, 444, 411, 445,
426, 439, 439, 439, 439, 439, 439, 447, 439, 439,
439, 439, 439, 447, 439, 439, 446, 416, 430, 448,
454, 416, 455, 430, 446, 446, 446, 446, 446, 446,
468, 446, 446, 446, 446, 446, 446, 468, 446, 471,
422, 435, 480, 482, 422, 486, 435, 471, 471, 471,
471, 471, 471, 505, 471, 471, 471, 471, 471, 471,
505, 471, 533, 530, 530, 530, 530, 530, 530, 530,
533, 530, 530, 530, 530, 530, 530, 533, 530, 557,
559, 561, 581, 582, 566, 583, 584, 585, 586, 588,
587, 591, 589, 593, 594, 592, 595, 596, 597, 603,
602, 604, 606, 610, 612, 608, 613, 614, 618, 621,
616, 620, 622, 626, 627, 634, 638, 639, 646, 648,
650, 651, 652, 655, 656, 657, 658, 659, 661, 663,
664, 666, 667, 668, 669, 607, 670, 671, 672, 673,
674, 675, 676, 615, 677, 678, 679, 680, 681, 682,
683, 685, 686, 687, 688, 689, 691, 692, 693, 694,
696, 697, 698, 699, 701,
};
#define YY_REDUCE_USE_DFLT (-24)
#define YY_REDUCE_MAX 248
static const short yy_reduce_ofst[] = {
51, -23, 5, 32, 133, 138, 136, 154, 149, 160,
158, 164, 165, 171, 177, -4, 179, 96, 182, 41,
124, 144, 43, 152, 176, 153, 181, 156, 161, 40,
203, 210, 217, 218, 183, 221, 223, 225, 227, 231,
233, 234, 235, 236, 241, 242, 243, 247, 248, 251,
252, 256, 257, 258, 264, 265, 244, 268, 267, 273,
272, 76, 145, 194, 201, 202, 208, 215, 259, 168,
255, 271, 278, 270, 274, 279, 281, 202, 275, 276,
277, 280, 282, 283, 285, 286, 287, 284, 288, 289,
290, 291, 293, 292, 294, 296, 295, 297, 300, 298,
301, 302, 306, 303, 304, 299, 319, 327, 328, 329,
323, 325, 332, 333, 336, 337, 334, 339, 342, 343,
344, 347, 145, 345, 312, 348, 351, 356, 358, 359,
360, 361, 317, 362, 321, 320, 363, 322, 324, 364,
365, 366, 367, 368, 370, 371, 372, 373, 374, 375,
326, 377, 376, 378, 379, 384, 380, 381, 386, 385,
387, 390, 391, 392, 397, 394, 393, 398, 400, 401,
404, 405, 406, 407, 409, 410, 412, 417, 414, 418,
419, 420, 421, 427, 431, 432, 413, 433, 434, 449,
440, 436, 450, 451, 441, 452, 456, 458, 459, 460,
461, 463, 464, 465, 466, 467, 469, 472, 470, 473,
479, 477, 484, 481, 485, 487, 488, 489, 490, 491,
493, 497, 502, 508, 509, 511, 513, 518, 519, 520,
525, 522, 523, 526, 527, 528, 531, 532, 534, 535,
537, 536, 538, 540, 544, 545, 553, 555, 556,
};
static const YYACTIONTYPE yy_default[] = {
509, 707, 707, 707, 707, 707, 707, 707, 707, 707,
707, 707, 707, 707, 707, 707, 707, 707, 707, 707,
707, 707, 707, 707, 707, 707, 707, 707, 707, 707,
707, 707, 707, 707, 707, 707, 707, 707, 707, 707,
707, 707, 707, 707, 707, 707, 707, 707, 707, 707,
707, 707, 707, 707, 707, 707, 707, 707, 707, 707,
707, 707, 707, 707, 550, 552, 707, 707, 707, 563,
563, 707, 707, 567, 567, 707, 707, 707, 569, 569,
707, 565, 565, 588, 707, 563, 588, 594, 707, 567,
594, 597, 707, 569, 597, 707, 707, 591, 707, 565,
591, 707, 707, 563, 567, 569, 555, 707, 707, 707,
555, 559, 707, 707, 707, 707, 559, 561, 707, 707,
707, 707, 707, 561, 707, 707, 707, 707, 565, 557,
707, 557, 616, 707, 616, 622, 707, 622, 625, 707,
625, 707, 707, 619, 707, 619, 632, 707, 707, 632,
638, 707, 707, 638, 641, 707, 707, 641, 707, 707,
635, 707, 635, 654, 707, 707, 707, 707, 707, 707,
707, 654, 654, 654, 654, 654, 654, 707, 654, 654,
654, 654, 654, 707, 654, 654, 684, 707, 707, 707,
707, 707, 707, 707, 684, 684, 684, 684, 684, 684,
707, 684, 684, 684, 684, 684, 684, 707, 684, 699,
707, 707, 707, 707, 707, 707, 707, 699, 699, 699,
699, 699, 699, 707, 699, 699, 699, 699, 699, 699,
707, 699, 707, 669, 669, 669, 669, 669, 669, 669,
707, 669, 669, 669, 669, 669, 669, 707, 669, 707,
707, 707, 707, 707, 707, 707, 707, 707, 707, 707,
707, 707, 707, 707, 707, 707, 707, 707, 707, 707,
707, 707, 707, 707, 707, 707, 707, 707, 707, 707,
707, 707, 707, 707, 707, 707, 707, 707, 707, 707,
707, 707, 707, 707, 707, 707, 707, 707, 707, 707,
707, 707, 707, 707, 707, 707, 707, 707, 707, 707,
707, 707, 707, 707, 707, 707, 707, 707, 707, 707,
707, 707, 707, 707, 707, 707, 707, 707, 707, 707,
707, 707, 707, 707, 707, 510, 511, 512, 513, 514,
515, 516, 517, 518, 519, 520, 521, 522, 523, 524,
525, 526, 527, 528, 529, 530, 531, 532, 533, 534,
535, 536, 537, 538, 539, 540, 541, 542, 543, 545,
553, 554, 544, 551, 571, 573, 574, 550, 564, 575,
552, 568, 577, 570, 578, 572, 566, 576, 579, 581,
582, 583, 587, 589, 585, 593, 595, 586, 596, 598,
580, 584, 590, 592, 599, 601, 602, 546, 548, 549,
603, 605, 606, 556, 607, 560, 609, 562, 610, 600,
547, 604, 558, 608, 611, 613, 614, 615, 617, 621,
623, 624, 626, 612, 618, 620, 627, 629, 630, 631,
633, 637, 639, 640, 642, 628, 634, 636, 643, 645,
646, 647, 655, 656, 657, 658, 659, 660, 648, 649,
650, 651, 652, 653, 661, 683, 685, 686, 687, 688,
689, 690, 677, 678, 679, 680, 681, 682, 691, 698,
700, 701, 702, 703, 704, 705, 692, 693, 694, 695,
696, 697, 706, 644, 662, 670, 671, 672, 673, 674,
675, 676, 663, 664, 665, 666, 667, 668,
};
#define YY_SZ_ACTTAB (int)(sizeof(yy_action)/sizeof(yy_action[0]))
#ifdef YYFALLBACK
static const YYCODETYPE yyFallback[] = {
};
#endif
struct yyStackEntry
{
YYACTIONTYPE stateno;
YYCODETYPE major;
YYMINORTYPE minor;
};
typedef struct yyStackEntry yyStackEntry;
struct yyParser
{
int yyidx;
#ifdef YYTRACKMAXSTACKDEPTH
int yyidxMax;
#endif
int yyerrcnt;
ParseARG_SDECL
#if YYSTACKDEPTH<=0
int yystksz;
yyStackEntry *yystack;
#else
yyStackEntry yystack[YYSTACKDEPTH];
#endif
};
typedef struct yyParser yyParser;
#ifndef NDEBUG
#include <stdio.h>
static FILE *yyTraceFILE = 0;
static char *yyTracePrompt = 0;
#endif
#ifndef NDEBUG
void
ParseTrace (FILE * TraceFILE, char *zTracePrompt)
{
yyTraceFILE = TraceFILE;
yyTracePrompt = zTracePrompt;
if (yyTraceFILE == 0)
yyTracePrompt = 0;
else if (yyTracePrompt == 0)
yyTraceFILE = 0;
}
#endif
#ifndef NDEBUG
static const char *const yyTokenName[] = {
"$", "EWKT_NEWLINE", "EWKT_POINT", "EWKT_OPEN_BRACKET",
"EWKT_CLOSE_BRACKET", "EWKT_POINT_M", "EWKT_NUM", "EWKT_COMMA",
"EWKT_LINESTRING", "EWKT_LINESTRING_M", "EWKT_POLYGON", "EWKT_POLYGON_M",
"EWKT_MULTIPOINT", "EWKT_MULTIPOINT_M", "EWKT_MULTILINESTRING",
"EWKT_MULTILINESTRING_M",
"EWKT_MULTIPOLYGON", "EWKT_MULTIPOLYGON_M", "EWKT_GEOMETRYCOLLECTION",
"EWKT_GEOMETRYCOLLECTION_M",
"error", "main", "in", "state",
"program", "geo_text", "geo_textm", "point",
"pointz", "pointzm", "linestring", "linestringz",
"linestringzm", "polygon", "polygonz", "polygonzm",
"multipoint", "multipointz", "multipointzm", "multilinestring",
"multilinestringz", "multilinestringzm", "multipolygon", "multipolygonz",
"multipolygonzm", "geocoll", "geocollz", "geocollzm",
"pointm", "linestringm", "polygonm", "multipointm",
"multilinestringm", "multipolygonm", "geocollm", "point_coordxy",
"point_coordxyz", "point_coordxym", "point_coordxyzm", "point_brkt_coordxy",
"coord", "point_brkt_coordxym", "point_brkt_coordxyz",
"point_brkt_coordxyzm",
"extra_brkt_pointsxy", "extra_brkt_pointsxym", "extra_brkt_pointsxyz",
"extra_brkt_pointsxyzm",
"extra_pointsxy", "extra_pointsxym", "extra_pointsxyz", "extra_pointsxyzm",
"linestring_text", "linestring_textm", "linestring_textz",
"linestring_textzm",
"polygon_text", "polygon_textm", "polygon_textz", "polygon_textzm",
"ring", "extra_rings", "ringm", "extra_ringsm",
"ringz", "extra_ringsz", "ringzm", "extra_ringszm",
"multipoint_text", "multipoint_textm", "multipoint_textz",
"multipoint_textzm",
"multilinestring_text", "multilinestring_textm", "multilinestring_textz",
"multilinestring_textzm",
"multilinestring_text2", "multilinestring_textm2", "multilinestring_textz2",
"multilinestring_textzm2",
"multipolygon_text", "multipolygon_textm", "multipolygon_textz",
"multipolygon_textzm",
"multipolygon_text2", "multipolygon_textm2", "multipolygon_textz2",
"multipolygon_textzm2",
"geocoll_text", "geocoll_textm", "geocoll_textz", "geocoll_textzm",
"geocoll_text2", "geocoll_textm2", "geocoll_textz2", "geocoll_textzm2",
};
#endif
#ifndef NDEBUG
static const char *const yyRuleName[] = {
"main ::= in",
"in ::=",
"in ::= in state EWKT_NEWLINE",
"state ::= program",
"program ::= geo_text",
"program ::= geo_textm",
"geo_text ::= point",
"geo_text ::= pointz",
"geo_text ::= pointzm",
"geo_text ::= linestring",
"geo_text ::= linestringz",
"geo_text ::= linestringzm",
"geo_text ::= polygon",
"geo_text ::= polygonz",
"geo_text ::= polygonzm",
"geo_text ::= multipoint",
"geo_text ::= multipointz",
"geo_text ::= multipointzm",
"geo_text ::= multilinestring",
"geo_text ::= multilinestringz",
"geo_text ::= multilinestringzm",
"geo_text ::= multipolygon",
"geo_text ::= multipolygonz",
"geo_text ::= multipolygonzm",
"geo_text ::= geocoll",
"geo_text ::= geocollz",
"geo_text ::= geocollzm",
"geo_textm ::= pointm",
"geo_textm ::= linestringm",
"geo_textm ::= polygonm",
"geo_textm ::= multipointm",
"geo_textm ::= multilinestringm",
"geo_textm ::= multipolygonm",
"geo_textm ::= geocollm",
"point ::= EWKT_POINT EWKT_OPEN_BRACKET point_coordxy EWKT_CLOSE_BRACKET",
"pointz ::= EWKT_POINT EWKT_OPEN_BRACKET point_coordxyz EWKT_CLOSE_BRACKET",
"pointm ::= EWKT_POINT_M EWKT_OPEN_BRACKET point_coordxym EWKT_CLOSE_BRACKET",
"pointzm ::= EWKT_POINT EWKT_OPEN_BRACKET point_coordxyzm EWKT_CLOSE_BRACKET",
"point_brkt_coordxy ::= EWKT_OPEN_BRACKET coord coord EWKT_CLOSE_BRACKET",
"point_brkt_coordxym ::= EWKT_OPEN_BRACKET coord coord coord EWKT_CLOSE_BRACKET",
"point_brkt_coordxyz ::= EWKT_OPEN_BRACKET coord coord coord EWKT_CLOSE_BRACKET",
"point_brkt_coordxyzm ::= EWKT_OPEN_BRACKET coord coord coord coord EWKT_CLOSE_BRACKET",
"point_coordxy ::= coord coord",
"point_coordxym ::= coord coord coord",
"point_coordxyz ::= coord coord coord",
"point_coordxyzm ::= coord coord coord coord",
"coord ::= EWKT_NUM",
"extra_brkt_pointsxy ::=",
"extra_brkt_pointsxy ::= EWKT_COMMA point_brkt_coordxy extra_brkt_pointsxy",
"extra_brkt_pointsxym ::=",
"extra_brkt_pointsxym ::= EWKT_COMMA point_brkt_coordxym extra_brkt_pointsxym",
"extra_brkt_pointsxyz ::=",
"extra_brkt_pointsxyz ::= EWKT_COMMA point_brkt_coordxyz extra_brkt_pointsxyz",
"extra_brkt_pointsxyzm ::=",
"extra_brkt_pointsxyzm ::= EWKT_COMMA point_brkt_coordxyzm extra_brkt_pointsxyzm",
"extra_pointsxy ::=",
"extra_pointsxy ::= EWKT_COMMA point_coordxy extra_pointsxy",
"extra_pointsxym ::=",
"extra_pointsxym ::= EWKT_COMMA point_coordxym extra_pointsxym",
"extra_pointsxyz ::=",
"extra_pointsxyz ::= EWKT_COMMA point_coordxyz extra_pointsxyz",
"extra_pointsxyzm ::=",
"extra_pointsxyzm ::= EWKT_COMMA point_coordxyzm extra_pointsxyzm",
"linestring ::= EWKT_LINESTRING linestring_text",
"linestringm ::= EWKT_LINESTRING_M linestring_textm",
"linestringz ::= EWKT_LINESTRING linestring_textz",
"linestringzm ::= EWKT_LINESTRING linestring_textzm",
"linestring_text ::= EWKT_OPEN_BRACKET point_coordxy EWKT_COMMA point_coordxy extra_pointsxy EWKT_CLOSE_BRACKET",
"linestring_textm ::= EWKT_OPEN_BRACKET point_coordxym EWKT_COMMA point_coordxym extra_pointsxym EWKT_CLOSE_BRACKET",
"linestring_textz ::= EWKT_OPEN_BRACKET point_coordxyz EWKT_COMMA point_coordxyz extra_pointsxyz EWKT_CLOSE_BRACKET",
"linestring_textzm ::= EWKT_OPEN_BRACKET point_coordxyzm EWKT_COMMA point_coordxyzm extra_pointsxyzm EWKT_CLOSE_BRACKET",
"polygon ::= EWKT_POLYGON polygon_text",
"polygonm ::= EWKT_POLYGON_M polygon_textm",
"polygonz ::= EWKT_POLYGON polygon_textz",
"polygonzm ::= EWKT_POLYGON polygon_textzm",
"polygon_text ::= EWKT_OPEN_BRACKET ring extra_rings EWKT_CLOSE_BRACKET",
"polygon_textm ::= EWKT_OPEN_BRACKET ringm extra_ringsm EWKT_CLOSE_BRACKET",
"polygon_textz ::= EWKT_OPEN_BRACKET ringz extra_ringsz EWKT_CLOSE_BRACKET",
"polygon_textzm ::= EWKT_OPEN_BRACKET ringzm extra_ringszm EWKT_CLOSE_BRACKET",
"ring ::= EWKT_OPEN_BRACKET point_coordxy EWKT_COMMA point_coordxy EWKT_COMMA point_coordxy EWKT_COMMA point_coordxy extra_pointsxy EWKT_CLOSE_BRACKET",
"extra_rings ::=",
"extra_rings ::= EWKT_COMMA ring extra_rings",
"ringm ::= EWKT_OPEN_BRACKET point_coordxym EWKT_COMMA point_coordxym EWKT_COMMA point_coordxym EWKT_COMMA point_coordxym extra_pointsxym EWKT_CLOSE_BRACKET",
"extra_ringsm ::=",
"extra_ringsm ::= EWKT_COMMA ringm extra_ringsm",
"ringz ::= EWKT_OPEN_BRACKET point_coordxyz EWKT_COMMA point_coordxyz EWKT_COMMA point_coordxyz EWKT_COMMA point_coordxyz extra_pointsxyz EWKT_CLOSE_BRACKET",
"extra_ringsz ::=",
"extra_ringsz ::= EWKT_COMMA ringz extra_ringsz",
"ringzm ::= EWKT_OPEN_BRACKET point_coordxyzm EWKT_COMMA point_coordxyzm EWKT_COMMA point_coordxyzm EWKT_COMMA point_coordxyzm extra_pointsxyzm EWKT_CLOSE_BRACKET",
"extra_ringszm ::=",
"extra_ringszm ::= EWKT_COMMA ringzm extra_ringszm",
"multipoint ::= EWKT_MULTIPOINT multipoint_text",
"multipointm ::= EWKT_MULTIPOINT_M multipoint_textm",
"multipointz ::= EWKT_MULTIPOINT multipoint_textz",
"multipointzm ::= EWKT_MULTIPOINT multipoint_textzm",
"multipoint_text ::= EWKT_OPEN_BRACKET point_coordxy extra_pointsxy EWKT_CLOSE_BRACKET",
"multipoint_textm ::= EWKT_OPEN_BRACKET point_coordxym extra_pointsxym EWKT_CLOSE_BRACKET",
"multipoint_textz ::= EWKT_OPEN_BRACKET point_coordxyz extra_pointsxyz EWKT_CLOSE_BRACKET",
"multipoint_textzm ::= EWKT_OPEN_BRACKET point_coordxyzm extra_pointsxyzm EWKT_CLOSE_BRACKET",
"multipoint_text ::= EWKT_OPEN_BRACKET point_brkt_coordxy extra_brkt_pointsxy EWKT_CLOSE_BRACKET",
"multipoint_textm ::= EWKT_OPEN_BRACKET point_brkt_coordxym extra_brkt_pointsxym EWKT_CLOSE_BRACKET",
"multipoint_textz ::= EWKT_OPEN_BRACKET point_brkt_coordxyz extra_brkt_pointsxyz EWKT_CLOSE_BRACKET",
"multipoint_textzm ::= EWKT_OPEN_BRACKET point_brkt_coordxyzm extra_brkt_pointsxyzm EWKT_CLOSE_BRACKET",
"multilinestring ::= EWKT_MULTILINESTRING multilinestring_text",
"multilinestringm ::= EWKT_MULTILINESTRING_M multilinestring_textm",
"multilinestringz ::= EWKT_MULTILINESTRING multilinestring_textz",
"multilinestringzm ::= EWKT_MULTILINESTRING multilinestring_textzm",
"multilinestring_text ::= EWKT_OPEN_BRACKET linestring_text multilinestring_text2 EWKT_CLOSE_BRACKET",
"multilinestring_text2 ::=",
"multilinestring_text2 ::= EWKT_COMMA linestring_text multilinestring_text2",
"multilinestring_textm ::= EWKT_OPEN_BRACKET linestring_textm multilinestring_textm2 EWKT_CLOSE_BRACKET",
"multilinestring_textm2 ::=",
"multilinestring_textm2 ::= EWKT_COMMA linestring_textm multilinestring_textm2",
"multilinestring_textz ::= EWKT_OPEN_BRACKET linestring_textz multilinestring_textz2 EWKT_CLOSE_BRACKET",
"multilinestring_textz2 ::=",
"multilinestring_textz2 ::= EWKT_COMMA linestring_textz multilinestring_textz2",
"multilinestring_textzm ::= EWKT_OPEN_BRACKET linestring_textzm multilinestring_textzm2 EWKT_CLOSE_BRACKET",
"multilinestring_textzm2 ::=",
"multilinestring_textzm2 ::= EWKT_COMMA linestring_textzm multilinestring_textzm2",
"multipolygon ::= EWKT_MULTIPOLYGON multipolygon_text",
"multipolygonm ::= EWKT_MULTIPOLYGON_M multipolygon_textm",
"multipolygonz ::= EWKT_MULTIPOLYGON multipolygon_textz",
"multipolygonzm ::= EWKT_MULTIPOLYGON multipolygon_textzm",
"multipolygon_text ::= EWKT_OPEN_BRACKET polygon_text multipolygon_text2 EWKT_CLOSE_BRACKET",
"multipolygon_text2 ::=",
"multipolygon_text2 ::= EWKT_COMMA polygon_text multipolygon_text2",
"multipolygon_textm ::= EWKT_OPEN_BRACKET polygon_textm multipolygon_textm2 EWKT_CLOSE_BRACKET",
"multipolygon_textm2 ::=",
"multipolygon_textm2 ::= EWKT_COMMA polygon_textm multipolygon_textm2",
"multipolygon_textz ::= EWKT_OPEN_BRACKET polygon_textz multipolygon_textz2 EWKT_CLOSE_BRACKET",
"multipolygon_textz2 ::=",
"multipolygon_textz2 ::= EWKT_COMMA polygon_textz multipolygon_textz2",
"multipolygon_textzm ::= EWKT_OPEN_BRACKET polygon_textzm multipolygon_textzm2 EWKT_CLOSE_BRACKET",
"multipolygon_textzm2 ::=",
"multipolygon_textzm2 ::= EWKT_COMMA polygon_textzm multipolygon_textzm2",
"geocoll ::= EWKT_GEOMETRYCOLLECTION geocoll_text",
"geocollm ::= EWKT_GEOMETRYCOLLECTION_M geocoll_textm",
"geocollz ::= EWKT_GEOMETRYCOLLECTION geocoll_textz",
"geocollzm ::= EWKT_GEOMETRYCOLLECTION geocoll_textzm",
"geocoll_text ::= EWKT_OPEN_BRACKET point geocoll_text2 EWKT_CLOSE_BRACKET",
"geocoll_text ::= EWKT_OPEN_BRACKET linestring geocoll_text2 EWKT_CLOSE_BRACKET",
"geocoll_text ::= EWKT_OPEN_BRACKET polygon geocoll_text2 EWKT_CLOSE_BRACKET",
"geocoll_text ::= EWKT_OPEN_BRACKET multipoint geocoll_text2 EWKT_CLOSE_BRACKET",
"geocoll_text ::= EWKT_OPEN_BRACKET multilinestring geocoll_text2 EWKT_CLOSE_BRACKET",
"geocoll_text ::= EWKT_OPEN_BRACKET multipolygon geocoll_text2 EWKT_CLOSE_BRACKET",
"geocoll_text ::= EWKT_OPEN_BRACKET EWKT_GEOMETRYCOLLECTION geocoll_text geocoll_text2 EWKT_CLOSE_BRACKET",
"geocoll_text2 ::=",
"geocoll_text2 ::= EWKT_COMMA point geocoll_text2",
"geocoll_text2 ::= EWKT_COMMA linestring geocoll_text2",
"geocoll_text2 ::= EWKT_COMMA polygon geocoll_text2",
"geocoll_text2 ::= EWKT_COMMA multipoint geocoll_text2",
"geocoll_text2 ::= EWKT_COMMA multilinestring geocoll_text2",
"geocoll_text2 ::= EWKT_COMMA multipolygon geocoll_text2",
"geocoll_text2 ::= EWKT_COMMA EWKT_GEOMETRYCOLLECTION geocoll_text geocoll_text2",
"geocoll_textm ::= EWKT_OPEN_BRACKET pointm geocoll_textm2 EWKT_CLOSE_BRACKET",
"geocoll_textm ::= EWKT_OPEN_BRACKET linestringm geocoll_textm2 EWKT_CLOSE_BRACKET",
"geocoll_textm ::= EWKT_OPEN_BRACKET polygonm geocoll_textm2 EWKT_CLOSE_BRACKET",
"geocoll_textm ::= EWKT_OPEN_BRACKET multipointm geocoll_textm2 EWKT_CLOSE_BRACKET",
"geocoll_textm ::= EWKT_OPEN_BRACKET multilinestringm geocoll_textm2 EWKT_CLOSE_BRACKET",
"geocoll_textm ::= EWKT_OPEN_BRACKET multipolygonm geocoll_textm2 EWKT_CLOSE_BRACKET",
"geocoll_textm ::= EWKT_OPEN_BRACKET EWKT_GEOMETRYCOLLECTION_M geocoll_textm geocoll_textm2 EWKT_CLOSE_BRACKET",
"geocoll_textm2 ::=",
"geocoll_textm2 ::= EWKT_COMMA pointm geocoll_textm2",
"geocoll_textm2 ::= EWKT_COMMA linestringm geocoll_textm2",
"geocoll_textm2 ::= EWKT_COMMA polygonm geocoll_textm2",
"geocoll_textm2 ::= EWKT_COMMA multipointm geocoll_textm2",
"geocoll_textm2 ::= EWKT_COMMA multilinestringm geocoll_textm2",
"geocoll_textm2 ::= EWKT_COMMA multipolygonm geocoll_textm2",
"geocoll_textm2 ::= EWKT_COMMA EWKT_GEOMETRYCOLLECTION_M geocoll_textm geocoll_textm2",
"geocoll_textz ::= EWKT_OPEN_BRACKET pointz geocoll_textz2 EWKT_CLOSE_BRACKET",
"geocoll_textz ::= EWKT_OPEN_BRACKET linestringz geocoll_textz2 EWKT_CLOSE_BRACKET",
"geocoll_textz ::= EWKT_OPEN_BRACKET polygonz geocoll_textz2 EWKT_CLOSE_BRACKET",
"geocoll_textz ::= EWKT_OPEN_BRACKET multipointz geocoll_textz2 EWKT_CLOSE_BRACKET",
"geocoll_textz ::= EWKT_OPEN_BRACKET multilinestringz geocoll_textz2 EWKT_CLOSE_BRACKET",
"geocoll_textz ::= EWKT_OPEN_BRACKET multipolygonz geocoll_textz2 EWKT_CLOSE_BRACKET",
"geocoll_textz ::= EWKT_OPEN_BRACKET EWKT_GEOMETRYCOLLECTION geocoll_textz geocoll_textz2 EWKT_CLOSE_BRACKET",
"geocoll_textz2 ::=",
"geocoll_textz2 ::= EWKT_COMMA pointz geocoll_textz2",
"geocoll_textz2 ::= EWKT_COMMA linestringz geocoll_textz2",
"geocoll_textz2 ::= EWKT_COMMA polygonz geocoll_textz2",
"geocoll_textz2 ::= EWKT_COMMA multipointz geocoll_textz2",
"geocoll_textz2 ::= EWKT_COMMA multilinestringz geocoll_textz2",
"geocoll_textz2 ::= EWKT_COMMA multipolygonz geocoll_textz2",
"geocoll_textz2 ::= EWKT_COMMA EWKT_GEOMETRYCOLLECTION geocoll_textz geocoll_textz2",
"geocoll_textzm ::= EWKT_OPEN_BRACKET pointzm geocoll_textzm2 EWKT_CLOSE_BRACKET",
"geocoll_textzm ::= EWKT_OPEN_BRACKET linestringzm geocoll_textzm2 EWKT_CLOSE_BRACKET",
"geocoll_textzm ::= EWKT_OPEN_BRACKET polygonzm geocoll_textzm2 EWKT_CLOSE_BRACKET",
"geocoll_textzm ::= EWKT_OPEN_BRACKET multipointzm geocoll_textzm2 EWKT_CLOSE_BRACKET",
"geocoll_textzm ::= EWKT_OPEN_BRACKET multilinestringzm geocoll_textzm2 EWKT_CLOSE_BRACKET",
"geocoll_textzm ::= EWKT_OPEN_BRACKET multipolygonzm geocoll_textzm2 EWKT_CLOSE_BRACKET",
"geocoll_textzm ::= EWKT_OPEN_BRACKET EWKT_GEOMETRYCOLLECTION geocoll_textzm geocoll_textzm2 EWKT_CLOSE_BRACKET",
"geocoll_textzm2 ::=",
"geocoll_textzm2 ::= EWKT_COMMA pointzm geocoll_textzm2",
"geocoll_textzm2 ::= EWKT_COMMA linestringzm geocoll_textzm2",
"geocoll_textzm2 ::= EWKT_COMMA polygonzm geocoll_textzm2",
"geocoll_textzm2 ::= EWKT_COMMA multipointzm geocoll_textzm2",
"geocoll_textzm2 ::= EWKT_COMMA multilinestringzm geocoll_textzm2",
"geocoll_textzm2 ::= EWKT_COMMA multipolygonzm geocoll_textzm2",
"geocoll_textzm2 ::= EWKT_COMMA EWKT_GEOMETRYCOLLECTION geocoll_textzm geocoll_textzm2",
};
#endif
#if YYSTACKDEPTH<=0
static void
yyGrowStack (yyParser * p)
{
int newSize;
yyStackEntry *pNew;
newSize = p->yystksz * 2 + 100;
pNew = realloc (p->yystack, newSize * sizeof (pNew[0]));
if (pNew)
{
p->yystack = pNew;
p->yystksz = newSize;
#ifndef NDEBUG
if (yyTraceFILE)
{
fprintf (yyTraceFILE, "%sStack grows to %d entries!\n",
yyTracePrompt, p->yystksz);
}
#endif
}
}
#endif
void *
ParseAlloc (void *(*mallocProc) (size_t))
{
yyParser *pParser;
pParser = (yyParser *) (*mallocProc) ((size_t) sizeof (yyParser));
if (pParser)
{
pParser->yyidx = -1;
#ifdef YYTRACKMAXSTACKDEPTH
pParser->yyidxMax = 0;
#endif
#if YYSTACKDEPTH<=0
pParser->yystack = NULL;
pParser->yystksz = 0;
yyGrowStack (pParser);
#endif
}
return pParser;
}
static void
yy_destructor (yyParser * yypParser,
YYCODETYPE yymajor,
YYMINORTYPE * yypminor
)
{
ParseARG_FETCH;
switch (yymajor)
{
default:
break;
}
}
static int
yy_pop_parser_stack (yyParser * pParser)
{
YYCODETYPE yymajor;
yyStackEntry *yytos = &pParser->yystack[pParser->yyidx];
if (pParser->yyidx < 0)
return 0;
#ifndef NDEBUG
if (yyTraceFILE && pParser->yyidx >= 0)
{
fprintf (yyTraceFILE, "%sPopping %s\n",
yyTracePrompt, yyTokenName[yytos->major]);
}
#endif
yymajor = yytos->major;
yy_destructor (pParser, yymajor, &yytos->minor);
pParser->yyidx--;
return yymajor;
}
void
ParseFree (void *p,
void (*freeProc) (void *)
)
{
yyParser *pParser = (yyParser *) p;
if (pParser == 0)
return;
while (pParser->yyidx >= 0)
yy_pop_parser_stack (pParser);
#if YYSTACKDEPTH<=0
free (pParser->yystack);
#endif
(*freeProc) ((void *) pParser);
}
#ifdef YYTRACKMAXSTACKDEPTH
int
ParseStackPeak (void *p)
{
yyParser *pParser = (yyParser *) p;
return pParser->yyidxMax;
}
#endif
static int
yy_find_shift_action (yyParser * pParser,
YYCODETYPE iLookAhead
)
{
int i;
int stateno = pParser->yystack[pParser->yyidx].stateno;
if (stateno > YY_SHIFT_MAX
|| (i = yy_shift_ofst[stateno]) == YY_SHIFT_USE_DFLT)
{
return yy_default[stateno];
}
assert (iLookAhead != YYNOCODE);
i += iLookAhead;
if (i < 0 || i >= YY_SZ_ACTTAB || yy_lookahead[i] != iLookAhead)
{
if (iLookAhead > 0)
{
#ifdef YYFALLBACK
YYCODETYPE iFallback;
if (iLookAhead < sizeof (yyFallback) / sizeof (yyFallback[0])
&& (iFallback = yyFallback[iLookAhead]) != 0)
{
#ifndef NDEBUG
if (yyTraceFILE)
{
fprintf (yyTraceFILE, "%sFALLBACK %s => %s\n",
yyTracePrompt, yyTokenName[iLookAhead],
yyTokenName[iFallback]);
}
#endif
return yy_find_shift_action (pParser, iFallback);
}
#endif
#ifdef YYWILDCARD
{
int j = i - iLookAhead + YYWILDCARD;
if (j >= 0 && j < YY_SZ_ACTTAB
&& yy_lookahead[j] == YYWILDCARD)
{
#ifndef NDEBUG
if (yyTraceFILE)
{
fprintf (yyTraceFILE, "%sWILDCARD %s => %s\n",
yyTracePrompt, yyTokenName[iLookAhead],
yyTokenName[YYWILDCARD]);
}
#endif
return yy_action[j];
}
}
#endif
}
return yy_default[stateno];
}
else
{
return yy_action[i];
}
}
static int
yy_find_reduce_action (int stateno,
YYCODETYPE iLookAhead
)
{
int i;
#ifdef YYERRORSYMBOL
if (stateno > YY_REDUCE_MAX)
{
return yy_default[stateno];
}
#else
assert (stateno <= YY_REDUCE_MAX);
#endif
i = yy_reduce_ofst[stateno];
assert (i != YY_REDUCE_USE_DFLT);
assert (iLookAhead != YYNOCODE);
i += iLookAhead;
#ifdef YYERRORSYMBOL
if (i < 0 || i >= YY_SZ_ACTTAB || yy_lookahead[i] != iLookAhead)
{
return yy_default[stateno];
}
#else
assert (i >= 0 && i < YY_SZ_ACTTAB);
assert (yy_lookahead[i] == iLookAhead);
#endif
return yy_action[i];
}
static void
yyStackOverflow (yyParser * yypParser, YYMINORTYPE * yypMinor)
{
ParseARG_FETCH;
yypParser->yyidx--;
#ifndef NDEBUG
if (yyTraceFILE)
{
fprintf (yyTraceFILE, "%sStack Overflow!\n", yyTracePrompt);
}
#endif
while (yypParser->yyidx >= 0)
yy_pop_parser_stack (yypParser);
spatialite_e ("Giving up. Parser stack overflow\n");
ParseARG_STORE;
}
static void
yy_shift (yyParser * yypParser,
int yyNewState,
int yyMajor,
YYMINORTYPE * yypMinor
)
{
yyStackEntry *yytos;
yypParser->yyidx++;
#ifdef YYTRACKMAXSTACKDEPTH
if (yypParser->yyidx > yypParser->yyidxMax)
{
yypParser->yyidxMax = yypParser->yyidx;
}
#endif
#if YYSTACKDEPTH>0
if (yypParser->yyidx >= YYSTACKDEPTH)
{
yyStackOverflow (yypParser, yypMinor);
return;
}
#else
if (yypParser->yyidx >= yypParser->yystksz)
{
yyGrowStack (yypParser);
if (yypParser->yyidx >= yypParser->yystksz)
{
yyStackOverflow (yypParser, yypMinor);
return;
}
}
#endif
yytos = &yypParser->yystack[yypParser->yyidx];
yytos->stateno = (YYACTIONTYPE) yyNewState;
yytos->major = (YYCODETYPE) yyMajor;
yytos->minor = *yypMinor;
#ifndef NDEBUG
if (yyTraceFILE && yypParser->yyidx > 0)
{
int i;
fprintf (yyTraceFILE, "%sShift %d\n", yyTracePrompt, yyNewState);
fprintf (yyTraceFILE, "%sStack:", yyTracePrompt);
for (i = 1; i <= yypParser->yyidx; i++)
fprintf (yyTraceFILE, " %s",
yyTokenName[yypParser->yystack[i].major]);
fprintf (yyTraceFILE, "\n");
}
#endif
}
static const struct
{
YYCODETYPE lhs;
unsigned char nrhs;
} yyRuleInfo[] =
{
{
21, 1},
{
22, 0},
{
22, 3},
{
23, 1},
{
24, 1},
{
24, 1},
{
25, 1},
{
25, 1},
{
25, 1},
{
25, 1},
{
25, 1},
{
25, 1},
{
25, 1},
{
25, 1},
{
25, 1},
{
25, 1},
{
25, 1},
{
25, 1},
{
25, 1},
{
25, 1},
{
25, 1},
{
25, 1},
{
25, 1},
{
25, 1},
{
25, 1},
{
25, 1},
{
25, 1},
{
26, 1},
{
26, 1},
{
26, 1},
{
26, 1},
{
26, 1},
{
26, 1},
{
26, 1},
{
27, 4},
{
28, 4},
{
48, 4},
{
29, 4},
{
59, 4},
{
61, 5},
{
62, 5},
{
63, 6},
{
55, 2},
{
57, 3},
{
56, 3},
{
58, 4},
{
60, 1},
{
64, 0},
{
64, 3},
{
65, 0},
{
65, 3},
{
66, 0},
{
66, 3},
{
67, 0},
{
67, 3},
{
68, 0},
{
68, 3},
{
69, 0},
{
69, 3},
{
70, 0},
{
70, 3},
{
71, 0},
{
71, 3},
{
30, 2},
{
49, 2},
{
31, 2},
{
32, 2},
{
72, 6},
{
73, 6},
{
74, 6},
{
75, 6},
{
33, 2},
{
50, 2},
{
34, 2},
{
35, 2},
{
76, 4},
{
77, 4},
{
78, 4},
{
79, 4},
{
80, 10},
{
81, 0},
{
81, 3},
{
82, 10},
{
83, 0},
{
83, 3},
{
84, 10},
{
85, 0},
{
85, 3},
{
86, 10},
{
87, 0},
{
87, 3},
{
36, 2},
{
51, 2},
{
37, 2},
{
38, 2},
{
88, 4},
{
89, 4},
{
90, 4},
{
91, 4},
{
88, 4},
{
89, 4},
{
90, 4},
{
91, 4},
{
39, 2},
{
52, 2},
{
40, 2},
{
41, 2},
{
92, 4},
{
96, 0},
{
96, 3},
{
93, 4},
{
97, 0},
{
97, 3},
{
94, 4},
{
98, 0},
{
98, 3},
{
95, 4},
{
99, 0},
{
99, 3},
{
42, 2},
{
53, 2},
{
43, 2},
{
44, 2},
{
100, 4},
{
104, 0},
{
104, 3},
{
101, 4},
{
105, 0},
{
105, 3},
{
102, 4},
{
106, 0},
{
106, 3},
{
103, 4},
{
107, 0},
{
107, 3},
{
45, 2},
{
54, 2},
{
46, 2},
{
47, 2},
{
108, 4},
{
108, 4},
{
108, 4},
{
108, 4},
{
108, 4},
{
108, 4},
{
108, 5},
{
112, 0},
{
112, 3},
{
112, 3},
{
112, 3},
{
112, 3},
{
112, 3},
{
112, 3},
{
112, 4},
{
109, 4},
{
109, 4},
{
109, 4},
{
109, 4},
{
109, 4},
{
109, 4},
{
109, 5},
{
113, 0},
{
113, 3},
{
113, 3},
{
113, 3},
{
113, 3},
{
113, 3},
{
113, 3},
{
113, 4},
{
110, 4},
{
110, 4},
{
110, 4},
{
110, 4},
{
110, 4},
{
110, 4},
{
110, 5},
{
114, 0},
{
114, 3},
{
114, 3},
{
114, 3},
{
114, 3},
{
114, 3},
{
114, 3},
{
114, 4},
{
111, 4},
{
111, 4},
{
111, 4},
{
111, 4},
{
111, 4},
{
111, 4},
{
111, 5},
{
115, 0},
{
115, 3},
{
115, 3},
{
115, 3},
{
115, 3},
{
115, 3},
{
115, 3},
{
115, 4},};
static void yy_accept (yyParser *);
static void
yy_reduce (yyParser * yypParser,
int yyruleno
)
{
int yygoto;
int yyact;
YYMINORTYPE yygotominor;
yyStackEntry *yymsp;
int yysize;
ParseARG_FETCH;
yymsp = &yypParser->yystack[yypParser->yyidx];
#ifndef NDEBUG
if (yyTraceFILE && yyruleno >= 0
&& yyruleno < (int) (sizeof (yyRuleName) / sizeof (yyRuleName[0])))
{
fprintf (yyTraceFILE, "%sReduce [%s].\n", yyTracePrompt,
yyRuleName[yyruleno]);
}
#endif
yygotominor = yyzerominor;
switch (yyruleno)
{
case 6:
case 7:
yytestcase (yyruleno == 7);
case 8:
yytestcase (yyruleno == 8);
case 9:
yytestcase (yyruleno == 9);
case 10:
yytestcase (yyruleno == 10);
case 11:
yytestcase (yyruleno == 11);
case 12:
yytestcase (yyruleno == 12);
case 13:
yytestcase (yyruleno == 13);
case 14:
yytestcase (yyruleno == 14);
case 15:
yytestcase (yyruleno == 15);
case 16:
yytestcase (yyruleno == 16);
case 17:
yytestcase (yyruleno == 17);
case 18:
yytestcase (yyruleno == 18);
case 19:
yytestcase (yyruleno == 19);
case 20:
yytestcase (yyruleno == 20);
case 21:
yytestcase (yyruleno == 21);
case 22:
yytestcase (yyruleno == 22);
case 23:
yytestcase (yyruleno == 23);
case 24:
yytestcase (yyruleno == 24);
case 25:
yytestcase (yyruleno == 25);
case 26:
yytestcase (yyruleno == 26);
case 27:
yytestcase (yyruleno == 27);
case 28:
yytestcase (yyruleno == 28);
case 29:
yytestcase (yyruleno == 29);
case 30:
yytestcase (yyruleno == 30);
case 31:
yytestcase (yyruleno == 31);
case 32:
yytestcase (yyruleno == 32);
case 33:
yytestcase (yyruleno == 33);
{
p_data->result = yymsp[0].minor.yy0;
}
break;
case 34:
case 35:
yytestcase (yyruleno == 35);
case 37:
yytestcase (yyruleno == 37);
{
yygotominor.yy0 =
ewkt_buildGeomFromPoint (p_data,
(gaiaPointPtr) yymsp[-1].minor.yy0);
}
break;
case 36:
{
yygotominor.yy0 =
ewkt_buildGeomFromPoint (p_data,
(gaiaPointPtr) yymsp[-1].minor.yy0);
}
break;
case 38:
{
yygotominor.yy0 =
(void *) ewkt_point_xy (p_data,
(double *) yymsp[-2].minor.yy0,
(double *) yymsp[-1].minor.yy0);
}
break;
case 39:
{
yygotominor.yy0 =
(void *) ewkt_point_xym (p_data,
(double *) yymsp[-3].minor.yy0,
(double *) yymsp[-2].minor.yy0,
(double *) yymsp[-1].minor.yy0);
}
break;
case 40:
{
yygotominor.yy0 =
(void *) ewkt_point_xyz (p_data,
(double *) yymsp[-3].minor.yy0,
(double *) yymsp[-2].minor.yy0,
(double *) yymsp[-1].minor.yy0);
}
break;
case 41:
{
yygotominor.yy0 =
(void *) ewkt_point_xyzm (p_data,
(double *) yymsp[-4].minor.yy0,
(double *) yymsp[-3].minor.yy0,
(double *) yymsp[-2].minor.yy0,
(double *) yymsp[-1].minor.yy0);
}
break;
case 42:
{
yygotominor.yy0 =
(void *) ewkt_point_xy (p_data,
(double *) yymsp[-1].minor.yy0,
(double *) yymsp[0].minor.yy0);
}
break;
case 43:
{
yygotominor.yy0 =
(void *) ewkt_point_xym (p_data,
(double *) yymsp[-2].minor.yy0,
(double *) yymsp[-1].minor.yy0,
(double *) yymsp[0].minor.yy0);
}
break;
case 44:
{
yygotominor.yy0 =
(void *) ewkt_point_xyz (p_data,
(double *) yymsp[-2].minor.yy0,
(double *) yymsp[-1].minor.yy0,
(double *) yymsp[0].minor.yy0);
}
break;
case 45:
{
yygotominor.yy0 =
(void *) ewkt_point_xyzm (p_data,
(double *) yymsp[-3].minor.yy0,
(double *) yymsp[-2].minor.yy0,
(double *) yymsp[-1].minor.yy0,
(double *) yymsp[0].minor.yy0);
}
break;
case 46:
case 91:
yytestcase (yyruleno == 91);
case 92:
yytestcase (yyruleno == 92);
case 93:
yytestcase (yyruleno == 93);
case 94:
yytestcase (yyruleno == 94);
case 103:
yytestcase (yyruleno == 103);
case 104:
yytestcase (yyruleno == 104);
case 105:
yytestcase (yyruleno == 105);
case 106:
yytestcase (yyruleno == 106);
case 119:
yytestcase (yyruleno == 119);
case 120:
yytestcase (yyruleno == 120);
case 121:
yytestcase (yyruleno == 121);
case 122:
yytestcase (yyruleno == 122);
case 135:
yytestcase (yyruleno == 135);
case 136:
yytestcase (yyruleno == 136);
case 137:
yytestcase (yyruleno == 137);
case 138:
yytestcase (yyruleno == 138);
{
yygotominor.yy0 = yymsp[0].minor.yy0;
}
break;
case 47:
case 49:
yytestcase (yyruleno == 49);
case 51:
yytestcase (yyruleno == 51);
case 53:
yytestcase (yyruleno == 53);
case 55:
yytestcase (yyruleno == 55);
case 57:
yytestcase (yyruleno == 57);
case 59:
yytestcase (yyruleno == 59);
case 61:
yytestcase (yyruleno == 61);
case 80:
yytestcase (yyruleno == 80);
case 83:
yytestcase (yyruleno == 83);
case 86:
yytestcase (yyruleno == 86);
case 89:
yytestcase (yyruleno == 89);
case 108:
yytestcase (yyruleno == 108);
case 111:
yytestcase (yyruleno == 111);
case 114:
yytestcase (yyruleno == 114);
case 117:
yytestcase (yyruleno == 117);
case 124:
yytestcase (yyruleno == 124);
case 127:
yytestcase (yyruleno == 127);
case 130:
yytestcase (yyruleno == 130);
case 133:
yytestcase (yyruleno == 133);
case 146:
yytestcase (yyruleno == 146);
case 161:
yytestcase (yyruleno == 161);
case 176:
yytestcase (yyruleno == 176);
case 191:
yytestcase (yyruleno == 191);
{
yygotominor.yy0 = NULL;
}
break;
case 48:
case 50:
yytestcase (yyruleno == 50);
case 52:
yytestcase (yyruleno == 52);
case 54:
yytestcase (yyruleno == 54);
case 56:
yytestcase (yyruleno == 56);
case 58:
yytestcase (yyruleno == 58);
case 60:
yytestcase (yyruleno == 60);
case 62:
yytestcase (yyruleno == 62);
{
((gaiaPointPtr) yymsp[-1].minor.yy0)->Next =
(gaiaPointPtr) yymsp[0].minor.yy0;
yygotominor.yy0 = yymsp[-1].minor.yy0;
}
break;
case 63:
case 64:
yytestcase (yyruleno == 64);
case 65:
yytestcase (yyruleno == 65);
case 66:
yytestcase (yyruleno == 66);
{
yygotominor.yy0 =
ewkt_buildGeomFromLinestring (p_data,
(gaiaLinestringPtr)
yymsp[0].minor.yy0);
}
break;
case 67:
{
((gaiaPointPtr) yymsp[-2].minor.yy0)->Next =
(gaiaPointPtr) yymsp[-1].minor.yy0;
((gaiaPointPtr) yymsp[-4].minor.yy0)->Next =
(gaiaPointPtr) yymsp[-2].minor.yy0;
yygotominor.yy0 =
(void *) ewkt_linestring_xy (p_data,
(gaiaPointPtr) yymsp[-4].minor.
yy0);
}
break;
case 68:
{
((gaiaPointPtr) yymsp[-2].minor.yy0)->Next =
(gaiaPointPtr) yymsp[-1].minor.yy0;
((gaiaPointPtr) yymsp[-4].minor.yy0)->Next =
(gaiaPointPtr) yymsp[-2].minor.yy0;
yygotominor.yy0 =
(void *) ewkt_linestring_xym (p_data,
(gaiaPointPtr) yymsp[-4].minor.
yy0);
}
break;
case 69:
{
((gaiaPointPtr) yymsp[-2].minor.yy0)->Next =
(gaiaPointPtr) yymsp[-1].minor.yy0;
((gaiaPointPtr) yymsp[-4].minor.yy0)->Next =
(gaiaPointPtr) yymsp[-2].minor.yy0;
yygotominor.yy0 =
(void *) ewkt_linestring_xyz (p_data,
(gaiaPointPtr) yymsp[-4].minor.
yy0);
}
break;
case 70:
{
((gaiaPointPtr) yymsp[-2].minor.yy0)->Next =
(gaiaPointPtr) yymsp[-1].minor.yy0;
((gaiaPointPtr) yymsp[-4].minor.yy0)->Next =
(gaiaPointPtr) yymsp[-2].minor.yy0;
yygotominor.yy0 =
(void *) ewkt_linestring_xyzm (p_data,
(gaiaPointPtr) yymsp[-4].minor.
yy0);
}
break;
case 71:
case 72:
yytestcase (yyruleno == 72);
case 73:
yytestcase (yyruleno == 73);
case 74:
yytestcase (yyruleno == 74);
{
yygotominor.yy0 =
ewkt_buildGeomFromPolygon (p_data,
(gaiaPolygonPtr) yymsp[0].minor.
yy0);
}
break;
case 75:
{
((gaiaRingPtr) yymsp[-2].minor.yy0)->Next =
(gaiaRingPtr) yymsp[-1].minor.yy0;
yygotominor.yy0 =
(void *) ewkt_polygon_xy (p_data,
(gaiaRingPtr) yymsp[-2].minor.yy0);
}
break;
case 76:
{
((gaiaRingPtr) yymsp[-2].minor.yy0)->Next =
(gaiaRingPtr) yymsp[-1].minor.yy0;
yygotominor.yy0 =
(void *) ewkt_polygon_xym (p_data,
(gaiaRingPtr) yymsp[-2].minor.yy0);
}
break;
case 77:
{
((gaiaRingPtr) yymsp[-2].minor.yy0)->Next =
(gaiaRingPtr) yymsp[-1].minor.yy0;
yygotominor.yy0 =
(void *) ewkt_polygon_xyz (p_data,
(gaiaRingPtr) yymsp[-2].minor.yy0);
}
break;
case 78:
{
((gaiaRingPtr) yymsp[-2].minor.yy0)->Next =
(gaiaRingPtr) yymsp[-1].minor.yy0;
yygotominor.yy0 =
(void *) ewkt_polygon_xyzm (p_data,
(gaiaRingPtr) yymsp[-2].minor.
yy0);
}
break;
case 79:
{
((gaiaPointPtr) yymsp[-8].minor.yy0)->Next =
(gaiaPointPtr) yymsp[-6].minor.yy0;
((gaiaPointPtr) yymsp[-6].minor.yy0)->Next =
(gaiaPointPtr) yymsp[-4].minor.yy0;
((gaiaPointPtr) yymsp[-4].minor.yy0)->Next =
(gaiaPointPtr) yymsp[-2].minor.yy0;
((gaiaPointPtr) yymsp[-2].minor.yy0)->Next =
(gaiaPointPtr) yymsp[-1].minor.yy0;
yygotominor.yy0 =
(void *) ewkt_ring_xy (p_data,
(gaiaPointPtr) yymsp[-8].minor.yy0);
}
break;
case 81:
case 84:
yytestcase (yyruleno == 84);
case 87:
yytestcase (yyruleno == 87);
case 90:
yytestcase (yyruleno == 90);
{
((gaiaRingPtr) yymsp[-1].minor.yy0)->Next =
(gaiaRingPtr) yymsp[0].minor.yy0;
yygotominor.yy0 = yymsp[-1].minor.yy0;
}
break;
case 82:
{
((gaiaPointPtr) yymsp[-8].minor.yy0)->Next =
(gaiaPointPtr) yymsp[-6].minor.yy0;
((gaiaPointPtr) yymsp[-6].minor.yy0)->Next =
(gaiaPointPtr) yymsp[-4].minor.yy0;
((gaiaPointPtr) yymsp[-4].minor.yy0)->Next =
(gaiaPointPtr) yymsp[-2].minor.yy0;
((gaiaPointPtr) yymsp[-2].minor.yy0)->Next =
(gaiaPointPtr) yymsp[-1].minor.yy0;
yygotominor.yy0 =
(void *) ewkt_ring_xym (p_data,
(gaiaPointPtr) yymsp[-8].minor.yy0);
}
break;
case 85:
{
((gaiaPointPtr) yymsp[-8].minor.yy0)->Next =
(gaiaPointPtr) yymsp[-6].minor.yy0;
((gaiaPointPtr) yymsp[-6].minor.yy0)->Next =
(gaiaPointPtr) yymsp[-4].minor.yy0;
((gaiaPointPtr) yymsp[-4].minor.yy0)->Next =
(gaiaPointPtr) yymsp[-2].minor.yy0;
((gaiaPointPtr) yymsp[-2].minor.yy0)->Next =
(gaiaPointPtr) yymsp[-1].minor.yy0;
yygotominor.yy0 =
(void *) ewkt_ring_xyz (p_data,
(gaiaPointPtr) yymsp[-8].minor.yy0);
}
break;
case 88:
{
((gaiaPointPtr) yymsp[-8].minor.yy0)->Next =
(gaiaPointPtr) yymsp[-6].minor.yy0;
((gaiaPointPtr) yymsp[-6].minor.yy0)->Next =
(gaiaPointPtr) yymsp[-4].minor.yy0;
((gaiaPointPtr) yymsp[-4].minor.yy0)->Next =
(gaiaPointPtr) yymsp[-2].minor.yy0;
((gaiaPointPtr) yymsp[-2].minor.yy0)->Next =
(gaiaPointPtr) yymsp[-1].minor.yy0;
yygotominor.yy0 =
(void *) ewkt_ring_xyzm (p_data,
(gaiaPointPtr) yymsp[-8].minor.yy0);
}
break;
case 95:
case 99:
yytestcase (yyruleno == 99);
{
((gaiaPointPtr) yymsp[-2].minor.yy0)->Next =
(gaiaPointPtr) yymsp[-1].minor.yy0;
yygotominor.yy0 =
(void *) ewkt_multipoint_xy (p_data,
(gaiaPointPtr) yymsp[-2].minor.
yy0);
}
break;
case 96:
case 100:
yytestcase (yyruleno == 100);
{
((gaiaPointPtr) yymsp[-2].minor.yy0)->Next =
(gaiaPointPtr) yymsp[-1].minor.yy0;
yygotominor.yy0 =
(void *) ewkt_multipoint_xym (p_data,
(gaiaPointPtr) yymsp[-2].minor.
yy0);
}
break;
case 97:
case 101:
yytestcase (yyruleno == 101);
{
((gaiaPointPtr) yymsp[-2].minor.yy0)->Next =
(gaiaPointPtr) yymsp[-1].minor.yy0;
yygotominor.yy0 =
(void *) ewkt_multipoint_xyz (p_data,
(gaiaPointPtr) yymsp[-2].minor.
yy0);
}
break;
case 98:
case 102:
yytestcase (yyruleno == 102);
{
((gaiaPointPtr) yymsp[-2].minor.yy0)->Next =
(gaiaPointPtr) yymsp[-1].minor.yy0;
yygotominor.yy0 =
(void *) ewkt_multipoint_xyzm (p_data,
(gaiaPointPtr) yymsp[-2].minor.
yy0);
}
break;
case 107:
{
((gaiaLinestringPtr) yymsp[-2].minor.yy0)->Next =
(gaiaLinestringPtr) yymsp[-1].minor.yy0;
yygotominor.yy0 =
(void *) ewkt_multilinestring_xy (p_data,
(gaiaLinestringPtr)
yymsp[-2].minor.yy0);
}
break;
case 109:
case 112:
yytestcase (yyruleno == 112);
case 115:
yytestcase (yyruleno == 115);
case 118:
yytestcase (yyruleno == 118);
{
((gaiaLinestringPtr) yymsp[-1].minor.yy0)->Next =
(gaiaLinestringPtr) yymsp[0].minor.yy0;
yygotominor.yy0 = yymsp[-1].minor.yy0;
}
break;
case 110:
{
((gaiaLinestringPtr) yymsp[-2].minor.yy0)->Next =
(gaiaLinestringPtr) yymsp[-1].minor.yy0;
yygotominor.yy0 =
(void *) ewkt_multilinestring_xym (p_data,
(gaiaLinestringPtr)
yymsp[-2].minor.yy0);
}
break;
case 113:
{
((gaiaLinestringPtr) yymsp[-2].minor.yy0)->Next =
(gaiaLinestringPtr) yymsp[-1].minor.yy0;
yygotominor.yy0 =
(void *) ewkt_multilinestring_xyz (p_data,
(gaiaLinestringPtr)
yymsp[-2].minor.yy0);
}
break;
case 116:
{
((gaiaLinestringPtr) yymsp[-2].minor.yy0)->Next =
(gaiaLinestringPtr) yymsp[-1].minor.yy0;
yygotominor.yy0 =
(void *) ewkt_multilinestring_xyzm (p_data,
(gaiaLinestringPtr)
yymsp[-2].minor.yy0);
}
break;
case 123:
{
((gaiaPolygonPtr) yymsp[-2].minor.yy0)->Next =
(gaiaPolygonPtr) yymsp[-1].minor.yy0;
yygotominor.yy0 =
(void *) ewkt_multipolygon_xy (p_data,
(gaiaPolygonPtr)
yymsp[-2].minor.yy0);
}
break;
case 125:
case 128:
yytestcase (yyruleno == 128);
case 131:
yytestcase (yyruleno == 131);
case 134:
yytestcase (yyruleno == 134);
{
((gaiaPolygonPtr) yymsp[-1].minor.yy0)->Next =
(gaiaPolygonPtr) yymsp[0].minor.yy0;
yygotominor.yy0 = yymsp[-1].minor.yy0;
}
break;
case 126:
{
((gaiaPolygonPtr) yymsp[-2].minor.yy0)->Next =
(gaiaPolygonPtr) yymsp[-1].minor.yy0;
yygotominor.yy0 =
(void *) ewkt_multipolygon_xym (p_data,
(gaiaPolygonPtr)
yymsp[-2].minor.yy0);
}
break;
case 129:
{
((gaiaPolygonPtr) yymsp[-2].minor.yy0)->Next =
(gaiaPolygonPtr) yymsp[-1].minor.yy0;
yygotominor.yy0 =
(void *) ewkt_multipolygon_xyz (p_data,
(gaiaPolygonPtr)
yymsp[-2].minor.yy0);
}
break;
case 132:
{
((gaiaPolygonPtr) yymsp[-2].minor.yy0)->Next =
(gaiaPolygonPtr) yymsp[-1].minor.yy0;
yygotominor.yy0 =
(void *) ewkt_multipolygon_xyzm (p_data,
(gaiaPolygonPtr)
yymsp[-2].minor.yy0);
}
break;
case 139:
case 140:
yytestcase (yyruleno == 140);
case 141:
yytestcase (yyruleno == 141);
case 142:
yytestcase (yyruleno == 142);
case 143:
yytestcase (yyruleno == 143);
case 144:
yytestcase (yyruleno == 144);
case 145:
yytestcase (yyruleno == 145);
{
((gaiaGeomCollPtr) yymsp[-2].minor.yy0)->Next =
(gaiaGeomCollPtr) yymsp[-1].minor.yy0;
yygotominor.yy0 =
(void *) ewkt_geomColl_xy (p_data,
(gaiaGeomCollPtr) yymsp[-2].minor.
yy0);
}
break;
case 147:
case 148:
yytestcase (yyruleno == 148);
case 149:
yytestcase (yyruleno == 149);
case 150:
yytestcase (yyruleno == 150);
case 151:
yytestcase (yyruleno == 151);
case 152:
yytestcase (yyruleno == 152);
case 153:
yytestcase (yyruleno == 153);
case 162:
yytestcase (yyruleno == 162);
case 163:
yytestcase (yyruleno == 163);
case 164:
yytestcase (yyruleno == 164);
case 165:
yytestcase (yyruleno == 165);
case 166:
yytestcase (yyruleno == 166);
case 167:
yytestcase (yyruleno == 167);
case 168:
yytestcase (yyruleno == 168);
case 177:
yytestcase (yyruleno == 177);
case 178:
yytestcase (yyruleno == 178);
case 179:
yytestcase (yyruleno == 179);
case 180:
yytestcase (yyruleno == 180);
case 181:
yytestcase (yyruleno == 181);
case 182:
yytestcase (yyruleno == 182);
case 183:
yytestcase (yyruleno == 183);
case 192:
yytestcase (yyruleno == 192);
case 193:
yytestcase (yyruleno == 193);
case 194:
yytestcase (yyruleno == 194);
case 195:
yytestcase (yyruleno == 195);
case 196:
yytestcase (yyruleno == 196);
case 197:
yytestcase (yyruleno == 197);
case 198:
yytestcase (yyruleno == 198);
{
((gaiaGeomCollPtr) yymsp[-1].minor.yy0)->Next =
(gaiaGeomCollPtr) yymsp[0].minor.yy0;
yygotominor.yy0 = yymsp[-1].minor.yy0;
}
break;
case 154:
case 155:
yytestcase (yyruleno == 155);
case 156:
yytestcase (yyruleno == 156);
case 157:
yytestcase (yyruleno == 157);
case 158:
yytestcase (yyruleno == 158);
case 159:
yytestcase (yyruleno == 159);
case 160:
yytestcase (yyruleno == 160);
{
((gaiaGeomCollPtr) yymsp[-2].minor.yy0)->Next =
(gaiaGeomCollPtr) yymsp[-1].minor.yy0;
yygotominor.yy0 =
(void *) ewkt_geomColl_xym (p_data,
(gaiaGeomCollPtr) yymsp[-2].minor.
yy0);
}
break;
case 169:
case 170:
yytestcase (yyruleno == 170);
case 171:
yytestcase (yyruleno == 171);
case 172:
yytestcase (yyruleno == 172);
case 173:
yytestcase (yyruleno == 173);
case 174:
yytestcase (yyruleno == 174);
case 175:
yytestcase (yyruleno == 175);
{
((gaiaGeomCollPtr) yymsp[-2].minor.yy0)->Next =
(gaiaGeomCollPtr) yymsp[-1].minor.yy0;
yygotominor.yy0 =
(void *) ewkt_geomColl_xyz (p_data,
(gaiaGeomCollPtr) yymsp[-2].minor.
yy0);
}
break;
case 184:
case 185:
yytestcase (yyruleno == 185);
case 186:
yytestcase (yyruleno == 186);
case 187:
yytestcase (yyruleno == 187);
case 188:
yytestcase (yyruleno == 188);
case 189:
yytestcase (yyruleno == 189);
case 190:
yytestcase (yyruleno == 190);
{
((gaiaGeomCollPtr) yymsp[-2].minor.yy0)->Next =
(gaiaGeomCollPtr) yymsp[-1].minor.yy0;
yygotominor.yy0 =
(void *) ewkt_geomColl_xyzm (p_data,
(gaiaGeomCollPtr)
yymsp[-2].minor.yy0);
}
break;
default:
yytestcase (yyruleno == 0);
yytestcase (yyruleno == 1);
yytestcase (yyruleno == 2);
yytestcase (yyruleno == 3);
yytestcase (yyruleno == 4);
yytestcase (yyruleno == 5);
break;
};
yygoto = yyRuleInfo[yyruleno].lhs;
yysize = yyRuleInfo[yyruleno].nrhs;
yypParser->yyidx -= yysize;
yyact = yy_find_reduce_action (yymsp[-yysize].stateno, (YYCODETYPE) yygoto);
if (yyact < YYNSTATE)
{
#ifdef NDEBUG
if (yysize)
{
yypParser->yyidx++;
yymsp -= yysize - 1;
yymsp->stateno = (YYACTIONTYPE) yyact;
yymsp->major = (YYCODETYPE) yygoto;
yymsp->minor = yygotominor;
}
else
#endif
{
yy_shift (yypParser, yyact, yygoto, &yygotominor);
}
}
else
{
assert (yyact == YYNSTATE + YYNRULE + 1);
yy_accept (yypParser);
}
}
#ifndef YYNOERRORRECOVERY
static void
yy_parse_failed (yyParser * yypParser
)
{
ParseARG_FETCH;
#ifndef NDEBUG
if (yyTraceFILE)
{
fprintf (yyTraceFILE, "%sFail!\n", yyTracePrompt);
}
#endif
while (yypParser->yyidx >= 0)
yy_pop_parser_stack (yypParser);
ParseARG_STORE;
}
#endif
static void
yy_syntax_error (yyParser * yypParser,
int yymajor,
YYMINORTYPE yyminor
)
{
ParseARG_FETCH;
#define TOKEN (yyminor.yy0)
p_data->ewkt_parse_error = 1;
p_data->result = NULL;
ParseARG_STORE;
}
static void
yy_accept (yyParser * yypParser
)
{
ParseARG_FETCH;
#ifndef NDEBUG
if (yyTraceFILE)
{
fprintf (yyTraceFILE, "%sAccept!\n", yyTracePrompt);
}
#endif
while (yypParser->yyidx >= 0)
yy_pop_parser_stack (yypParser);
ParseARG_STORE;
}
void
Parse (void *yyp,
int yymajor,
ParseTOKENTYPE yyminor
ParseARG_PDECL
)
{
YYMINORTYPE yyminorunion;
int yyact;
int yyendofinput;
#ifdef YYERRORSYMBOL
int yyerrorhit = 0;
#endif
yyParser *yypParser;
yypParser = (yyParser *) yyp;
if (yypParser->yyidx < 0)
{
#if YYSTACKDEPTH<=0
if (yypParser->yystksz <= 0)
{
yyminorunion = yyzerominor;
yyStackOverflow (yypParser, &yyminorunion);
return;
}
#endif
yypParser->yyidx = 0;
yypParser->yyerrcnt = -1;
yypParser->yystack[0].stateno = 0;
yypParser->yystack[0].major = 0;
}
yyminorunion.yy0 = yyminor;
yyendofinput = (yymajor == 0);
ParseARG_STORE;
#ifndef NDEBUG
if (yyTraceFILE)
{
fprintf (yyTraceFILE, "%sInput %s\n", yyTracePrompt,
yyTokenName[yymajor]);
}
#endif
do
{
yyact = yy_find_shift_action (yypParser, (YYCODETYPE) yymajor);
if (yyact < YYNSTATE)
{
assert (!yyendofinput);
yy_shift (yypParser, yyact, yymajor, &yyminorunion);
yypParser->yyerrcnt--;
yymajor = YYNOCODE;
}
else if (yyact < YYNSTATE + YYNRULE)
{
yy_reduce (yypParser, yyact - YYNSTATE);
}
else
{
assert (yyact == YY_ERROR_ACTION);
#ifdef YYERRORSYMBOL
int yymx;
#endif
#ifndef NDEBUG
if (yyTraceFILE)
{
fprintf (yyTraceFILE, "%sSyntax Error!\n", yyTracePrompt);
}
#endif
#ifdef YYERRORSYMBOL
if (yypParser->yyerrcnt < 0)
{
yy_syntax_error (yypParser, yymajor, yyminorunion);
}
yymx = yypParser->yystack[yypParser->yyidx].major;
if (yymx == YYERRORSYMBOL || yyerrorhit)
{
#ifndef NDEBUG
if (yyTraceFILE)
{
fprintf (yyTraceFILE, "%sDiscard input token %s\n",
yyTracePrompt, yyTokenName[yymajor]);
}
#endif
yy_destructor (yypParser, (YYCODETYPE) yymajor,
&yyminorunion);
yymajor = YYNOCODE;
}
else
{
while (yypParser->yyidx >= 0 &&
yymx != YYERRORSYMBOL &&
(yyact =
yy_find_reduce_action (yypParser->yystack
[yypParser->yyidx].stateno,
YYERRORSYMBOL)) >=
YYNSTATE)
{
yy_pop_parser_stack (yypParser);
}
if (yypParser->yyidx < 0 || yymajor == 0)
{
yy_destructor (yypParser, (YYCODETYPE) yymajor,
&yyminorunion);
yy_parse_failed (yypParser);
yymajor = YYNOCODE;
}
else if (yymx != YYERRORSYMBOL)
{
YYMINORTYPE u2;
u2.YYERRSYMDT = 0;
yy_shift (yypParser, yyact, YYERRORSYMBOL, &u2);
}
}
yypParser->yyerrcnt = 3;
yyerrorhit = 1;
#elif defined(YYNOERRORRECOVERY)
yy_syntax_error (yypParser, yymajor, yyminorunion);
yy_destructor (yypParser, (YYCODETYPE) yymajor, &yyminorunion);
yymajor = YYNOCODE;
#else
if (yypParser->yyerrcnt <= 0)
{
yy_syntax_error (yypParser, yymajor, yyminorunion);
}
yypParser->yyerrcnt = 3;
yy_destructor (yypParser, (YYCODETYPE) yymajor, &yyminorunion);
if (yyendofinput)
{
yy_parse_failed (yypParser);
}
yymajor = YYNOCODE;
#endif
}
}
while (yymajor != YYNOCODE && yypParser->yyidx >= 0);
return;
}