#include <stdio.h>
#ifndef INTERFACE
#define INTERFACE 1
#endif
#define YYCODETYPE unsigned char
#define YYNOCODE 84
#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 geoJson_data *p_data ;
#define ParseARG_PDECL , struct geoJson_data *p_data
#define ParseARG_FETCH struct geoJson_data *p_data = yypParser->p_data
#define ParseARG_STORE yypParser->p_data = p_data
#define YYNSTATE 679
#define YYNRULE 159
#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[] = {
184, 533, 534, 535, 536, 537, 538, 539, 540, 541,
542, 543, 544, 545, 546, 547, 548, 187, 139, 189,
146, 147, 148, 190, 155, 156, 679, 104, 185, 112,
242, 287, 334, 373, 412, 451, 139, 195, 146, 147,
140, 201, 141, 142, 512, 149, 88, 150, 151, 157,
148, 551, 155, 156, 496, 188, 243, 193, 254, 509,
204, 262, 455, 288, 335, 301, 340, 471, 309, 348,
507, 374, 413, 379, 418, 457, 387, 426, 482, 191,
498, 480, 452, 567, 568, 839, 1, 169, 461, 465,
93, 486, 490, 501, 504, 238, 240, 211, 199, 207,
86, 201, 200, 208, 101, 244, 245, 215, 205, 217,
553, 216, 223, 219, 227, 99, 201, 220, 228, 246,
229, 19, 256, 250, 263, 275, 201, 260, 261, 95,
30, 269, 31, 265, 266, 201, 273, 274, 277, 278,
281, 285, 286, 42, 201, 292, 289, 290, 303, 297,
307, 308, 201, 310, 322, 312, 313, 96, 316, 328,
320, 321, 201, 201, 324, 325, 332, 333, 206, 120,
209, 336, 337, 121, 342, 192, 349, 361, 201, 53,
346, 347, 351, 352, 355, 64, 359, 360, 201, 363,
364, 367, 375, 376, 2, 201, 381, 371, 372, 394,
201, 122, 126, 201, 385, 386, 388, 400, 390, 391,
414, 415, 398, 399, 402, 403, 406, 410, 411, 420,
201, 130, 134, 201, 424, 425, 427, 439, 433, 429,
430, 218, 201, 221, 437, 438, 441, 442, 445, 477,
478, 202, 201, 449, 450, 473, 460, 468, 493, 201,
485, 464, 489, 508, 520, 514, 510, 511, 524, 201,
518, 519, 522, 523, 526, 203, 530, 531, 201, 264,
276, 267, 279, 521, 311, 323, 314, 326, 350, 362,
353, 365, 389, 401, 392, 404, 428, 440, 431, 443,
556, 247, 248, 97, 99, 251, 249, 571, 102, 105,
252, 253, 103, 292, 106, 573, 291, 295, 113, 293,
294, 111, 123, 114, 110, 589, 125, 124, 296, 297,
119, 127, 298, 299, 377, 840, 118, 620, 592, 128,
246, 131, 300, 132, 338, 135, 339, 250, 136, 4,
3, 5, 129, 532, 6, 158, 186, 133, 8, 552,
104, 378, 159, 549, 460, 622, 137, 550, 112, 87,
416, 194, 9, 10, 197, 464, 636, 196, 417, 468,
485, 638, 198, 453, 554, 555, 489, 454, 89, 90,
651, 652, 493, 91, 653, 11, 170, 469, 12, 470,
557, 558, 210, 213, 479, 13, 662, 663, 664, 214,
212, 14, 494, 559, 560, 678, 171, 495, 15, 561,
562, 222, 225, 16, 17, 226, 224, 563, 230, 564,
231, 236, 235, 233, 20, 232, 7, 234, 456, 239,
840, 565, 241, 237, 566, 569, 160, 18, 840, 551,
570, 92, 94, 98, 100, 572, 88, 255, 840, 21,
258, 840, 574, 257, 259, 22, 575, 270, 576, 172,
23, 268, 577, 578, 271, 25, 840, 272, 26, 24,
579, 580, 173, 581, 280, 840, 582, 840, 283, 27,
284, 28, 282, 583, 32, 29, 161, 584, 840, 840,
585, 586, 107, 108, 109, 587, 304, 840, 840, 115,
116, 117, 588, 590, 302, 33, 840, 591, 305, 840,
306, 840, 593, 594, 174, 34, 36, 35, 840, 39,
315, 476, 595, 596, 318, 37, 75, 840, 317, 840,
319, 329, 597, 598, 599, 175, 40, 38, 327, 600,
840, 330, 840, 331, 41, 601, 602, 603, 162, 840,
840, 341, 604, 840, 840, 840, 605, 606, 43, 344,
343, 840, 44, 356, 345, 45, 840, 607, 608, 176,
46, 358, 840, 609, 354, 840, 610, 357, 48, 47,
611, 49, 840, 612, 177, 366, 840, 613, 614, 840,
840, 369, 50, 370, 163, 368, 51, 615, 52, 840,
840, 616, 840, 617, 618, 840, 380, 840, 619, 621,
382, 383, 840, 178, 54, 55, 384, 840, 623, 56,
624, 57, 625, 393, 626, 840, 840, 59, 396, 840,
58, 397, 395, 627, 840, 179, 628, 60, 405, 629,
630, 840, 840, 62, 408, 840, 61, 409, 407, 631,
840, 164, 632, 63, 840, 633, 634, 419, 840, 840,
481, 635, 840, 637, 65, 423, 840, 421, 422, 66,
840, 81, 639, 67, 640, 840, 180, 68, 69, 840,
840, 432, 641, 642, 840, 435, 70, 840, 840, 434,
436, 840, 643, 181, 644, 71, 517, 840, 645, 444,
840, 646, 840, 183, 72, 447, 840, 446, 647, 448,
73, 840, 674, 648, 165, 138, 840, 649, 166, 143,
840, 650, 458, 84, 840, 459, 462, 654, 840, 463,
144, 655, 840, 466, 145, 467, 840, 840, 840, 656,
472, 840, 840, 657, 840, 658, 474, 475, 529, 840,
74, 840, 659, 85, 660, 167, 665, 840, 661, 483,
152, 840, 484, 487, 153, 840, 488, 154, 840, 666,
491, 840, 492, 840, 497, 667, 840, 168, 840, 668,
840, 669, 499, 670, 76, 500, 840, 840, 502, 77,
503, 840, 505, 840, 78, 79, 506, 840, 840, 182,
80, 513, 840, 671, 840, 840, 82, 516, 840, 840,
840, 515, 672, 840, 840, 673, 83, 840, 840, 527,
525, 675, 840, 528, 840, 840, 840, 840, 676, 677,
};
static const YYCODETYPE yy_lookahead[] = {
28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
38, 39, 40, 41, 42, 43, 44, 5, 75, 45,
77, 78, 79, 49, 81, 82, 0, 59, 2, 61,
18, 19, 20, 21, 22, 23, 75, 46, 77, 78,
75, 50, 77, 78, 9, 79, 6, 81, 82, 23,
79, 11, 81, 82, 2, 7, 7, 9, 9, 24,
12, 12, 2, 7, 7, 9, 9, 9, 12, 12,
12, 7, 7, 9, 9, 5, 12, 12, 5, 50,
5, 2, 24, 16, 17, 26, 27, 50, 18, 19,
10, 18, 19, 18, 19, 51, 52, 46, 45, 45,
10, 50, 49, 49, 49, 55, 56, 45, 47, 48,
15, 49, 46, 45, 45, 10, 50, 49, 49, 45,
2, 10, 46, 49, 47, 48, 50, 55, 56, 45,
10, 46, 10, 55, 56, 50, 55, 56, 55, 56,
46, 55, 56, 10, 50, 45, 57, 58, 46, 49,
57, 58, 50, 47, 48, 57, 58, 6, 46, 46,
57, 58, 50, 50, 57, 58, 57, 58, 7, 45,
9, 63, 64, 49, 46, 50, 47, 48, 50, 10,
63, 64, 63, 64, 46, 10, 63, 64, 50, 63,
64, 46, 65, 66, 10, 50, 46, 63, 64, 46,
50, 55, 56, 50, 65, 66, 47, 48, 65, 66,
69, 70, 65, 66, 65, 66, 46, 65, 66, 46,
50, 57, 58, 50, 69, 70, 47, 48, 46, 69,
70, 7, 50, 9, 69, 70, 69, 70, 46, 73,
74, 50, 50, 69, 70, 46, 45, 57, 58, 50,
49, 55, 56, 47, 48, 46, 73, 74, 9, 50,
73, 74, 73, 74, 46, 50, 73, 74, 50, 7,
7, 9, 9, 24, 7, 7, 9, 9, 7, 7,
9, 9, 7, 7, 9, 9, 7, 7, 9, 9,
50, 50, 50, 45, 10, 50, 53, 53, 6, 6,
50, 54, 49, 45, 10, 54, 60, 53, 6, 45,
45, 59, 6, 10, 45, 60, 55, 10, 62, 49,
61, 6, 49, 49, 67, 83, 49, 67, 62, 10,
45, 6, 54, 10, 53, 6, 54, 49, 10, 6,
10, 6, 56, 1, 10, 4, 3, 57, 4, 11,
59, 68, 6, 8, 45, 68, 58, 8, 61, 6,
71, 4, 10, 4, 6, 55, 71, 11, 72, 57,
49, 72, 7, 73, 8, 8, 56, 76, 6, 6,
76, 76, 58, 6, 76, 4, 6, 76, 4, 76,
8, 8, 4, 6, 80, 10, 80, 80, 80, 7,
11, 4, 80, 8, 8, 74, 6, 80, 4, 8,
8, 4, 6, 10, 4, 7, 11, 8, 3, 8,
4, 2, 4, 6, 10, 13, 4, 14, 3, 8,
83, 8, 8, 13, 8, 8, 6, 4, 83, 11,
8, 6, 6, 6, 6, 11, 6, 4, 83, 4,
6, 83, 11, 11, 7, 4, 8, 11, 8, 6,
4, 4, 8, 8, 6, 4, 83, 7, 4, 10,
8, 8, 6, 8, 4, 83, 8, 83, 6, 10,
7, 4, 11, 8, 10, 4, 6, 8, 83, 83,
8, 8, 6, 6, 6, 11, 11, 83, 83, 6,
6, 6, 11, 11, 4, 4, 83, 11, 6, 83,
7, 83, 8, 8, 6, 4, 10, 4, 83, 10,
4, 24, 8, 8, 6, 4, 4, 83, 11, 83,
7, 11, 8, 8, 8, 6, 4, 4, 4, 8,
83, 6, 83, 7, 4, 8, 8, 8, 6, 83,
83, 4, 8, 83, 83, 83, 11, 11, 10, 6,
11, 83, 4, 11, 7, 4, 83, 8, 8, 6,
4, 7, 83, 8, 4, 83, 8, 6, 4, 10,
8, 4, 83, 8, 6, 4, 83, 8, 8, 83,
83, 6, 10, 7, 6, 11, 4, 8, 4, 83,
83, 8, 83, 8, 8, 83, 4, 83, 11, 11,
11, 6, 83, 6, 10, 4, 7, 83, 8, 4,
8, 4, 8, 4, 8, 83, 83, 4, 6, 83,
10, 7, 11, 8, 83, 6, 8, 4, 4, 8,
8, 83, 83, 4, 6, 83, 10, 7, 11, 8,
83, 6, 8, 4, 83, 8, 8, 4, 83, 83,
3, 11, 83, 11, 10, 7, 83, 11, 6, 4,
83, 10, 8, 4, 8, 83, 6, 4, 10, 83,
83, 4, 8, 8, 83, 6, 4, 83, 83, 11,
7, 83, 8, 6, 8, 4, 24, 83, 8, 4,
83, 8, 83, 6, 10, 6, 83, 11, 8, 7,
4, 83, 8, 8, 6, 4, 83, 8, 4, 4,
83, 11, 6, 10, 83, 7, 6, 8, 83, 7,
4, 8, 83, 6, 4, 7, 83, 83, 83, 8,
4, 83, 83, 11, 83, 11, 11, 6, 24, 83,
10, 83, 8, 4, 8, 4, 8, 83, 11, 6,
4, 83, 7, 6, 4, 83, 7, 4, 83, 8,
6, 83, 7, 83, 3, 8, 83, 4, 83, 11,
83, 11, 6, 8, 4, 7, 83, 83, 6, 4,
7, 83, 6, 83, 4, 4, 7, 83, 83, 6,
4, 4, 83, 8, 83, 83, 4, 6, 83, 83,
83, 11, 8, 83, 83, 8, 4, 83, 83, 11,
4, 8, 83, 6, 83, 83, 83, 83, 8, 8,
};
#define YY_SHIFT_USE_DFLT (-1)
#define YY_SHIFT_MAX 531
static const short yy_shift_ofst[] = {
-1, 26, 52, 60, 60, 79, 79, 67, 90, 95,
90, 118, 90, 95, 90, 90, 95, 90, 111, 90,
95, 111, 118, 111, 95, 111, 111, 95, 111, 120,
122, 90, 95, 120, 118, 120, 95, 120, 120, 95,
120, 133, 90, 95, 133, 118, 133, 95, 133, 133,
95, 133, 169, 111, 95, 169, 118, 169, 95, 169,
169, 95, 169, 175, 120, 95, 175, 118, 175, 95,
175, 175, 95, 175, 95, 184, 90, 111, 120, 118,
184, 95, 184, 184, 95, 184, 95, 95, 95, 95,
95, 95, 80, 95, 95, 151, 80, 151, 284, 95,
95, 292, 105, 292, 293, 294, 80, 80, 80, 80,
151, 293, 302, 303, 105, 105, 105, 105, 292, 302,
151, 292, 306, 307, 80, 306, 315, 319, 105, 315,
325, 323, 294, 325, 329, 328, 303, 329, 330, 333,
333, 333, 333, 80, 307, 323, 333, 333, 335, 335,
335, 335, 105, 319, 328, 335, 335, 334, 12, 48,
49, 56, 57, 64, 65, 58, 70, 73, 75, 40,
161, 224, 262, 263, 267, 268, 271, 272, 275, 276,
279, 280, 35, 249, 342, 343, 341, 346, 344, 345,
349, 353, 338, 357, 352, 356, 358, 365, 359, 366,
367, 372, 373, 377, 381, 380, 384, 382, 383, 388,
385, 389, 387, 392, 397, 395, 396, 400, 404, 401,
402, 407, 403, 405, 406, 408, 410, 409, 411, 415,
416, 412, 417, 413, 418, 419, 420, 422, 421, 423,
424, 426, 430, 433, 427, 432, 435, 436, 428, 434,
437, 438, 440, 441, 443, 414, 442, 444, 447, 445,
448, 450, 451, 453, 456, 454, 455, 457, 459, 446,
458, 460, 461, 462, 463, 466, 464, 465, 468, 470,
469, 471, 472, 473, 477, 475, 479, 480, 481, 482,
483, 484, 486, 487, 488, 491, 492, 493, 494, 495,
496, 500, 474, 485, 502, 503, 501, 504, 505, 511,
508, 513, 514, 515, 516, 506, 517, 518, 523, 521,
524, 525, 529, 533, 526, 531, 534, 509, 520, 535,
536, 532, 537, 538, 542, 540, 539, 544, 545, 546,
547, 548, 549, 553, 557, 558, 559, 560, 561, 563,
566, 565, 568, 570, 569, 552, 571, 564, 574, 572,
575, 578, 577, 579, 580, 581, 582, 584, 585, 586,
592, 589, 593, 588, 594, 595, 596, 597, 598, 602,
604, 599, 605, 609, 611, 610, 612, 615, 607, 617,
614, 616, 619, 620, 621, 622, 624, 623, 625, 628,
629, 633, 631, 632, 634, 636, 637, 638, 640, 639,
641, 644, 645, 649, 647, 648, 650, 652, 653, 654,
656, 662, 658, 665, 664, 666, 669, 670, 673, 674,
675, 677, 668, 678, 679, 683, 682, 684, 686, 687,
691, 690, 693, 695, 694, 696, 699, 702, 706, 700,
705, 708, 711, 709, 710, 425, 714, 716, 718, 715,
719, 720, 722, 726, 723, 727, 728, 730, 731, 732,
734, 736, 740, 735, 741, 497, 522, 744, 746, 747,
657, 751, 753, 755, 756, 748, 757, 759, 760, 761,
764, 765, 763, 767, 768, 770, 771, 773, 776, 778,
780, 782, 783, 785, 786, 789, 790, 791, 793, 796,
775, 795, 797, 661, 800, 801, 672, 802, 804, 807,
697, 812, 704, 813, 816, 713, 808, 817, 724, 749,
820, 821,
};
#define YY_REDUCE_USE_DFLT (-58)
#define YY_REDUCE_MAX 157
static const short yy_reduce_ofst[] = {
59, -28, -57, -39, -35, -34, -29, 44, -26, -9,
53, 61, 54, 51, 62, 68, 66, 69, 50, 74,
76, 72, 77, 78, 85, 81, 83, 94, 86, 89,
-32, 100, 102, 93, 106, 98, 112, 103, 107, 113,
109, 108, 124, 128, 117, 129, 119, 138, 123, 126,
145, 134, 127, 146, 150, 139, 159, 143, 153, 147,
149, 170, 152, 141, 164, 173, 155, 179, 160, 182,
165, 167, 192, 174, 199, 166, 201, 196, 190, 206,
183, 209, 187, 189, 218, 193, 29, 37, 125, 191,
215, 240, 84, 241, 242, 243, 248, 244, 55, 245,
250, 247, 253, 251, 246, 252, 258, 264, 265, 269,
254, 255, 256, 259, 270, 273, 274, 277, 278, 266,
281, 282, 257, 261, 285, 260, 283, 286, 288, 287,
289, 290, 291, 295, 296, 298, 297, 299, 300, 301,
304, 305, 308, 309, 310, 312, 311, 313, 314, 316,
317, 318, 321, 320, 324, 322, 327, 331,
};
static const YYACTIONTYPE yy_default[] = {
680, 838, 838, 838, 838, 838, 838, 838, 838, 838,
838, 838, 838, 838, 838, 838, 838, 838, 838, 838,
838, 838, 838, 838, 838, 838, 838, 838, 838, 838,
838, 838, 838, 838, 838, 838, 838, 838, 838, 838,
838, 838, 838, 838, 838, 838, 838, 838, 838, 838,
838, 838, 838, 838, 838, 838, 838, 838, 838, 838,
838, 838, 838, 838, 838, 838, 838, 838, 838, 838,
838, 838, 838, 838, 838, 838, 838, 838, 838, 838,
838, 838, 838, 838, 838, 838, 838, 838, 838, 838,
838, 838, 838, 838, 838, 718, 838, 718, 838, 838,
838, 720, 838, 720, 751, 838, 838, 838, 838, 838,
718, 751, 754, 838, 838, 838, 838, 838, 720, 754,
718, 720, 783, 838, 838, 783, 786, 838, 838, 786,
801, 838, 838, 801, 804, 838, 838, 804, 838, 821,
821, 821, 821, 838, 838, 838, 821, 821, 828, 828,
828, 828, 838, 838, 838, 828, 828, 838, 838, 838,
838, 838, 838, 838, 838, 838, 838, 838, 838, 838,
838, 838, 838, 838, 838, 838, 838, 838, 838, 838,
838, 838, 838, 838, 838, 838, 838, 838, 838, 838,
838, 838, 838, 838, 838, 838, 838, 838, 838, 838,
838, 838, 838, 838, 838, 838, 838, 838, 838, 838,
838, 838, 838, 838, 838, 838, 838, 838, 838, 838,
838, 838, 838, 838, 838, 838, 838, 838, 838, 838,
838, 838, 838, 838, 838, 838, 838, 838, 838, 838,
838, 838, 838, 838, 838, 838, 838, 838, 838, 838,
838, 838, 838, 838, 838, 838, 838, 838, 838, 838,
838, 838, 838, 838, 838, 838, 838, 838, 838, 838,
838, 838, 838, 838, 838, 838, 838, 838, 838, 838,
838, 838, 838, 838, 838, 838, 838, 838, 838, 838,
838, 838, 838, 838, 838, 838, 838, 838, 838, 838,
838, 838, 838, 838, 838, 838, 838, 838, 838, 838,
838, 838, 838, 838, 838, 838, 838, 838, 838, 838,
838, 838, 838, 838, 838, 838, 838, 838, 838, 838,
838, 838, 838, 838, 838, 838, 838, 838, 838, 838,
838, 838, 838, 838, 838, 838, 838, 838, 838, 838,
838, 838, 838, 838, 838, 838, 838, 838, 838, 838,
838, 838, 838, 838, 838, 838, 838, 838, 838, 838,
838, 838, 838, 838, 838, 838, 838, 838, 838, 838,
838, 838, 838, 838, 838, 838, 838, 838, 838, 838,
838, 838, 838, 838, 838, 838, 838, 838, 838, 838,
838, 838, 838, 838, 838, 838, 838, 838, 838, 838,
838, 838, 838, 838, 838, 838, 838, 838, 838, 838,
838, 838, 838, 838, 838, 838, 838, 838, 838, 838,
838, 838, 838, 838, 838, 838, 838, 838, 838, 838,
838, 838, 838, 838, 838, 838, 838, 838, 838, 838,
838, 838, 838, 838, 838, 838, 838, 838, 838, 838,
838, 838, 838, 838, 838, 838, 838, 838, 838, 838,
838, 838, 838, 838, 838, 838, 838, 838, 838, 838,
838, 838, 838, 838, 838, 838, 838, 838, 838, 838,
838, 838, 838, 838, 838, 838, 838, 838, 838, 838,
838, 838, 838, 838, 838, 838, 838, 838, 838, 838,
838, 838, 838, 838, 838, 838, 838, 838, 838, 838,
838, 838, 838, 838, 838, 838, 838, 838, 838, 838,
838, 838, 681, 682, 683, 684, 685, 686, 687, 688,
689, 690, 691, 692, 693, 694, 695, 696, 697, 698,
704, 713, 714, 715, 699, 705, 710, 700, 706, 702,
708, 701, 707, 703, 709, 711, 712, 716, 717, 722,
728, 719, 734, 721, 735, 723, 729, 724, 730, 726,
732, 725, 731, 727, 733, 736, 742, 748, 750, 752,
749, 753, 755, 737, 743, 738, 744, 740, 746, 739,
745, 741, 747, 756, 762, 768, 769, 757, 763, 758,
764, 760, 766, 759, 765, 761, 767, 770, 776, 782,
784, 785, 787, 771, 777, 772, 778, 774, 780, 773,
779, 775, 781, 788, 794, 800, 802, 803, 805, 789,
795, 790, 796, 792, 798, 791, 797, 793, 799, 806,
818, 822, 823, 824, 832, 834, 836, 819, 820, 807,
813, 825, 829, 830, 831, 833, 835, 837, 826, 827,
808, 814, 810, 816, 809, 815, 811, 817, 812,
};
#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[] = {
"$", "GEOJSON_NEWLINE", "GEOJSON_OPEN_BRACE", "GEOJSON_TYPE",
"GEOJSON_COLON", "GEOJSON_POINT", "GEOJSON_COMMA", "GEOJSON_COORDS",
"GEOJSON_CLOSE_BRACE", "GEOJSON_BBOX", "GEOJSON_OPEN_BRACKET",
"GEOJSON_CLOSE_BRACKET",
"GEOJSON_CRS", "GEOJSON_NAME", "GEOJSON_PROPS", "GEOJSON_NUM",
"GEOJSON_SHORT_SRID", "GEOJSON_LONG_SRID", "GEOJSON_LINESTRING",
"GEOJSON_POLYGON",
"GEOJSON_MULTIPOINT", "GEOJSON_MULTILINESTRING", "GEOJSON_MULTIPOLYGON",
"GEOJSON_GEOMETRYCOLLECTION",
"GEOJSON_GEOMS", "error", "main", "in",
"state", "program", "geo_text", "point",
"pointz", "linestring", "linestringz", "polygon",
"polygonz", "multipoint", "multipointz", "multilinestring",
"multilinestringz", "multipolygon", "multipolygonz", "geocoll",
"geocollz", "point_coordxy", "bbox", "short_crs",
"long_crs", "point_coordxyz", "coord", "short_srid",
"long_srid", "extra_pointsxy", "extra_pointsxyz", "linestring_text",
"linestring_textz", "polygon_text", "polygon_textz", "ring",
"extra_rings", "ringz", "extra_ringsz", "multipoint_text",
"multipoint_textz", "multilinestring_text", "multilinestring_textz",
"multilinestring_text2",
"multilinestring_textz2", "multipolygon_text", "multipolygon_textz",
"multipolygon_text2",
"multipolygon_textz2", "geocoll_text", "geocoll_textz", "coll_point",
"geocoll_text2", "coll_linestring", "coll_polygon", "coll_pointz",
"geocoll_textz2", "coll_linestringz", "coll_polygonz",
};
#endif
#ifndef NDEBUG
static const char *const yyRuleName[] = {
"main ::= in",
"in ::=",
"in ::= in state GEOJSON_NEWLINE",
"state ::= program",
"program ::= geo_text",
"geo_text ::= point",
"geo_text ::= pointz",
"geo_text ::= linestring",
"geo_text ::= linestringz",
"geo_text ::= polygon",
"geo_text ::= polygonz",
"geo_text ::= multipoint",
"geo_text ::= multipointz",
"geo_text ::= multilinestring",
"geo_text ::= multilinestringz",
"geo_text ::= multipolygon",
"geo_text ::= multipolygonz",
"geo_text ::= geocoll",
"geo_text ::= geocollz",
"point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE",
"point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE",
"point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE",
"point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE",
"point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE",
"point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE",
"pointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE",
"pointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE",
"pointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE",
"pointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE",
"point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE",
"point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE",
"bbox ::= coord GEOJSON_COMMA coord GEOJSON_COMMA coord GEOJSON_COMMA coord",
"short_crs ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_NAME GEOJSON_COMMA GEOJSON_PROPS GEOJSON_COLON GEOJSON_OPEN_BRACE GEOJSON_NAME GEOJSON_COLON short_srid GEOJSON_CLOSE_BRACE GEOJSON_CLOSE_BRACE",
"long_crs ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_NAME GEOJSON_COMMA GEOJSON_PROPS GEOJSON_COLON GEOJSON_OPEN_BRACE GEOJSON_NAME GEOJSON_COLON long_srid GEOJSON_CLOSE_BRACE GEOJSON_CLOSE_BRACE",
"point_coordxy ::= GEOJSON_OPEN_BRACKET coord GEOJSON_COMMA coord GEOJSON_CLOSE_BRACKET",
"point_coordxyz ::= GEOJSON_OPEN_BRACKET coord GEOJSON_COMMA coord GEOJSON_COMMA coord GEOJSON_CLOSE_BRACKET",
"coord ::= GEOJSON_NUM",
"short_srid ::= GEOJSON_SHORT_SRID",
"long_srid ::= GEOJSON_LONG_SRID",
"extra_pointsxy ::=",
"extra_pointsxy ::= GEOJSON_COMMA point_coordxy extra_pointsxy",
"extra_pointsxyz ::=",
"extra_pointsxyz ::= GEOJSON_COMMA point_coordxyz extra_pointsxyz",
"linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE",
"linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE",
"linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE",
"linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE",
"linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE",
"linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE",
"linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE",
"linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE",
"linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE",
"linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE",
"linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE",
"linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE",
"linestring_text ::= GEOJSON_OPEN_BRACKET point_coordxy GEOJSON_COMMA point_coordxy extra_pointsxy GEOJSON_CLOSE_BRACKET",
"linestring_textz ::= GEOJSON_OPEN_BRACKET point_coordxyz GEOJSON_COMMA point_coordxyz extra_pointsxyz GEOJSON_CLOSE_BRACKET",
"polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE",
"polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE",
"polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE",
"polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE",
"polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE",
"polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE",
"polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE",
"polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE",
"polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE",
"polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE",
"polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE",
"polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE",
"polygon_text ::= GEOJSON_OPEN_BRACKET ring extra_rings GEOJSON_CLOSE_BRACKET",
"polygon_textz ::= GEOJSON_OPEN_BRACKET ringz extra_ringsz GEOJSON_CLOSE_BRACKET",
"ring ::= GEOJSON_OPEN_BRACKET point_coordxy GEOJSON_COMMA point_coordxy GEOJSON_COMMA point_coordxy GEOJSON_COMMA point_coordxy extra_pointsxy GEOJSON_CLOSE_BRACKET",
"extra_rings ::=",
"extra_rings ::= GEOJSON_COMMA ring extra_rings",
"ringz ::= GEOJSON_OPEN_BRACKET point_coordxyz GEOJSON_COMMA point_coordxyz GEOJSON_COMMA point_coordxyz GEOJSON_COMMA point_coordxyz extra_pointsxyz GEOJSON_CLOSE_BRACKET",
"extra_ringsz ::=",
"extra_ringsz ::= GEOJSON_COMMA ringz extra_ringsz",
"multipoint ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text GEOJSON_CLOSE_BRACE",
"multipoint ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text GEOJSON_CLOSE_BRACE",
"multipoint ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text GEOJSON_CLOSE_BRACE",
"multipoint ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text GEOJSON_CLOSE_BRACE",
"multipoint ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text GEOJSON_CLOSE_BRACE",
"multipoint ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text GEOJSON_CLOSE_BRACE",
"multipointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz GEOJSON_CLOSE_BRACE",
"multipointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz GEOJSON_CLOSE_BRACE",
"multipointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz GEOJSON_CLOSE_BRACE",
"multipointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz GEOJSON_CLOSE_BRACE",
"multipointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz GEOJSON_CLOSE_BRACE",
"multipointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz GEOJSON_CLOSE_BRACE",
"multipoint_text ::= GEOJSON_OPEN_BRACKET point_coordxy extra_pointsxy GEOJSON_CLOSE_BRACKET",
"multipoint_textz ::= GEOJSON_OPEN_BRACKET point_coordxyz extra_pointsxyz GEOJSON_CLOSE_BRACKET",
"multilinestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text GEOJSON_CLOSE_BRACE",
"multilinestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text GEOJSON_CLOSE_BRACE",
"multilinestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text GEOJSON_CLOSE_BRACE",
"multilinestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text GEOJSON_CLOSE_BRACE",
"multilinestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text GEOJSON_CLOSE_BRACE",
"multilinestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text GEOJSON_CLOSE_BRACE",
"multilinestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz GEOJSON_CLOSE_BRACE",
"multilinestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz GEOJSON_CLOSE_BRACE",
"multilinestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz GEOJSON_CLOSE_BRACE",
"multilinestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz GEOJSON_CLOSE_BRACE",
"multilinestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz GEOJSON_CLOSE_BRACE",
"multilinestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz GEOJSON_CLOSE_BRACE",
"multilinestring_text ::= GEOJSON_OPEN_BRACKET linestring_text multilinestring_text2 GEOJSON_CLOSE_BRACKET",
"multilinestring_text2 ::=",
"multilinestring_text2 ::= GEOJSON_COMMA linestring_text multilinestring_text2",
"multilinestring_textz ::= GEOJSON_OPEN_BRACKET linestring_textz multilinestring_textz2 GEOJSON_CLOSE_BRACKET",
"multilinestring_textz2 ::=",
"multilinestring_textz2 ::= GEOJSON_COMMA linestring_textz multilinestring_textz2",
"multipolygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text GEOJSON_CLOSE_BRACE",
"multipolygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text GEOJSON_CLOSE_BRACE",
"multipolygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text GEOJSON_CLOSE_BRACE",
"multipolygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text GEOJSON_CLOSE_BRACE",
"multipolygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text GEOJSON_CLOSE_BRACE",
"multipolygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text GEOJSON_CLOSE_BRACE",
"multipolygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz GEOJSON_CLOSE_BRACE",
"multipolygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz GEOJSON_CLOSE_BRACE",
"multipolygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz GEOJSON_CLOSE_BRACE",
"multipolygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz GEOJSON_CLOSE_BRACE",
"multipolygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz GEOJSON_CLOSE_BRACE",
"multipolygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz GEOJSON_CLOSE_BRACE",
"multipolygon_text ::= GEOJSON_OPEN_BRACKET polygon_text multipolygon_text2 GEOJSON_CLOSE_BRACKET",
"multipolygon_text2 ::=",
"multipolygon_text2 ::= GEOJSON_COMMA polygon_text multipolygon_text2",
"multipolygon_textz ::= GEOJSON_OPEN_BRACKET polygon_textz multipolygon_textz2 GEOJSON_CLOSE_BRACKET",
"multipolygon_textz2 ::=",
"multipolygon_textz2 ::= GEOJSON_COMMA polygon_textz multipolygon_textz2",
"geocoll ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text GEOJSON_CLOSE_BRACE",
"geocoll ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text GEOJSON_CLOSE_BRACE",
"geocoll ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text GEOJSON_CLOSE_BRACE",
"geocoll ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text GEOJSON_CLOSE_BRACE",
"geocoll ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text GEOJSON_CLOSE_BRACE",
"geocoll ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text GEOJSON_CLOSE_BRACE",
"geocollz ::= GEOJSON_GEOMETRYCOLLECTION geocoll_textz",
"geocollz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_textz GEOJSON_CLOSE_BRACE",
"geocollz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_textz GEOJSON_CLOSE_BRACE",
"geocollz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_textz GEOJSON_CLOSE_BRACE",
"geocollz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_textz GEOJSON_CLOSE_BRACE",
"geocollz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_textz GEOJSON_CLOSE_BRACE",
"geocoll_text ::= GEOJSON_OPEN_BRACKET coll_point geocoll_text2 GEOJSON_CLOSE_BRACKET",
"geocoll_text ::= GEOJSON_OPEN_BRACKET coll_linestring geocoll_text2 GEOJSON_CLOSE_BRACKET",
"geocoll_text ::= GEOJSON_OPEN_BRACKET coll_polygon geocoll_text2 GEOJSON_CLOSE_BRACKET",
"geocoll_text2 ::=",
"geocoll_text2 ::= GEOJSON_COMMA coll_point geocoll_text2",
"geocoll_text2 ::= GEOJSON_COMMA coll_linestring geocoll_text2",
"geocoll_text2 ::= GEOJSON_COMMA coll_polygon geocoll_text2",
"geocoll_textz ::= GEOJSON_OPEN_BRACKET coll_pointz geocoll_textz2 GEOJSON_CLOSE_BRACKET",
"geocoll_textz ::= GEOJSON_OPEN_BRACKET coll_linestringz geocoll_textz2 GEOJSON_CLOSE_BRACKET",
"geocoll_textz ::= GEOJSON_OPEN_BRACKET coll_polygonz geocoll_textz2 GEOJSON_CLOSE_BRACKET",
"geocoll_textz2 ::=",
"geocoll_textz2 ::= GEOJSON_COMMA coll_pointz geocoll_textz2",
"geocoll_textz2 ::= GEOJSON_COMMA coll_linestringz geocoll_textz2",
"geocoll_textz2 ::= GEOJSON_COMMA coll_polygonz geocoll_textz2",
"coll_point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE",
"coll_pointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE",
"coll_linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE",
"coll_linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE",
"coll_polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE",
"coll_polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE",
};
#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
)
{
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[] =
{
{
26, 1},
{
27, 0},
{
27, 3},
{
28, 1},
{
29, 1},
{
30, 1},
{
30, 1},
{
30, 1},
{
30, 1},
{
30, 1},
{
30, 1},
{
30, 1},
{
30, 1},
{
30, 1},
{
30, 1},
{
30, 1},
{
30, 1},
{
30, 1},
{
30, 1},
{
31, 9},
{
31, 15},
{
31, 13},
{
31, 13},
{
31, 19},
{
31, 19},
{
32, 9},
{
32, 15},
{
32, 13},
{
32, 13},
{
31, 19},
{
31, 19},
{
46, 7},
{
47, 13},
{
48, 13},
{
45, 5},
{
49, 7},
{
50, 1},
{
51, 1},
{
52, 1},
{
53, 0},
{
53, 3},
{
54, 0},
{
54, 3},
{
33, 9},
{
33, 15},
{
33, 13},
{
33, 13},
{
33, 19},
{
33, 19},
{
34, 9},
{
34, 15},
{
34, 13},
{
34, 13},
{
34, 19},
{
34, 19},
{
55, 6},
{
56, 6},
{
35, 9},
{
35, 15},
{
35, 13},
{
35, 13},
{
35, 19},
{
35, 19},
{
36, 9},
{
36, 15},
{
36, 13},
{
36, 13},
{
36, 19},
{
36, 19},
{
57, 4},
{
58, 4},
{
59, 10},
{
60, 0},
{
60, 3},
{
61, 10},
{
62, 0},
{
62, 3},
{
37, 9},
{
37, 15},
{
37, 13},
{
37, 13},
{
37, 19},
{
37, 19},
{
38, 9},
{
38, 15},
{
38, 13},
{
38, 13},
{
38, 19},
{
38, 19},
{
63, 4},
{
64, 4},
{
39, 9},
{
39, 15},
{
39, 13},
{
39, 13},
{
39, 19},
{
39, 19},
{
40, 9},
{
40, 15},
{
40, 13},
{
40, 13},
{
40, 19},
{
40, 19},
{
65, 4},
{
67, 0},
{
67, 3},
{
66, 4},
{
68, 0},
{
68, 3},
{
41, 9},
{
41, 15},
{
41, 13},
{
41, 13},
{
41, 19},
{
41, 19},
{
42, 9},
{
42, 15},
{
42, 13},
{
42, 13},
{
42, 19},
{
42, 19},
{
69, 4},
{
71, 0},
{
71, 3},
{
70, 4},
{
72, 0},
{
72, 3},
{
43, 9},
{
43, 15},
{
43, 13},
{
43, 13},
{
43, 19},
{
43, 19},
{
44, 2},
{
44, 15},
{
44, 13},
{
44, 13},
{
44, 19},
{
44, 19},
{
73, 4},
{
73, 4},
{
73, 4},
{
76, 0},
{
76, 3},
{
76, 3},
{
76, 3},
{
74, 4},
{
74, 4},
{
74, 4},
{
80, 0},
{
80, 3},
{
80, 3},
{
80, 3},
{
75, 9},
{
79, 9},
{
77, 9},
{
81, 9},
{
78, 9},
{
82, 9},};
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 5:
case 6:
yytestcase (yyruleno == 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);
{
p_data->result = yymsp[0].minor.yy0;
}
break;
case 19:
case 20:
yytestcase (yyruleno == 20);
case 25:
yytestcase (yyruleno == 25);
case 26:
yytestcase (yyruleno == 26);
{
yygotominor.yy0 =
geoJSON_buildGeomFromPoint (p_data,
(gaiaPointPtr) yymsp[-1].minor.
yy0);
}
break;
case 21:
case 22:
yytestcase (yyruleno == 22);
case 27:
yytestcase (yyruleno == 27);
case 28:
yytestcase (yyruleno == 28);
{
yygotominor.yy0 =
geoJSON_buildGeomFromPointSrid (p_data,
(gaiaPointPtr)
yymsp[-1].minor.yy0,
(int *) yymsp[-5].minor.yy0);
}
break;
case 23:
case 24:
yytestcase (yyruleno == 24);
case 29:
yytestcase (yyruleno == 29);
case 30:
yytestcase (yyruleno == 30);
{
yygotominor.yy0 =
geoJSON_buildGeomFromPointSrid (p_data,
(gaiaPointPtr)
yymsp[-1].minor.yy0,
(int *) yymsp[-11].minor.yy0);
}
break;
case 32:
case 33:
yytestcase (yyruleno == 33);
{
yygotominor.yy0 = yymsp[-2].minor.yy0;
}
break;
case 34:
{
yygotominor.yy0 =
(void *) geoJSON_point_xy (p_data,
(double *) yymsp[-3].minor.yy0,
(double *) yymsp[-1].minor.yy0);
}
break;
case 35:
{
yygotominor.yy0 =
(void *) geoJSON_point_xyz (p_data,
(double *) yymsp[-5].minor.yy0,
(double *) yymsp[-3].minor.yy0,
(double *) yymsp[-1].minor.yy0);
}
break;
case 36:
case 37:
yytestcase (yyruleno == 37);
case 38:
yytestcase (yyruleno == 38);
case 133:
yytestcase (yyruleno == 133);
{
yygotominor.yy0 = yymsp[0].minor.yy0;
}
break;
case 39:
case 41:
yytestcase (yyruleno == 41);
case 72:
yytestcase (yyruleno == 72);
case 75:
yytestcase (yyruleno == 75);
case 104:
yytestcase (yyruleno == 104);
case 107:
yytestcase (yyruleno == 107);
case 122:
yytestcase (yyruleno == 122);
case 125:
yytestcase (yyruleno == 125);
case 142:
yytestcase (yyruleno == 142);
case 149:
yytestcase (yyruleno == 149);
{
yygotominor.yy0 = NULL;
}
break;
case 40:
case 42:
yytestcase (yyruleno == 42);
{
((gaiaPointPtr) yymsp[-1].minor.yy0)->Next =
(gaiaPointPtr) yymsp[0].minor.yy0;
yygotominor.yy0 = yymsp[-1].minor.yy0;
}
break;
case 43:
case 44:
yytestcase (yyruleno == 44);
case 49:
yytestcase (yyruleno == 49);
case 50:
yytestcase (yyruleno == 50);
{
yygotominor.yy0 =
geoJSON_buildGeomFromLinestring (p_data,
(gaiaLinestringPtr)
yymsp[-1].minor.yy0);
}
break;
case 45:
case 46:
yytestcase (yyruleno == 46);
case 51:
yytestcase (yyruleno == 51);
case 52:
yytestcase (yyruleno == 52);
{
yygotominor.yy0 =
geoJSON_buildGeomFromLinestringSrid (p_data,
(gaiaLinestringPtr)
yymsp[-1].minor.yy0,
(int *) yymsp[-5].minor.
yy0);
}
break;
case 47:
case 48:
yytestcase (yyruleno == 48);
case 53:
yytestcase (yyruleno == 53);
case 54:
yytestcase (yyruleno == 54);
{
yygotominor.yy0 =
geoJSON_buildGeomFromLinestringSrid (p_data,
(gaiaLinestringPtr)
yymsp[-1].minor.yy0,
(int *) yymsp[-11].minor.
yy0);
}
break;
case 55:
{
((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 *) geoJSON_linestring_xy (p_data,
(gaiaPointPtr)
yymsp[-4].minor.yy0);
}
break;
case 56:
{
((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 *) geoJSON_linestring_xyz (p_data,
(gaiaPointPtr)
yymsp[-4].minor.yy0);
}
break;
case 57:
case 58:
yytestcase (yyruleno == 58);
case 63:
yytestcase (yyruleno == 63);
case 64:
yytestcase (yyruleno == 64);
{
yygotominor.yy0 =
geoJSON_buildGeomFromPolygon (p_data,
(gaiaPolygonPtr)
yymsp[-1].minor.yy0);
}
break;
case 59:
case 60:
yytestcase (yyruleno == 60);
case 65:
yytestcase (yyruleno == 65);
case 66:
yytestcase (yyruleno == 66);
{
yygotominor.yy0 =
geoJSON_buildGeomFromPolygonSrid (p_data,
(gaiaPolygonPtr)
yymsp[-1].minor.yy0,
(int *) yymsp[-5].minor.
yy0);
}
break;
case 61:
case 62:
yytestcase (yyruleno == 62);
case 67:
yytestcase (yyruleno == 67);
case 68:
yytestcase (yyruleno == 68);
{
yygotominor.yy0 =
geoJSON_buildGeomFromPolygonSrid (p_data,
(gaiaPolygonPtr)
yymsp[-1].minor.yy0,
(int *) yymsp[-11].minor.
yy0);
}
break;
case 69:
{
((gaiaRingPtr) yymsp[-2].minor.yy0)->Next =
(gaiaRingPtr) yymsp[-1].minor.yy0;
yygotominor.yy0 =
(void *) geoJSON_polygon_xy (p_data,
(gaiaRingPtr) yymsp[-2].minor.
yy0);
}
break;
case 70:
{
((gaiaRingPtr) yymsp[-2].minor.yy0)->Next =
(gaiaRingPtr) yymsp[-1].minor.yy0;
yygotominor.yy0 =
(void *) geoJSON_polygon_xyz (p_data,
(gaiaRingPtr) yymsp[-2].minor.
yy0);
}
break;
case 71:
{
((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 *) geoJSON_ring_xy (p_data,
(gaiaPointPtr) yymsp[-8].minor.yy0);
}
break;
case 73:
case 76:
yytestcase (yyruleno == 76);
{
((gaiaRingPtr) yymsp[-1].minor.yy0)->Next =
(gaiaRingPtr) yymsp[0].minor.yy0;
yygotominor.yy0 = yymsp[-1].minor.yy0;
}
break;
case 74:
{
((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 *) geoJSON_ring_xyz (p_data,
(gaiaPointPtr) yymsp[-8].minor.
yy0);
}
break;
case 77:
case 78:
yytestcase (yyruleno == 78);
case 83:
yytestcase (yyruleno == 83);
case 84:
yytestcase (yyruleno == 84);
case 91:
yytestcase (yyruleno == 91);
case 92:
yytestcase (yyruleno == 92);
case 97:
yytestcase (yyruleno == 97);
case 98:
yytestcase (yyruleno == 98);
case 109:
yytestcase (yyruleno == 109);
case 110:
yytestcase (yyruleno == 110);
case 115:
yytestcase (yyruleno == 115);
case 116:
yytestcase (yyruleno == 116);
case 127:
yytestcase (yyruleno == 127);
case 128:
yytestcase (yyruleno == 128);
case 134:
yytestcase (yyruleno == 134);
{
yygotominor.yy0 = yymsp[-1].minor.yy0;
}
break;
case 79:
case 80:
yytestcase (yyruleno == 80);
case 85:
yytestcase (yyruleno == 85);
case 86:
yytestcase (yyruleno == 86);
case 93:
yytestcase (yyruleno == 93);
case 94:
yytestcase (yyruleno == 94);
case 99:
yytestcase (yyruleno == 99);
case 100:
yytestcase (yyruleno == 100);
case 111:
yytestcase (yyruleno == 111);
case 112:
yytestcase (yyruleno == 112);
case 117:
yytestcase (yyruleno == 117);
case 118:
yytestcase (yyruleno == 118);
case 129:
yytestcase (yyruleno == 129);
case 130:
yytestcase (yyruleno == 130);
case 135:
yytestcase (yyruleno == 135);
case 136:
yytestcase (yyruleno == 136);
{
yygotominor.yy0 =
(void *) geoJSON_setSrid ((gaiaGeomCollPtr) yymsp[-1].minor.
yy0, (int *) yymsp[-5].minor.yy0);
}
break;
case 81:
case 82:
yytestcase (yyruleno == 82);
case 87:
yytestcase (yyruleno == 87);
case 88:
yytestcase (yyruleno == 88);
case 95:
yytestcase (yyruleno == 95);
case 96:
yytestcase (yyruleno == 96);
case 101:
yytestcase (yyruleno == 101);
case 102:
yytestcase (yyruleno == 102);
case 113:
yytestcase (yyruleno == 113);
case 114:
yytestcase (yyruleno == 114);
case 119:
yytestcase (yyruleno == 119);
case 120:
yytestcase (yyruleno == 120);
case 131:
yytestcase (yyruleno == 131);
case 132:
yytestcase (yyruleno == 132);
case 137:
yytestcase (yyruleno == 137);
case 138:
yytestcase (yyruleno == 138);
{
yygotominor.yy0 =
(void *) geoJSON_setSrid ((gaiaGeomCollPtr) yymsp[-1].minor.
yy0, (int *) yymsp[-11].minor.yy0);
}
break;
case 89:
{
((gaiaPointPtr) yymsp[-2].minor.yy0)->Next =
(gaiaPointPtr) yymsp[-1].minor.yy0;
yygotominor.yy0 =
(void *) geoJSON_multipoint_xy (p_data,
(gaiaPointPtr)
yymsp[-2].minor.yy0);
}
break;
case 90:
{
((gaiaPointPtr) yymsp[-2].minor.yy0)->Next =
(gaiaPointPtr) yymsp[-1].minor.yy0;
yygotominor.yy0 =
(void *) geoJSON_multipoint_xyz (p_data,
(gaiaPointPtr)
yymsp[-2].minor.yy0);
}
break;
case 103:
{
((gaiaLinestringPtr) yymsp[-2].minor.yy0)->Next =
(gaiaLinestringPtr) yymsp[-1].minor.yy0;
yygotominor.yy0 =
(void *) geoJSON_multilinestring_xy (p_data,
(gaiaLinestringPtr)
yymsp[-2].minor.yy0);
}
break;
case 105:
case 108:
yytestcase (yyruleno == 108);
{
((gaiaLinestringPtr) yymsp[-1].minor.yy0)->Next =
(gaiaLinestringPtr) yymsp[0].minor.yy0;
yygotominor.yy0 = yymsp[-1].minor.yy0;
}
break;
case 106:
{
((gaiaLinestringPtr) yymsp[-2].minor.yy0)->Next =
(gaiaLinestringPtr) yymsp[-1].minor.yy0;
yygotominor.yy0 =
(void *) geoJSON_multilinestring_xyz (p_data,
(gaiaLinestringPtr)
yymsp[-2].minor.yy0);
}
break;
case 121:
{
((gaiaPolygonPtr) yymsp[-2].minor.yy0)->Next =
(gaiaPolygonPtr) yymsp[-1].minor.yy0;
yygotominor.yy0 =
(void *) geoJSON_multipolygon_xy (p_data,
(gaiaPolygonPtr)
yymsp[-2].minor.yy0);
}
break;
case 123:
case 126:
yytestcase (yyruleno == 126);
{
((gaiaPolygonPtr) yymsp[-1].minor.yy0)->Next =
(gaiaPolygonPtr) yymsp[0].minor.yy0;
yygotominor.yy0 = yymsp[-1].minor.yy0;
}
break;
case 124:
{
((gaiaPolygonPtr) yymsp[-2].minor.yy0)->Next =
(gaiaPolygonPtr) yymsp[-1].minor.yy0;
yygotominor.yy0 =
(void *) geoJSON_multipolygon_xyz (p_data,
(gaiaPolygonPtr)
yymsp[-2].minor.yy0);
}
break;
case 139:
case 140:
yytestcase (yyruleno == 140);
case 141:
yytestcase (yyruleno == 141);
{
((gaiaGeomCollPtr) yymsp[-2].minor.yy0)->Next =
(gaiaGeomCollPtr) yymsp[-1].minor.yy0;
yygotominor.yy0 =
(void *) geoJSON_geomColl_xy (p_data,
(gaiaGeomCollPtr)
yymsp[-2].minor.yy0);
}
break;
case 143:
case 144:
yytestcase (yyruleno == 144);
case 145:
yytestcase (yyruleno == 145);
case 150:
yytestcase (yyruleno == 150);
case 151:
yytestcase (yyruleno == 151);
case 152:
yytestcase (yyruleno == 152);
{
((gaiaGeomCollPtr) yymsp[-1].minor.yy0)->Next =
(gaiaGeomCollPtr) yymsp[0].minor.yy0;
yygotominor.yy0 = yymsp[-1].minor.yy0;
}
break;
case 146:
case 147:
yytestcase (yyruleno == 147);
case 148:
yytestcase (yyruleno == 148);
{
((gaiaGeomCollPtr) yymsp[-2].minor.yy0)->Next =
(gaiaGeomCollPtr) yymsp[-1].minor.yy0;
yygotominor.yy0 =
(void *) geoJSON_geomColl_xyz (p_data,
(gaiaGeomCollPtr)
yymsp[-2].minor.yy0);
}
break;
case 153:
case 154:
yytestcase (yyruleno == 154);
{
yygotominor.yy0 =
geoJSON_buildGeomFromPoint (p_data,
(gaiaPointPtr) yymsp[-1].minor.
yy0);
}
break;
case 155:
case 156:
yytestcase (yyruleno == 156);
{
yygotominor.yy0 =
geoJSON_buildGeomFromLinestring (p_data,
(gaiaLinestringPtr)
yymsp[-1].minor.yy0);
}
break;
case 157:
case 158:
yytestcase (yyruleno == 158);
{
yygotominor.yy0 =
geoJSON_buildGeomFromPolygon (p_data,
(gaiaPolygonPtr)
yymsp[-1].minor.yy0);
}
break;
default:
yytestcase (yyruleno == 0);
yytestcase (yyruleno == 1);
yytestcase (yyruleno == 2);
yytestcase (yyruleno == 3);
yytestcase (yyruleno == 4);
yytestcase (yyruleno == 31);
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->geoJson_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;
}