47 #define YYBISON_VERSION "2.5"
50 #define YYSKELETON_NAME "yacc.c"
62 #define YYLSP_NEEDED 1
65 #define yyparse ael_yyparse
66 #define yylex ael_yylex
67 #define yyerror ael_yyerror
68 #define yylval ael_yylval
69 #define yychar ael_yychar
70 #define yydebug ael_yydebug
71 #define yynerrs ael_yynerrs
72 #define yylloc ael_yylloc
102 #define ASTMM_LIBC ASTMM_REDIRECT
118 static void set_dads(
pval *dad,
pval *child_list);
119 void reset_parencount(yyscan_t yyscanner);
120 void reset_semicount(yyscan_t yyscanner);
121 void reset_argcount(yyscan_t yyscanner );
123 #define YYLEX_PARAM ((struct parse_io *)parseio)->scanner
124 #define YYERROR_VERBOSE 1
126 extern char *my_file;
128 int ael_is_funcname(
char *name);
130 static char *ael_token_subst(
const char *mess);
135 #line 136 "ael.tab.c"
143 #ifdef YYERROR_VERBOSE
144 # undef YYERROR_VERBOSE
145 # define YYERROR_VERBOSE 1
147 # define YYERROR_VERBOSE 1
151 #ifndef YYTOKEN_TABLE
152 # define YYTOKEN_TABLE 0
208 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
222 #line 223 "ael.tab.c"
224 # define YYSTYPE_IS_TRIVIAL 1
225 # define yystype YYSTYPE
226 # define YYSTYPE_IS_DECLARED 1
229 #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
237 # define yyltype YYLTYPE
238 # define YYLTYPE_IS_DECLARED 1
239 # define YYLTYPE_IS_TRIVIAL 1
250 int ael_yylex (
YYSTYPE * yylval_param,
YYLTYPE * yylloc_param ,
void * yyscanner);
253 pval *npval(pvaltype type,
int first_line,
int last_line,
254 int first_column,
int last_column);
269 #line 270 "ael.tab.c"
276 typedef YYTYPE_UINT8 yytype_uint8;
278 typedef unsigned char yytype_uint8;
282 typedef YYTYPE_INT8 yytype_int8;
283 #elif (defined __STDC__ || defined __C99__FUNC__ \
284 || defined __cplusplus || defined _MSC_VER)
285 typedef signed char yytype_int8;
287 typedef short int yytype_int8;
291 typedef YYTYPE_UINT16 yytype_uint16;
293 typedef unsigned short int yytype_uint16;
297 typedef YYTYPE_INT16 yytype_int16;
299 typedef short int yytype_int16;
303 # ifdef __SIZE_TYPE__
304 # define YYSIZE_T __SIZE_TYPE__
305 # elif defined size_t
306 # define YYSIZE_T size_t
307 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
308 || defined __cplusplus || defined _MSC_VER)
310 # define YYSIZE_T size_t
312 # define YYSIZE_T unsigned int
316 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
319 # if defined YYENABLE_NLS && YYENABLE_NLS
321 # include <libintl.h>
322 # define YY_(msgid) dgettext ("bison-runtime", msgid)
326 # define YY_(msgid) msgid
331 #if ! defined lint || defined __GNUC__
332 # define YYUSE(e) ((void) (e))
341 #if (defined __STDC__ || defined __C99__FUNC__ \
342 || defined __cplusplus || defined _MSC_VER)
355 #if ! defined yyoverflow || YYERROR_VERBOSE
359 # ifdef YYSTACK_USE_ALLOCA
360 # if YYSTACK_USE_ALLOCA
362 # define YYSTACK_ALLOC __builtin_alloca
363 # elif defined __BUILTIN_VA_ARG_INCR
366 # define YYSTACK_ALLOC __alloca
367 # elif defined _MSC_VER
369 # define alloca _alloca
371 # define YYSTACK_ALLOC alloca
372 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
373 || defined __cplusplus || defined _MSC_VER)
375 # ifndef EXIT_SUCCESS
376 # define EXIT_SUCCESS 0
383 # ifdef YYSTACK_ALLOC
385 # define YYSTACK_FREE(Ptr) do { ; } while (YYID (0))
386 # ifndef YYSTACK_ALLOC_MAXIMUM
391 # define YYSTACK_ALLOC_MAXIMUM 4032
394 # define YYSTACK_ALLOC YYMALLOC
395 # define YYSTACK_FREE YYFREE
396 # ifndef YYSTACK_ALLOC_MAXIMUM
397 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
399 # if (defined __cplusplus && ! defined EXIT_SUCCESS \
400 && ! ((defined YYMALLOC || defined malloc) \
401 && (defined YYFREE || defined free)))
403 # ifndef EXIT_SUCCESS
404 # define EXIT_SUCCESS 0
408 # define YYMALLOC malloc
409 # if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
410 || defined __cplusplus || defined _MSC_VER)
411 void *malloc (YYSIZE_T);
416 # if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
417 || defined __cplusplus || defined _MSC_VER)
425 #if (! defined yyoverflow \
426 && (! defined __cplusplus \
427 || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \
428 && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
433 yytype_int16 yyss_alloc;
439 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
443 # define YYSTACK_BYTES(N) \
444 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
445 + 2 * YYSTACK_GAP_MAXIMUM)
447 # define YYCOPY_NEEDED 1
454 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
457 YYSIZE_T yynewbytes; \
458 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
459 Stack = &yyptr->Stack_alloc; \
460 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
461 yyptr += yynewbytes / sizeof (*yyptr); \
467 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
471 # if defined __GNUC__ && 1 < __GNUC__
472 # define YYCOPY(To, From, Count) \
473 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
475 # define YYCOPY(To, From, Count) \
479 for (yyi = 0; yyi < (Count); yyi++) \
480 (To)[yyi] = (From)[yyi]; \
499 #define YYNSTATES 283
503 #define YYMAXUTOK 298
505 #define YYTRANSLATE(YYX) \
506 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
509 static const yytype_uint8 yytranslate[] =
511 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
512 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
513 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
514 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
515 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
516 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
517 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
518 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
519 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
520 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
521 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
522 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
523 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
524 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
525 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
526 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
527 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
528 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
529 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
530 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
531 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
532 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
533 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
534 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
535 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
536 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
537 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
538 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
539 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
540 35, 36, 37, 38, 39, 40, 41, 42, 43
546 static const yytype_uint16 yyprhs[] =
548 0, 0, 3, 5, 7, 10, 13, 15, 17, 19,
549 21, 23, 25, 32, 34, 35, 37, 40, 43, 52,
550 57, 58, 61, 64, 65, 71, 72, 79, 80, 82,
551 86, 89, 90, 93, 96, 98, 100, 102, 104, 106,
552 108, 110, 113, 115, 120, 124, 130, 135, 143, 152,
553 153, 156, 159, 165, 167, 175, 176, 181, 184, 187,
554 192, 194, 197, 199, 202, 206, 210, 214, 216, 219,
555 223, 225, 228, 232, 238, 242, 244, 246, 250, 254,
556 257, 258, 259, 260, 273, 277, 279, 283, 286, 289,
557 290, 296, 299, 302, 305, 309, 311, 314, 315, 317,
558 321, 325, 331, 337, 343, 349, 350, 353, 356, 361,
559 362, 368, 372, 373, 377, 381, 384, 386, 387, 389,
560 390, 394, 395, 398, 403, 407, 412, 413, 416, 418,
561 420, 426, 431, 436, 437, 441, 447, 450, 452, 456,
566 static const yytype_int8 yyrhs[] =
568 45, 0, -1, 46, -1, 47, -1, 46, 47, -1,
569 46, 1, -1, 49, -1, 51, -1, 52, -1, 8,
570 -1, 43, -1, 37, -1, 50, 3, 48, 4, 59,
571 5, -1, 23, -1, -1, 24, -1, 24, 23, -1,
572 23, 24, -1, 15, 43, 6, 58, 7, 4, 92,
573 5, -1, 16, 4, 53, 5, -1, -1, 53, 54,
574 -1, 1, 53, -1, -1, 43, 9, 55, 43, 8,
575 -1, -1, 42, 43, 9, 57, 43, 8, -1, -1,
576 43, -1, 58, 10, 43, -1, 58, 1, -1, -1,
577 59, 60, -1, 1, 59, -1, 62, -1, 99, -1,
578 94, -1, 95, -1, 61, -1, 54, -1, 56, -1,
579 43, 1, -1, 8, -1, 17, 25, 43, 8, -1,
580 43, 25, 74, -1, 43, 14, 43, 25, 74, -1,
581 31, 43, 25, 74, -1, 32, 6, 70, 7, 43,
582 25, 74, -1, 31, 32, 6, 70, 7, 43, 25,
583 74, -1, -1, 63, 74, -1, 1, 63, -1, 71,
584 11, 71, 11, 71, -1, 43, -1, 64, 13, 71,
585 13, 71, 13, 71, -1, -1, 6, 67, 69, 7,
586 -1, 19, 66, -1, 22, 66, -1, 20, 6, 65,
587 7, -1, 43, -1, 43, 43, -1, 43, -1, 70,
588 43, -1, 70, 11, 43, -1, 70, 12, 43, -1,
589 70, 14, 43, -1, 43, -1, 43, 43, -1, 43,
590 43, 43, -1, 43, -1, 43, 43, -1, 72, 11,
591 43, -1, 18, 66, 4, 90, 5, -1, 4, 63,
592 5, -1, 54, -1, 56, -1, 26, 80, 8, -1,
593 27, 82, 8, -1, 43, 11, -1, -1, -1, -1,
594 33, 6, 75, 43, 8, 76, 43, 8, 77, 43,
595 7, 74, -1, 34, 66, 74, -1, 73, -1, 12,
596 83, 8, -1, 87, 8, -1, 43, 8, -1, -1,
597 87, 9, 78, 43, 8, -1, 29, 8, -1, 28,
598 8, -1, 30, 8, -1, 68, 74, 79, -1, 8,
599 -1, 21, 74, -1, -1, 72, -1, 72, 13, 72,
600 -1, 72, 10, 72, -1, 72, 13, 72, 13, 72,
601 -1, 72, 10, 72, 10, 72, -1, 37, 13, 72,
602 13, 72, -1, 37, 10, 72, 10, 72, -1, -1,
603 10, 43, -1, 72, 81, -1, 72, 81, 14, 48,
604 -1, -1, 43, 6, 84, 89, 7, -1, 43, 6,
605 7, -1, -1, 43, 6, 86, -1, 85, 89, 7,
606 -1, 85, 7, -1, 43, -1, -1, 69, -1, -1,
607 89, 10, 88, -1, -1, 90, 91, -1, 35, 43,
608 11, 63, -1, 37, 11, 63, -1, 36, 43, 11,
609 63, -1, -1, 92, 93, -1, 74, -1, 99, -1,
610 38, 43, 4, 63, 5, -1, 39, 4, 96, 5,
611 -1, 40, 4, 96, 5, -1, -1, 96, 43, 8,
612 -1, 96, 43, 14, 43, 8, -1, 1, 96, -1,
613 48, -1, 48, 13, 65, -1, 97, 8, -1, 98,
614 97, 8, -1, 98, 1, -1, 41, 4, 98, 5,
619 static const yytype_uint16 yyrline[] =
621 0, 190, 190, 193, 194, 195, 198, 199, 200, 201,
622 204, 205, 208, 217, 218, 219, 220, 221, 224, 230,
623 236, 237, 238, 241, 241, 247, 247, 254, 255, 256,
624 257, 260, 261, 262, 265, 266, 267, 268, 269, 270,
625 271, 272, 273, 276, 281, 285, 293, 298, 303, 312,
626 313, 314, 320, 330, 334, 342, 342, 346, 349, 352,
627 363, 364, 376, 377, 386, 395, 404, 415, 416, 426,
628 439, 440, 449, 460, 469, 472, 473, 474, 477, 480,
629 483, 484, 485, 483, 491, 495, 496, 497, 498, 501,
630 501, 534, 535, 536, 537, 541, 544, 545, 548, 549,
631 552, 555, 559, 563, 567, 573, 574, 578, 581, 587,
632 587, 592, 600, 600, 611, 618, 621, 622, 625, 626,
633 629, 632, 633, 636, 640, 644, 650, 651, 654, 655,
634 656, 662, 667, 672, 673, 674, 685, 688, 689, 696,
639 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
642 static const char *
const yytname[] =
644 "$end",
"error",
"$undefined",
"KW_CONTEXT",
"LC",
"RC",
"LP",
"RP",
645 "SEMI",
"EQ",
"COMMA",
"COLON",
"AMPER",
"BAR",
"AT",
"KW_MACRO",
646 "KW_GLOBALS",
"KW_IGNOREPAT",
"KW_SWITCH",
"KW_IF",
"KW_IFTIME",
647 "KW_ELSE",
"KW_RANDOM",
"KW_ABSTRACT",
"KW_EXTEND",
"EXTENMARK",
648 "KW_GOTO",
"KW_JUMP",
"KW_RETURN",
"KW_BREAK",
"KW_CONTINUE",
649 "KW_REGEXTEN",
"KW_HINT",
"KW_FOR",
"KW_WHILE",
"KW_CASE",
"KW_PATTERN",
650 "KW_DEFAULT",
"KW_CATCH",
"KW_SWITCHES",
"KW_ESWITCHES",
"KW_INCLUDES",
651 "KW_LOCAL",
"word",
"$accept",
"file",
"objects",
"object",
652 "context_name",
"context",
"opt_abstract",
"macro",
"globals",
653 "global_statements",
"assignment",
"$@1",
"local_assignment",
"$@2",
654 "arglist",
"elements",
"element",
"ignorepat",
"extension",
"statements",
655 "timerange",
"timespec",
"test_expr",
"$@3",
"if_like_head",
"word_list",
656 "hint_word",
"word3_list",
"goto_word",
"switch_statement",
"statement",
657 "$@4",
"$@5",
"$@6",
"$@7",
"opt_else",
"target",
"opt_pri",
658 "jumptarget",
"macro_call",
"$@8",
"application_call_head",
"$@9",
659 "application_call",
"opt_word",
"eval_arglist",
"case_statements",
660 "case_statement",
"macro_statements",
"macro_statement",
"switches",
661 "eswitches",
"switchlist",
"included_entry",
"includeslist",
"includes", 0
668 static const yytype_uint16 yytoknum[] =
670 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
671 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
672 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
673 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
679 static const yytype_uint8 yyr1[] =
681 0, 44, 45, 46, 46, 46, 47, 47, 47, 47,
682 48, 48, 49, 50, 50, 50, 50, 50, 51, 52,
683 53, 53, 53, 55, 54, 57, 56, 58, 58, 58,
684 58, 59, 59, 59, 60, 60, 60, 60, 60, 60,
685 60, 60, 60, 61, 62, 62, 62, 62, 62, 63,
686 63, 63, 64, 64, 65, 67, 66, 68, 68, 68,
687 69, 69, 70, 70, 70, 70, 70, 71, 71, 71,
688 72, 72, 72, 73, 74, 74, 74, 74, 74, 74,
689 75, 76, 77, 74, 74, 74, 74, 74, 74, 78,
690 74, 74, 74, 74, 74, 74, 79, 79, 80, 80,
691 80, 80, 80, 80, 80, 81, 81, 82, 82, 84,
692 83, 83, 86, 85, 87, 87, 88, 88, 89, 89,
693 89, 90, 90, 91, 91, 91, 92, 92, 93, 93,
694 93, 94, 95, 96, 96, 96, 96, 97, 97, 98,
699 static const yytype_uint8 yyr2[] =
701 0, 2, 1, 1, 2, 2, 1, 1, 1, 1,
702 1, 1, 6, 1, 0, 1, 2, 2, 8, 4,
703 0, 2, 2, 0, 5, 0, 6, 0, 1, 3,
704 2, 0, 2, 2, 1, 1, 1, 1, 1, 1,
705 1, 2, 1, 4, 3, 5, 4, 7, 8, 0,
706 2, 2, 5, 1, 7, 0, 4, 2, 2, 4,
707 1, 2, 1, 2, 3, 3, 3, 1, 2, 3,
708 1, 2, 3, 5, 3, 1, 1, 3, 3, 2,
709 0, 0, 0, 12, 3, 1, 3, 2, 2, 0,
710 5, 2, 2, 2, 3, 1, 2, 0, 1, 3,
711 3, 5, 5, 5, 5, 0, 2, 2, 4, 0,
712 5, 3, 0, 3, 3, 2, 1, 0, 1, 0,
713 3, 0, 2, 4, 3, 4, 0, 2, 1, 1,
714 5, 4, 4, 0, 3, 5, 2, 1, 3, 2,
721 static const yytype_uint8 yydefact[] =
723 14, 9, 0, 0, 13, 15, 0, 0, 3, 6,
724 0, 7, 8, 0, 0, 17, 16, 1, 5, 4,
725 0, 27, 0, 0, 11, 10, 0, 28, 0, 22,
726 19, 0, 21, 0, 30, 0, 0, 23, 0, 0,
727 126, 29, 0, 33, 12, 42, 0, 0, 0, 0,
728 0, 0, 0, 0, 39, 40, 32, 38, 34, 36,
729 37, 35, 0, 0, 0, 0, 0, 0, 0, 0,
730 0, 0, 41, 0, 0, 0, 18, 95, 0, 0,
731 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
732 0, 0, 75, 76, 0, 85, 128, 119, 0, 127,
733 129, 24, 0, 0, 0, 62, 0, 0, 0, 0,
734 143, 137, 0, 0, 25, 0, 44, 0, 0, 0,
735 0, 55, 0, 57, 0, 58, 0, 70, 98, 0,
736 105, 0, 92, 91, 93, 80, 0, 0, 112, 88,
737 79, 97, 115, 60, 118, 0, 87, 89, 43, 0,
738 46, 0, 0, 0, 0, 63, 136, 131, 0, 132,
739 0, 139, 141, 142, 0, 0, 0, 51, 74, 50,
740 109, 86, 0, 121, 53, 0, 0, 0, 0, 0,
741 71, 0, 0, 0, 77, 0, 107, 78, 0, 84,
742 0, 113, 0, 94, 61, 114, 117, 0, 0, 0,
743 64, 65, 66, 134, 0, 138, 140, 0, 45, 111,
744 119, 0, 0, 68, 0, 59, 0, 0, 0, 100,
745 72, 99, 106, 0, 0, 0, 96, 116, 120, 0,
746 0, 0, 0, 26, 0, 56, 73, 0, 0, 0,
747 122, 69, 67, 0, 0, 0, 0, 0, 0, 108,
748 81, 130, 90, 0, 47, 135, 110, 0, 0, 0,
749 0, 0, 104, 103, 102, 101, 0, 48, 0, 0,
750 124, 0, 52, 0, 123, 125, 0, 82, 54, 0,
755 static const yytype_int16 yydefgoto[] =
757 -1, 6, 7, 8, 111, 9, 10, 11, 12, 23,
758 92, 42, 93, 165, 28, 39, 56, 57, 58, 118,
759 175, 176, 122, 172, 94, 144, 106, 177, 128, 95,
760 169, 188, 266, 279, 197, 193, 129, 186, 131, 120,
761 210, 97, 191, 98, 228, 145, 212, 240, 62, 99,
762 59, 60, 108, 112, 113, 61
767 #define YYPACT_NINF -211
768 static const yytype_int16 yypact[] =
770 166, -211, -32, 15, 12, 36, 40, 316, -211, -211,
771 75, -211, -211, 82, 17, -211, -211, -211, -211, -211,
772 -28, 57, 17, 0, -211, -211, 127, -211, 6, 109,
773 -211, 152, -211, 136, -211, 169, 143, -211, 136, 117,
774 -211, -211, 144, 272, -211, -211, 170, -15, 191, 197,
775 199, 201, 168, 137, -211, -211, -211, -211, -211, -211,
776 -211, -211, 180, 204, 172, 219, 202, 185, 25, 25,
777 28, 217, -211, 186, 266, 90, -211, -211, 190, 229,
778 229, 230, 229, 21, 194, 240, 241, 242, 246, 229,
779 210, 312, -211, -211, 266, -211, -211, 1, 61, -211,
780 -211, -211, 248, 185, 266, -211, 68, 25, 24, 29,
781 -211, 247, 254, 20, -211, 238, -211, 19, 212, 258,
782 263, -211, 271, -211, 233, -211, 126, 234, 183, 275,
783 95, 279, -211, -211, -211, -211, 266, 286, -211, -211,
784 -211, 270, -211, 236, -211, 140, -211, -211, -211, 78,
785 -211, 255, 259, 262, 264, -211, 267, -211, 69, -211,
786 233, -211, -211, -211, 289, 282, 266, 266, -211, -211,
787 294, -211, 283, -211, 70, 293, 315, 317, 194, 194,
788 -211, 194, 284, 194, -211, 287, 319, -211, 291, -211,
789 90, -211, 266, -211, -211, -211, 292, 295, 298, 304,
790 -211, -211, -211, -211, 299, -211, -211, 328, -211, -211,
791 283, 330, 135, 300, 301, -211, 301, 104, 73, 132,
792 -211, 116, -211, -28, 337, 239, -211, -211, -211, 338,
793 322, 266, 340, -211, 173, -211, -211, 306, 307, 341,
794 -211, -211, 308, 342, 343, 194, 194, 194, 194, -211,
795 -211, -211, -211, 266, -211, -211, -211, 345, 346, 19,
796 301, 301, 347, 347, 347, 347, 310, -211, 19, 19,
797 266, 348, -211, 351, 266, 266, 301, -211, -211, 320,
802 static const yytype_int16 yypgoto[] =
804 -211, -211, -211, 355, -19, -211, -211, -211, -211, 344,
805 64, -211, -29, -211, -211, 326, -211, -211, -211, -114,
806 -211, 205, 46, -211, -211, 195, 265, -210, -82, -211,
807 -62, -211, -211, -211, -211, -211, -211, -211, -211, -211,
808 -211, -211, -211, -211, -211, 159, -211, -211, -211, -211,
809 -211, -211, -34, 257, -211, 309
815 #define YYTABLE_NINF -134
816 static const yytype_int16 yytable[] =
818 96, 26, 130, 167, 243, 30, 244, 34, 142, 24,
819 55, 13, 116, 35, 55, 25, 36, 65, 22, 14,
820 117, 162, -20, -49, -49, 163, 107, -49, 66, 157,
821 -133, -49, 141, 110, 159, 109, 15, -49, -49, -49,
822 17, -49, 150, 31, 143, -49, -49, -49, -49, -49,
823 271, 272, -49, -49, -49, -49, -49, 24, 126, 16,
824 -20, -49, -49, 25, 127, 24, 278, 158, -133, 146,
825 147, 25, 158, 156, 189, 151, 225, 203, 20, 152,
826 153, -67, 154, 204, 182, 198, 246, 32, 21, 152,
827 153, 117, 154, 32, -49, -49, 217, 218, -49, 219,
828 27, 221, -49, 54, 208, 185, 182, 54, -49, -49,
829 -49, 155, -49, 213, 245, 182, -49, -49, -49, -49,
830 -49, 155, 44, -49, -49, 45, 123, 182, 125, 248,
831 226, 33, -49, -49, 46, 136, 178, 38, 72, 179,
832 236, -31, 247, 182, -31, 270, 37, 195, 47, 48,
833 196, 73, 31, -31, 274, 275, 49, 50, 51, 52,
834 53, 37, 74, 262, 263, 264, 265, -31, -31, 254,
835 237, 238, 239, 40, 1, -31, -31, -31, -31, -31,
836 256, 2, 3, 196, 75, 76, 41, 63, 77, 4,
837 5, 267, 78, 181, 182, 64, 183, 67, 79, 80,
838 81, 68, 82, 69, 249, 70, 83, 84, 85, 86,
839 87, 71, 101, 88, 89, 102, 75, 168, 90, 282,
840 77, 51, 52, 91, 78, 103, 114, 104, 105, 115,
841 79, 80, 81, 119, 82, 121, 124, 127, 83, 84,
842 85, 86, 87, 75, 251, 88, 89, 77, 132, 133,
843 134, 78, 135, 137, 52, 91, 148, 79, 80, 81,
844 160, 82, 161, 166, 170, 83, 84, 85, 86, 87,
845 75, 171, 88, 89, 77, 173, 174, 180, 78, 194,
846 45, 52, 91, 184, 79, 80, 81, 187, 82, 46,
847 190, 192, 83, 84, 85, 86, 87, 206, 199, 88,
848 89, 209, 200, 47, 48, 201, 214, 202, 52, 91,
849 158, 49, 50, 51, 52, 53, -2, 18, 138, -14,
850 139, 37, 215, 140, 1, 207, 143, 220, 216, 231,
851 222, 2, 3, 223, 224, 227, 233, 235, 229, 4,
852 5, 230, 232, 241, 242, 250, 252, 253, 255, 257,
853 258, 213, 259, 273, 261, 260, 268, 269, 182, 277,
854 281, 276, 19, 280, 43, 205, 29, 211, 149, 234,
858 #define yypact_value_is_default(yystate) \
859 ((yystate) == (-211))
861 #define yytable_value_is_error(yytable_value) \
864 static const yytype_uint16 yycheck[] =
866 62, 20, 84, 117, 214, 5, 216, 1, 7, 37,
867 39, 43, 74, 7, 43, 43, 10, 32, 1, 4,
868 1, 1, 5, 4, 5, 5, 1, 8, 43, 5,
869 5, 12, 94, 5, 5, 69, 24, 18, 19, 20,
870 0, 22, 104, 43, 43, 26, 27, 28, 29, 30,
871 260, 261, 33, 34, 35, 36, 37, 37, 37, 23,
872 43, 42, 43, 43, 43, 37, 276, 43, 43, 8,
873 9, 43, 43, 107, 136, 7, 190, 8, 3, 11,
874 12, 11, 14, 14, 11, 7, 13, 23, 6, 11,
875 12, 1, 14, 29, 4, 5, 178, 179, 8, 181,
876 43, 183, 12, 39, 166, 10, 11, 43, 18, 19,
877 20, 43, 22, 43, 10, 11, 26, 27, 28, 29,
878 30, 43, 5, 33, 34, 8, 80, 11, 82, 13,
879 192, 4, 42, 43, 17, 89, 10, 1, 1, 13,
880 5, 5, 10, 11, 8, 259, 9, 7, 31, 32,
881 10, 14, 43, 17, 268, 269, 39, 40, 41, 42,
882 43, 9, 25, 245, 246, 247, 248, 31, 32, 231,
883 35, 36, 37, 4, 8, 39, 40, 41, 42, 43,
884 7, 15, 16, 10, 4, 5, 43, 43, 8, 23,
885 24, 253, 12, 10, 11, 25, 13, 6, 18, 19,
886 20, 4, 22, 4, 223, 4, 26, 27, 28, 29,
887 30, 43, 8, 33, 34, 43, 4, 5, 38, 281,
888 8, 41, 42, 43, 12, 6, 9, 25, 43, 43,
889 18, 19, 20, 43, 22, 6, 6, 43, 26, 27,
890 28, 29, 30, 4, 5, 33, 34, 8, 8, 8,
891 8, 12, 6, 43, 42, 43, 8, 18, 19, 20,
892 13, 22, 8, 25, 6, 26, 27, 28, 29, 30,
893 4, 8, 33, 34, 8, 4, 43, 43, 12, 43,
894 8, 42, 43, 8, 18, 19, 20, 8, 22, 17,
895 4, 21, 26, 27, 28, 29, 30, 8, 43, 33,
896 34, 7, 43, 31, 32, 43, 13, 43, 42, 43,
897 43, 39, 40, 41, 42, 43, 0, 1, 6, 3,
898 8, 9, 7, 11, 8, 43, 43, 43, 11, 25,
899 43, 15, 16, 14, 43, 43, 8, 7, 43, 23,
900 24, 43, 43, 43, 43, 8, 8, 25, 8, 43,
901 43, 43, 11, 43, 11, 13, 11, 11, 11, 8,
902 7, 13, 7, 43, 38, 160, 22, 172, 103, 210,
908 static const yytype_uint8 yystos[] =
910 0, 8, 15, 16, 23, 24, 45, 46, 47, 49,
911 50, 51, 52, 43, 4, 24, 23, 0, 1, 47,
912 3, 6, 1, 53, 37, 43, 48, 43, 58, 53,
913 5, 43, 54, 4, 1, 7, 10, 9, 1, 59,
914 4, 43, 55, 59, 5, 8, 17, 31, 32, 39,
915 40, 41, 42, 43, 54, 56, 60, 61, 62, 94,
916 95, 99, 92, 43, 25, 32, 43, 6, 4, 4,
917 4, 43, 1, 14, 25, 4, 5, 8, 12, 18,
918 19, 20, 22, 26, 27, 28, 29, 30, 33, 34,
919 38, 43, 54, 56, 68, 73, 74, 85, 87, 93,
920 99, 8, 43, 6, 25, 43, 70, 1, 96, 96,
921 5, 48, 97, 98, 9, 43, 74, 1, 63, 43,
922 83, 6, 66, 66, 6, 66, 37, 43, 72, 80,
923 72, 82, 8, 8, 8, 6, 66, 43, 6, 8,
924 11, 74, 7, 43, 69, 89, 8, 9, 8, 70,
925 74, 7, 11, 12, 14, 43, 96, 5, 43, 5,
926 13, 8, 1, 5, 97, 57, 25, 63, 5, 74,
927 6, 8, 67, 4, 43, 64, 65, 71, 10, 13,
928 43, 10, 11, 13, 8, 10, 81, 8, 75, 74,
929 4, 86, 21, 79, 43, 7, 10, 78, 7, 43,
930 43, 43, 43, 8, 14, 65, 8, 43, 74, 7,
931 84, 69, 90, 43, 13, 7, 11, 72, 72, 72,
932 43, 72, 43, 14, 43, 63, 74, 43, 88, 43,
933 43, 25, 43, 8, 89, 7, 5, 35, 36, 37,
934 91, 43, 43, 71, 71, 10, 13, 10, 13, 48,
935 8, 5, 8, 25, 74, 8, 7, 43, 43, 11,
936 13, 11, 72, 72, 72, 72, 76, 74, 11, 11,
937 63, 71, 71, 43, 63, 63, 13, 8, 71, 77,
941 #define yyerrok (yyerrstatus = 0)
942 #define yyclearin (yychar = YYEMPTY)
946 #define YYACCEPT goto yyacceptlab
947 #define YYABORT goto yyabortlab
948 #define YYERROR goto yyerrorlab
958 #define YYFAIL goto yyerrlab
966 #define YYRECOVERING() (!!yyerrstatus)
968 #define YYBACKUP(Token, Value) \
970 if (yychar == YYEMPTY && yylen == 1) \
979 yyerror (&yylloc, parseio, YY_("syntax error: cannot back up")); \
986 #define YYERRCODE 256
993 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
994 #ifndef YYLLOC_DEFAULT
995 # define YYLLOC_DEFAULT(Current, Rhs, N) \
999 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
1000 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
1001 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
1002 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
1006 (Current).first_line = (Current).last_line = \
1007 YYRHSLOC (Rhs, 0).last_line; \
1008 (Current).first_column = (Current).last_column = \
1009 YYRHSLOC (Rhs, 0).last_column; \
1019 #ifndef YY_LOCATION_PRINT
1020 # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
1021 # define YY_LOCATION_PRINT(File, Loc) \
1022 fprintf (File, "%d.%d-%d.%d", \
1023 (Loc).first_line, (Loc).first_column, \
1024 (Loc).last_line, (Loc).last_column)
1026 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
1034 # define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM)
1036 # define YYLEX yylex (&yylval, &yylloc)
1044 # define YYFPRINTF fprintf
1047 # define YYDPRINTF(Args) \
1053 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
1057 YYFPRINTF (stderr, "%s ", Title); \
1058 yy_symbol_print (stderr, \
1059 Type, Value, Location, parseio); \
1060 YYFPRINTF (stderr, "\n"); \
1070 #if (defined __STDC__ || defined __C99__FUNC__ \
1071 || defined __cplusplus || defined _MSC_VER)
1073 yy_symbol_value_print (FILE *yyoutput,
int yytype,
YYSTYPE const *
const yyvaluep,
YYLTYPE const *
const yylocationp,
struct parse_io *parseio)
1076 yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, parseio)
1079 YYSTYPE const * const yyvaluep;
1080 YYLTYPE const * const yylocationp;
1086 YYUSE (yylocationp);
1089 if (yytype < YYNTOKENS)
1090 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
1106 #if (defined __STDC__ || defined __C99__FUNC__ \
1107 || defined __cplusplus || defined _MSC_VER)
1109 yy_symbol_print (FILE *yyoutput,
int yytype,
YYSTYPE const *
const yyvaluep,
YYLTYPE const *
const yylocationp,
struct parse_io *parseio)
1112 yy_symbol_print (yyoutput, yytype, yyvaluep, yylocationp, parseio)
1115 YYSTYPE const * const yyvaluep;
1116 YYLTYPE const * const yylocationp;
1120 if (yytype < YYNTOKENS)
1121 YYFPRINTF (yyoutput,
"token %s (", yytname[yytype]);
1123 YYFPRINTF (yyoutput,
"nterm %s (", yytname[yytype]);
1125 YY_LOCATION_PRINT (yyoutput, *yylocationp);
1126 YYFPRINTF (yyoutput,
": ");
1127 yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, parseio);
1128 YYFPRINTF (yyoutput,
")");
1136 #if (defined __STDC__ || defined __C99__FUNC__ \
1137 || defined __cplusplus || defined _MSC_VER)
1139 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
1142 yy_stack_print (yybottom, yytop)
1143 yytype_int16 *yybottom;
1144 yytype_int16 *yytop;
1147 YYFPRINTF (stderr,
"Stack now");
1148 for (; yybottom <= yytop; yybottom++)
1150 int yybot = *yybottom;
1151 YYFPRINTF (stderr,
" %d", yybot);
1153 YYFPRINTF (stderr,
"\n");
1156 # define YY_STACK_PRINT(Bottom, Top) \
1159 yy_stack_print ((Bottom), (Top)); \
1167 #if (defined __STDC__ || defined __C99__FUNC__ \
1168 || defined __cplusplus || defined _MSC_VER)
1173 yy_reduce_print (yyvsp, yylsp, yyrule, parseio)
1180 int yynrhs = yyr2[yyrule];
1182 unsigned long int yylno = yyrline[yyrule];
1183 YYFPRINTF (stderr,
"Reducing stack by rule %d (line %lu):\n",
1186 for (yyi = 0; yyi < yynrhs; yyi++)
1188 YYFPRINTF (stderr,
" $%d = ", yyi + 1);
1189 yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
1190 &(yyvsp[(yyi + 1) - (yynrhs)])
1191 , &(yylsp[(yyi + 1) - (yynrhs)]) , parseio);
1192 YYFPRINTF (stderr,
"\n");
1196 # define YY_REDUCE_PRINT(Rule) \
1199 yy_reduce_print (yyvsp, yylsp, Rule, parseio); \
1206 # define YYDPRINTF(Args)
1207 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
1208 # define YY_STACK_PRINT(Bottom, Top)
1209 # define YY_REDUCE_PRINT(Rule)
1215 # define YYINITDEPTH 200
1226 # define YYMAXDEPTH 10000
1233 # if defined __GLIBC__ && defined _STRING_H
1234 # define yystrlen strlen
1237 #if (defined __STDC__ || defined __C99__FUNC__ \
1238 || defined __cplusplus || defined _MSC_VER)
1240 yystrlen (
const char *yystr)
1248 for (yylen = 0; yystr[yylen]; yylen++)
1256 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
1257 # define yystpcpy stpcpy
1261 #if (defined __STDC__ || defined __C99__FUNC__ \
1262 || defined __cplusplus || defined _MSC_VER)
1264 yystpcpy (
char *yydest,
const char *yysrc)
1267 yystpcpy (yydest, yysrc)
1273 const char *yys = yysrc;
1275 while ((*yyd++ = *yys++) !=
'\0')
1292 yytnamerr (
char *yyres,
const char *yystr)
1297 char const *yyp = yystr;
1304 goto do_not_strip_quotes;
1308 goto do_not_strip_quotes;
1321 do_not_strip_quotes: ;
1325 return yystrlen (yystr);
1327 return yystpcpy (yyres, yystr) - yyres;
1340 yysyntax_error (YYSIZE_T *yymsg_alloc,
char **yymsg,
1341 yytype_int16 *yyssp,
int yytoken)
1343 YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]);
1344 YYSIZE_T yysize = yysize0;
1346 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
1348 const char *yyformat = 0;
1350 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
1382 if (yytoken != YYEMPTY)
1384 int yyn = yypact[*yyssp];
1385 yyarg[yycount++] = yytname[yytoken];
1386 if (!yypact_value_is_default (yyn))
1391 int yyxbegin = yyn < 0 ? -yyn : 0;
1393 int yychecklim = YYLAST - yyn + 1;
1394 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
1397 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
1398 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
1399 && !yytable_value_is_error (yytable[yyx + yyn]))
1401 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
1407 yyarg[yycount++] = yytname[yyx];
1408 yysize1 = yysize + yytnamerr (0, yytname[yyx]);
1409 if (! (yysize <= yysize1
1410 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
1419 # define YYCASE_(N, S) \
1423 YYCASE_(0, YY_(
"syntax error"));
1424 YYCASE_(1, YY_(
"syntax error, unexpected %s"));
1425 YYCASE_(2, YY_(
"syntax error, unexpected %s, expecting %s"));
1426 YYCASE_(3, YY_(
"syntax error, unexpected %s, expecting %s or %s"));
1427 YYCASE_(4, YY_(
"syntax error, unexpected %s, expecting %s or %s or %s"));
1428 YYCASE_(5, YY_(
"syntax error, unexpected %s, expecting %s or %s or %s or %s"));
1432 yysize1 = yysize + yystrlen (yyformat);
1433 if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
1437 if (*yymsg_alloc < yysize)
1439 *yymsg_alloc = 2 * yysize;
1440 if (! (yysize <= *yymsg_alloc
1441 && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
1442 *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
1452 while ((*yyp = *yyformat) !=
'\0')
1453 if (*yyp ==
'%' && yyformat[1] ==
's' && yyi < yycount)
1455 yyp += yytnamerr (yyp, yyarg[yyi++]);
1473 #if (defined __STDC__ || defined __C99__FUNC__ \
1474 || defined __cplusplus || defined _MSC_VER)
1476 yydestruct (
const char *yymsg,
int yytype,
YYSTYPE *yyvaluep,
YYLTYPE *yylocationp,
struct parse_io *parseio)
1479 yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
1488 YYUSE (yylocationp);
1493 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
1501 { free((yyvaluep->str));};
1504 #line 1505 "ael.tab.c"
1511 destroy_pval((yyvaluep->pval));
1516 #line 1517 "ael.tab.c"
1523 destroy_pval((yyvaluep->pval));
1528 #line 1529 "ael.tab.c"
1534 { free((yyvaluep->str));};
1537 #line 1538 "ael.tab.c"
1544 destroy_pval((yyvaluep->pval));
1549 #line 1550 "ael.tab.c"
1556 destroy_pval((yyvaluep->pval));
1561 #line 1562 "ael.tab.c"
1568 destroy_pval((yyvaluep->pval));
1573 #line 1574 "ael.tab.c"
1580 destroy_pval((yyvaluep->pval));
1585 #line 1586 "ael.tab.c"
1592 destroy_pval((yyvaluep->pval));
1597 #line 1598 "ael.tab.c"
1604 destroy_pval((yyvaluep->pval));
1609 #line 1610 "ael.tab.c"
1616 destroy_pval((yyvaluep->pval));
1621 #line 1622 "ael.tab.c"
1628 destroy_pval((yyvaluep->pval));
1633 #line 1634 "ael.tab.c"
1640 destroy_pval((yyvaluep->pval));
1645 #line 1646 "ael.tab.c"
1652 destroy_pval((yyvaluep->pval));
1657 #line 1658 "ael.tab.c"
1664 destroy_pval((yyvaluep->pval));
1669 #line 1670 "ael.tab.c"
1676 destroy_pval((yyvaluep->pval));
1681 #line 1682 "ael.tab.c"
1687 { free((yyvaluep->str));};
1690 #line 1691 "ael.tab.c"
1697 destroy_pval((yyvaluep->pval));
1702 #line 1703 "ael.tab.c"
1708 { free((yyvaluep->str));};
1711 #line 1712 "ael.tab.c"
1718 destroy_pval((yyvaluep->pval));
1723 #line 1724 "ael.tab.c"
1729 { free((yyvaluep->str));};
1732 #line 1733 "ael.tab.c"
1738 { free((yyvaluep->str));};
1741 #line 1742 "ael.tab.c"
1747 { free((yyvaluep->str));};
1750 #line 1751 "ael.tab.c"
1757 destroy_pval((yyvaluep->pval));
1762 #line 1763 "ael.tab.c"
1769 destroy_pval((yyvaluep->pval));
1774 #line 1775 "ael.tab.c"
1781 destroy_pval((yyvaluep->pval));
1786 #line 1787 "ael.tab.c"
1793 destroy_pval((yyvaluep->pval));
1798 #line 1799 "ael.tab.c"
1804 { free((yyvaluep->str));};
1807 #line 1808 "ael.tab.c"
1814 destroy_pval((yyvaluep->pval));
1819 #line 1820 "ael.tab.c"
1826 destroy_pval((yyvaluep->pval));
1831 #line 1832 "ael.tab.c"
1838 destroy_pval((yyvaluep->pval));
1843 #line 1844 "ael.tab.c"
1850 destroy_pval((yyvaluep->pval));
1855 #line 1856 "ael.tab.c"
1861 { free((yyvaluep->str));};
1864 #line 1865 "ael.tab.c"
1871 destroy_pval((yyvaluep->pval));
1876 #line 1877 "ael.tab.c"
1883 destroy_pval((yyvaluep->pval));
1888 #line 1889 "ael.tab.c"
1895 destroy_pval((yyvaluep->pval));
1900 #line 1901 "ael.tab.c"
1907 destroy_pval((yyvaluep->pval));
1912 #line 1913 "ael.tab.c"
1919 destroy_pval((yyvaluep->pval));
1924 #line 1925 "ael.tab.c"
1931 destroy_pval((yyvaluep->pval));
1936 #line 1937 "ael.tab.c"
1943 destroy_pval((yyvaluep->pval));
1948 #line 1949 "ael.tab.c"
1955 destroy_pval((yyvaluep->pval));
1960 #line 1961 "ael.tab.c"
1967 destroy_pval((yyvaluep->pval));
1972 #line 1973 "ael.tab.c"
1979 destroy_pval((yyvaluep->pval));
1984 #line 1985 "ael.tab.c"
1991 destroy_pval((yyvaluep->pval));
1996 #line 1997 "ael.tab.c"
2006 #ifdef YYPARSE_PARAM
2007 #if defined __STDC__ || defined __cplusplus
2008 int yyparse (
void *YYPARSE_PARAM);
2013 #if defined __STDC__ || defined __cplusplus
2014 int yyparse (
struct parse_io *parseio);
2025 #ifdef YYPARSE_PARAM
2026 #if (defined __STDC__ || defined __C99__FUNC__ \
2027 || defined __cplusplus || defined _MSC_VER)
2029 yyparse (
void *YYPARSE_PARAM)
2032 yyparse (YYPARSE_PARAM)
2033 void *YYPARSE_PARAM;
2036 #if (defined __STDC__ || defined __C99__FUNC__ \
2037 || defined __cplusplus || defined _MSC_VER)
2072 yytype_int16 yyssa[YYINITDEPTH];
2074 yytype_int16 *yyssp;
2089 YYSIZE_T yystacksize;
2103 char *yymsg = yymsgbuf;
2104 YYSIZE_T yymsg_alloc =
sizeof yymsgbuf;
2107 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N), yylsp -= (N))
2117 yystacksize = YYINITDEPTH;
2119 YYDPRINTF ((stderr,
"Starting parse\n"));
2134 #if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
2136 yylloc.first_line = yylloc.last_line = 1;
2137 yylloc.first_column = yylloc.last_column = 1;
2153 if (yyss + yystacksize - 1 <= yyssp)
2156 YYSIZE_T yysize = yyssp - yyss + 1;
2164 yytype_int16 *yyss1 = yyss;
2171 yyoverflow (YY_(
"memory exhausted"),
2172 &yyss1, yysize *
sizeof (*yyssp),
2173 &yyvs1, yysize *
sizeof (*yyvsp),
2174 &yyls1, yysize *
sizeof (*yylsp),
2182 # ifndef YYSTACK_RELOCATE
2183 goto yyexhaustedlab;
2186 if (YYMAXDEPTH <= yystacksize)
2187 goto yyexhaustedlab;
2189 if (YYMAXDEPTH < yystacksize)
2190 yystacksize = YYMAXDEPTH;
2193 yytype_int16 *yyss1 = yyss;
2195 (
union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
2197 goto yyexhaustedlab;
2198 YYSTACK_RELOCATE (yyss_alloc, yyss);
2199 YYSTACK_RELOCATE (yyvs_alloc, yyvs);
2200 YYSTACK_RELOCATE (yyls_alloc, yyls);
2201 # undef YYSTACK_RELOCATE
2203 YYSTACK_FREE (yyss1);
2208 yyssp = yyss + yysize - 1;
2209 yyvsp = yyvs + yysize - 1;
2210 yylsp = yyls + yysize - 1;
2212 YYDPRINTF ((stderr,
"Stack size increased to %lu\n",
2213 (
unsigned long int) yystacksize));
2215 if (yyss + yystacksize - 1 <= yyssp)
2219 YYDPRINTF ((stderr,
"Entering state %d\n", yystate));
2221 if (yystate == YYFINAL)
2235 yyn = yypact[yystate];
2236 if (yypact_value_is_default (yyn))
2242 if (yychar == YYEMPTY)
2244 YYDPRINTF ((stderr,
"Reading a token: "));
2248 if (yychar <= YYEOF)
2250 yychar = yytoken = YYEOF;
2251 YYDPRINTF ((stderr,
"Now at end of input.\n"));
2255 yytoken = YYTRANSLATE (yychar);
2256 YY_SYMBOL_PRINT (
"Next token is", yytoken, &yylval, &yylloc);
2262 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
2267 if (yytable_value_is_error (yyn))
2279 YY_SYMBOL_PRINT (
"Shifting", yytoken, &yylval, &yylloc);
2294 yyn = yydefact[yystate];
2315 yyval = yyvsp[1-yylen];
2318 YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
2319 YY_REDUCE_PRINT (yyn);
2326 { (yyval.pval) = parseio->pval = (yyvsp[(1) - (1)].
pval); }
2333 {(yyval.pval)=(yyvsp[(1) - (1)].
pval);}
2340 { (yyval.pval) = linku1((yyvsp[(1) - (2)].
pval), (yyvsp[(2) - (2)].pval)); }
2347 {(yyval.pval)=(yyvsp[(1) - (2)].
pval);}
2354 {(yyval.pval)=(yyvsp[(1) - (1)].
pval);}
2361 {(yyval.pval)=(yyvsp[(1) - (1)].
pval);}
2368 {(yyval.pval)=(yyvsp[(1) - (1)].
pval);}
2382 { (yyval.str) = (yyvsp[(1) - (1)].str); }
2389 { (yyval.str) = strdup(
"default"); }
2397 (yyval.pval) = npval2(PV_CONTEXT, &(yylsp[(1) - (6)]), &(yylsp[(6) - (6)]));
2398 (yyval.pval)->u1.str = (yyvsp[(3) - (6)].str);
2399 (yyval.pval)->u2.statements = (yyvsp[(5) - (6)].
pval);
2400 set_dads((yyval.pval),(yyvsp[(5) - (6)].pval));
2401 (yyval.pval)->u3.abstract = (yyvsp[(1) - (6)].intval);}
2408 { (yyval.intval) = 1; }
2415 { (yyval.intval) = 0; }
2422 { (yyval.intval) = 2; }
2429 { (yyval.intval)=3; }
2436 { (yyval.intval)=3; }
2444 (yyval.pval) = npval2(PV_MACRO, &(yylsp[(1) - (8)]), &(yylsp[(8) - (8)]));
2445 (yyval.pval)->u1.str = (yyvsp[(2) - (8)].str); (yyval.pval)->u2.arglist = (yyvsp[(4) - (8)].
pval); (yyval.pval)->u3.macro_statements = (yyvsp[(7) - (8)].
pval);
2446 set_dads((yyval.pval),(yyvsp[(7) - (8)].pval));}
2454 (yyval.pval) = npval2(PV_GLOBALS, &(yylsp[(1) - (4)]), &(yylsp[(4) - (4)]));
2455 (yyval.pval)->u1.statements = (yyvsp[(3) - (4)].
pval);
2456 set_dads((yyval.pval),(yyvsp[(3) - (4)].pval));}
2463 { (yyval.pval) = NULL; }
2470 {(yyval.pval) = linku1((yyvsp[(1) - (2)].
pval), (yyvsp[(2) - (2)].pval)); }
2477 {(yyval.pval)=(yyvsp[(2) - (2)].
pval);}
2484 { reset_semicount(parseio->scanner); }
2492 (yyval.pval) = npval2(PV_VARDEC, &(yylsp[(1) - (5)]), &(yylsp[(5) - (5)]));
2493 (yyval.pval)->u1.str = (yyvsp[(1) - (5)].str);
2494 (yyval.pval)->u2.val = (yyvsp[(4) - (5)].str); }
2501 { reset_semicount(parseio->scanner); }
2509 (yyval.pval) = npval2(PV_LOCALVARDEC, &(yylsp[(1) - (6)]), &(yylsp[(6) - (6)]));
2510 (yyval.pval)->u1.str = (yyvsp[(2) - (6)].str);
2511 (yyval.pval)->u2.val = (yyvsp[(5) - (6)].str); }
2518 { (yyval.pval) = NULL; }
2525 { (yyval.pval) = nword((yyvsp[(1) - (1)].str), &(yylsp[(1) - (1)])); }
2532 { (yyval.pval) = linku1((yyvsp[(1) - (3)].
pval), nword((yyvsp[(3) - (3)].str), &(yylsp[(3) - (3)]))); }
2539 {(yyval.pval)=(yyvsp[(1) - (2)].
pval);}
2553 { (yyval.pval) = linku1((yyvsp[(1) - (2)].
pval), (yyvsp[(2) - (2)].pval)); }
2560 { (yyval.pval)=(yyvsp[(2) - (2)].
pval);}
2567 {(yyval.pval)=(yyvsp[(1) - (1)].
pval);}
2574 {(yyval.pval)=(yyvsp[(1) - (1)].
pval);}
2581 {(yyval.pval)=(yyvsp[(1) - (1)].
pval);}
2588 {(yyval.pval)=(yyvsp[(1) - (1)].
pval);}
2595 {(yyval.pval)=(yyvsp[(1) - (1)].
pval);}
2602 {(yyval.pval)=(yyvsp[(1) - (1)].
pval);}
2609 {(yyval.pval)=(yyvsp[(1) - (1)].
pval);}
2616 {free((yyvsp[(1) - (2)].str)); (yyval.pval)=0;}
2631 (yyval.pval) = npval2(PV_IGNOREPAT, &(yylsp[(1) - (4)]), &(yylsp[(4) - (4)]));
2632 (yyval.pval)->u1.str = (yyvsp[(3) - (4)].str);}
2640 (yyval.pval) = npval2(PV_EXTENSION, &(yylsp[(1) - (3)]), &(yylsp[(3) - (3)]));
2641 (yyval.pval)->u1.str = (yyvsp[(1) - (3)].str);
2642 (yyval.pval)->u2.statements = (yyvsp[(3) - (3)].
pval); set_dads((yyval.pval),(yyvsp[(3) - (3)].pval));}
2650 (yyval.pval) = npval2(PV_EXTENSION, &(yylsp[(1) - (5)]), &(yylsp[(3) - (5)]));
2651 (yyval.pval)->u1.str = malloc(strlen((yyvsp[(1) - (5)].str))+strlen((yyvsp[(3) - (5)].str))+2);
2652 strcpy((yyval.pval)->u1.str,(yyvsp[(1) - (5)].str));
2653 strcat((yyval.pval)->u1.str,
"@");
2654 strcat((yyval.pval)->u1.str,(yyvsp[(3) - (5)].str));
2655 free((yyvsp[(1) - (5)].str));
2656 (yyval.pval)->u2.statements = (yyvsp[(5) - (5)].
pval); set_dads((yyval.pval),(yyvsp[(5) - (5)].pval));}
2664 (yyval.pval) = npval2(PV_EXTENSION, &(yylsp[(1) - (4)]), &(yylsp[(4) - (4)]));
2665 (yyval.pval)->u1.str = (yyvsp[(2) - (4)].str);
2666 (yyval.pval)->u2.statements = (yyvsp[(4) - (4)].
pval); set_dads((yyval.pval),(yyvsp[(4) - (4)].pval));
2667 (yyval.pval)->u4.regexten=1;}
2675 (yyval.pval) = npval2(PV_EXTENSION, &(yylsp[(1) - (7)]), &(yylsp[(7) - (7)]));
2676 (yyval.pval)->u1.str = (yyvsp[(5) - (7)].str);
2677 (yyval.pval)->u2.statements = (yyvsp[(7) - (7)].
pval); set_dads((yyval.pval),(yyvsp[(7) - (7)].pval));
2678 (yyval.pval)->u3.hints = (yyvsp[(3) - (7)].str);}
2686 (yyval.pval) = npval2(PV_EXTENSION, &(yylsp[(1) - (8)]), &(yylsp[(8) - (8)]));
2687 (yyval.pval)->u1.str = (yyvsp[(6) - (8)].str);
2688 (yyval.pval)->u2.statements = (yyvsp[(8) - (8)].
pval); set_dads((yyval.pval),(yyvsp[(8) - (8)].pval));
2689 (yyval.pval)->u4.regexten=1;
2690 (yyval.pval)->u3.hints = (yyvsp[(4) - (8)].str);}
2697 { (yyval.pval) = NULL; }
2704 { (yyval.pval) = linku1((yyvsp[(1) - (2)].
pval), (yyvsp[(2) - (2)].pval)); }
2711 {(yyval.pval)=(yyvsp[(2) - (2)].
pval);}
2719 if (asprintf(&(yyval.str),
"%s:%s:%s", (yyvsp[(1) - (5)].str), (yyvsp[(3) - (5)].str), (yyvsp[(5) - (5)].str)) < 0) {
2720 ast_log(LOG_WARNING,
"asprintf() failed\n");
2723 free((yyvsp[(1) - (5)].str));
2724 free((yyvsp[(3) - (5)].str));
2725 free((yyvsp[(5) - (5)].str));
2734 { (yyval.str) = (yyvsp[(1) - (1)].str); }
2742 (yyval.pval) = nword((yyvsp[(1) - (7)].str), &(yylsp[(1) - (7)]));
2743 (yyval.pval)->next = nword((yyvsp[(3) - (7)].str), &(yylsp[(3) - (7)]));
2744 (yyval.pval)->next->next = nword((yyvsp[(5) - (7)].str), &(yylsp[(5) - (7)]));
2745 (yyval.pval)->next->next->next = nword((yyvsp[(7) - (7)].str), &(yylsp[(7) - (7)])); }
2752 { reset_parencount(parseio->scanner); }
2759 { (yyval.str) = (yyvsp[(3) - (4)].str); }
2767 (yyval.pval)= npval2(PV_IF, &(yylsp[(1) - (2)]), &(yylsp[(2) - (2)]));
2768 (yyval.pval)->u1.str = (yyvsp[(2) - (2)].str); }
2776 (yyval.pval) = npval2(PV_RANDOM, &(yylsp[(1) - (2)]), &(yylsp[(2) - (2)]));
2777 (yyval.pval)->u1.str=(yyvsp[(2) - (2)].str);}
2785 (yyval.pval) = npval2(PV_IFTIME, &(yylsp[(1) - (4)]), &(yylsp[(4) - (4)]));
2786 (yyval.pval)->u1.list = (yyvsp[(3) - (4)].
pval);
2794 { (yyval.str) = (yyvsp[(1) - (1)].str);}
2802 if (asprintf(&((yyval.str)),
"%s%s", (yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].str)) < 0) {
2803 ast_log(LOG_WARNING,
"asprintf() failed\n");
2806 free((yyvsp[(1) - (2)].str));
2807 free((yyvsp[(2) - (2)].str));
2808 prev_word = (yyval.str);
2817 { (yyval.str) = (yyvsp[(1) - (1)].str); }
2825 if (asprintf(&((yyval.str)),
"%s %s", (yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].str)) < 0) {
2826 ast_log(LOG_WARNING,
"asprintf() failed\n");
2829 free((yyvsp[(1) - (2)].str));
2830 free((yyvsp[(2) - (2)].str));
2840 if (asprintf(&((yyval.str)),
"%s:%s", (yyvsp[(1) - (3)].str), (yyvsp[(3) - (3)].str)) < 0) {
2841 ast_log(LOG_WARNING,
"asprintf() failed\n");
2844 free((yyvsp[(1) - (3)].str));
2845 free((yyvsp[(3) - (3)].str));
2855 if (asprintf(&((yyval.str)),
"%s&%s", (yyvsp[(1) - (3)].str), (yyvsp[(3) - (3)].str)) < 0) {
2856 ast_log(LOG_WARNING,
"asprintf() failed\n");
2859 free((yyvsp[(1) - (3)].str));
2860 free((yyvsp[(3) - (3)].str));
2870 if (asprintf(&((yyval.str)),
"%s@%s", (yyvsp[(1) - (3)].str), (yyvsp[(3) - (3)].str)) < 0) {
2871 ast_log(LOG_WARNING,
"asprintf() failed\n");
2874 free((yyvsp[(1) - (3)].str));
2875 free((yyvsp[(3) - (3)].str));
2884 { (yyval.str) = (yyvsp[(1) - (1)].str);}
2892 if (asprintf(&((yyval.str)),
"%s%s", (yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].str)) < 0) {
2893 ast_log(LOG_WARNING,
"asprintf() failed\n");
2896 free((yyvsp[(1) - (2)].str));
2897 free((yyvsp[(2) - (2)].str));
2898 prev_word = (yyval.str);
2908 if (asprintf(&((yyval.str)),
"%s%s%s", (yyvsp[(1) - (3)].str), (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str)) < 0) {
2909 ast_log(LOG_WARNING,
"asprintf() failed\n");
2912 free((yyvsp[(1) - (3)].str));
2913 free((yyvsp[(2) - (3)].str));
2914 free((yyvsp[(3) - (3)].str));
2915 prev_word=(yyval.str);
2924 { (yyval.str) = (yyvsp[(1) - (1)].str);}
2932 if (asprintf(&((yyval.str)),
"%s%s", (yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].str)) < 0) {
2933 ast_log(LOG_WARNING,
"asprintf() failed\n");
2936 free((yyvsp[(1) - (2)].str));
2937 free((yyvsp[(2) - (2)].str));
2947 if (asprintf(&((yyval.str)),
"%s:%s", (yyvsp[(1) - (3)].str), (yyvsp[(3) - (3)].str)) < 0) {
2948 ast_log(LOG_WARNING,
"asprintf() failed\n");
2951 free((yyvsp[(1) - (3)].str));
2952 free((yyvsp[(3) - (3)].str));
2962 (yyval.pval) = npval2(PV_SWITCH, &(yylsp[(1) - (5)]), &(yylsp[(5) - (5)]));
2963 (yyval.pval)->u1.str = (yyvsp[(2) - (5)].str);
2964 (yyval.pval)->u2.statements = (yyvsp[(4) - (5)].
pval); set_dads((yyval.pval),(yyvsp[(4) - (5)].pval));}
2972 (yyval.pval) = npval2(PV_STATEMENTBLOCK, &(yylsp[(1) - (3)]), &(yylsp[(3) - (3)]));
2973 (yyval.pval)->u1.list = (yyvsp[(2) - (3)].
pval); set_dads((yyval.pval),(yyvsp[(2) - (3)].pval));}
2980 { (yyval.pval) = (yyvsp[(1) - (1)].
pval); }
2987 { (yyval.pval) = (yyvsp[(1) - (1)].
pval); }
2995 (yyval.pval) = npval2(PV_GOTO, &(yylsp[(1) - (3)]), &(yylsp[(3) - (3)]));
2996 (yyval.pval)->u1.list = (yyvsp[(2) - (3)].
pval);}
3004 (yyval.pval) = npval2(PV_GOTO, &(yylsp[(1) - (3)]), &(yylsp[(3) - (3)]));
3005 (yyval.pval)->u1.list = (yyvsp[(2) - (3)].
pval);}
3013 (yyval.pval) = npval2(PV_LABEL, &(yylsp[(1) - (2)]), &(yylsp[(2) - (2)]));
3014 (yyval.pval)->u1.str = (yyvsp[(1) - (2)].str); }
3021 {reset_semicount(parseio->scanner);}
3028 {reset_semicount(parseio->scanner);}
3035 {reset_parencount(parseio->scanner);}
3043 (yyval.pval) = npval2(PV_FOR, &(yylsp[(1) - (12)]), &(yylsp[(12) - (12)]));
3044 (yyval.pval)->u1.for_init = (yyvsp[(4) - (12)].str);
3045 (yyval.pval)->u2.for_test=(yyvsp[(7) - (12)].str);
3046 (yyval.pval)->u3.for_inc = (yyvsp[(10) - (12)].str);
3047 (yyval.pval)->u4.for_statements = (yyvsp[(12) - (12)].
pval); set_dads((yyval.pval),(yyvsp[(12) - (12)].pval));}
3055 (yyval.pval) = npval2(PV_WHILE, &(yylsp[(1) - (3)]), &(yylsp[(3) - (3)]));
3056 (yyval.pval)->u1.str = (yyvsp[(2) - (3)].str);
3057 (yyval.pval)->u2.statements = (yyvsp[(3) - (3)].
pval); set_dads((yyval.pval),(yyvsp[(3) - (3)].pval));}
3064 { (yyval.pval) = (yyvsp[(1) - (1)].
pval); }
3071 { (yyval.pval) = update_last((yyvsp[(2) - (3)].
pval), &(yylsp[(2) - (3)])); }
3078 { (yyval.pval) = update_last((yyvsp[(1) - (2)].
pval), &(yylsp[(2) - (2)])); }
3086 (yyval.pval)= npval2(PV_APPLICATION_CALL, &(yylsp[(1) - (2)]), &(yylsp[(2) - (2)]));
3087 (yyval.pval)->u1.str = (yyvsp[(1) - (2)].str);}
3094 {reset_semicount(parseio->scanner);}
3105 (yyval.pval) = npval2(PV_VARDEC, &(yylsp[(1) - (5)]), &(yylsp[(5) - (5)]));
3106 (yyval.pval)->u2.val=(yyvsp[(4) - (5)].str);
3109 tot+=strlen((yyvsp[(1) - (5)].
pval)->u1.str);
3110 for(pptr=(yyvsp[(1) - (5)].
pval)->u2.arglist;pptr;pptr=pptr->next) {
3111 tot+=strlen(pptr->u1.str);
3115 bufx = calloc(1, tot);
3116 strcpy(bufx,(yyvsp[(1) - (5)].
pval)->u1.str);
3119 for (pptr=(yyvsp[(1) - (5)].
pval)->u2.arglist;pptr;pptr=pptr->next) {
3120 if ( pptr != (yyvsp[(1) - (5)].
pval)->u2.arglist )
3122 strcat(bufx,pptr->u1.str);
3126 if ( !ael_is_funcname((yyvsp[(1) - (5)].
pval)->u1.str) )
3127 ast_log(LOG_WARNING,
"==== File: %s, Line %d, Cols: %d-%d: Function call? The name %s is not in my internal list of function names\n",
3128 my_file, (yylsp[(1) - (5)]).first_line, (yylsp[(1) - (5)]).first_column, (yylsp[(1) - (5)]).last_column, (yyvsp[(1) - (5)].
pval)->u1.str);
3130 (yyval.pval)->u1.str = bufx;
3131 destroy_pval((yyvsp[(1) - (5)].
pval));
3140 { (yyval.pval) = npval2(PV_BREAK, &(yylsp[(1) - (2)]), &(yylsp[(2) - (2)])); }
3147 { (yyval.pval) = npval2(PV_RETURN, &(yylsp[(1) - (2)]), &(yylsp[(2) - (2)])); }
3154 { (yyval.pval) = npval2(PV_CONTINUE, &(yylsp[(1) - (2)]), &(yylsp[(2) - (2)])); }
3162 (yyval.pval) = update_last((yyvsp[(1) - (3)].
pval), &(yylsp[(2) - (3)]));
3163 (yyval.pval)->u2.statements = (yyvsp[(2) - (3)].
pval); set_dads((yyval.pval),(yyvsp[(2) - (3)].pval));
3164 (yyval.pval)->u3.else_statements = (yyvsp[(3) - (3)].
pval);set_dads((yyval.pval),(yyvsp[(3) - (3)].pval));}
3178 { (yyval.pval) = (yyvsp[(2) - (2)].
pval); }
3185 { (yyval.pval) = NULL ; }
3192 { (yyval.pval) = nword((yyvsp[(1) - (1)].str), &(yylsp[(1) - (1)])); }
3200 (yyval.pval) = nword((yyvsp[(1) - (3)].str), &(yylsp[(1) - (3)]));
3201 (yyval.pval)->next = nword((yyvsp[(3) - (3)].str), &(yylsp[(3) - (3)])); }
3209 (yyval.pval) = nword((yyvsp[(1) - (3)].str), &(yylsp[(1) - (3)]));
3210 (yyval.pval)->next = nword((yyvsp[(3) - (3)].str), &(yylsp[(3) - (3)])); }
3218 (yyval.pval) = nword((yyvsp[(1) - (5)].str), &(yylsp[(1) - (5)]));
3219 (yyval.pval)->next = nword((yyvsp[(3) - (5)].str), &(yylsp[(3) - (5)]));
3220 (yyval.pval)->next->next = nword((yyvsp[(5) - (5)].str), &(yylsp[(5) - (5)])); }
3228 (yyval.pval) = nword((yyvsp[(1) - (5)].str), &(yylsp[(1) - (5)]));
3229 (yyval.pval)->next = nword((yyvsp[(3) - (5)].str), &(yylsp[(3) - (5)]));
3230 (yyval.pval)->next->next = nword((yyvsp[(5) - (5)].str), &(yylsp[(5) - (5)])); }
3238 (yyval.pval) = nword(strdup(
"default"), &(yylsp[(1) - (5)]));
3239 (yyval.pval)->next = nword((yyvsp[(3) - (5)].str), &(yylsp[(3) - (5)]));
3240 (yyval.pval)->next->next = nword((yyvsp[(5) - (5)].str), &(yylsp[(5) - (5)])); }
3248 (yyval.pval) = nword(strdup(
"default"), &(yylsp[(1) - (5)]));
3249 (yyval.pval)->next = nword((yyvsp[(3) - (5)].str), &(yylsp[(3) - (5)]));
3250 (yyval.pval)->next->next = nword((yyvsp[(5) - (5)].str), &(yylsp[(5) - (5)])); }
3257 { (yyval.str) = strdup(
"1"); }
3264 { (yyval.str) = (yyvsp[(2) - (2)].str); }
3272 (yyval.pval) = nword((yyvsp[(1) - (2)].str), &(yylsp[(1) - (2)]));
3273 (yyval.pval)->next = nword((yyvsp[(2) - (2)].str), &(yylsp[(2) - (2)])); }
3281 (yyval.pval) = nword((yyvsp[(4) - (4)].str), &(yylsp[(4) - (4)]));
3282 (yyval.pval)->next = nword((yyvsp[(1) - (4)].str), &(yylsp[(1) - (4)]));
3283 (yyval.pval)->next->next = nword((yyvsp[(2) - (4)].str), &(yylsp[(2) - (4)])); }
3290 {reset_argcount(parseio->scanner);}
3299 (yyval.pval) = npval2(PV_MACRO_CALL, &(yylsp[(1) - (5)]), &(yylsp[(5) - (5)]));
3300 (yyval.pval)->u1.str = (yyvsp[(1) - (5)].str);
3301 (yyval.pval)->u2.arglist = (yyvsp[(4) - (5)].
pval);}
3309 (yyval.pval)= npval2(PV_MACRO_CALL, &(yylsp[(1) - (3)]), &(yylsp[(3) - (3)]));
3310 (yyval.pval)->u1.str = (yyvsp[(1) - (3)].str); }
3317 {reset_argcount(parseio->scanner);}
3325 if (strcasecmp((yyvsp[(1) - (3)].str),
"goto") == 0) {
3326 (yyval.pval) = npval2(PV_GOTO, &(yylsp[(1) - (3)]), &(yylsp[(2) - (3)]));
3327 free((yyvsp[(1) - (3)].str));
3328 ast_log(LOG_WARNING,
"==== File: %s, Line %d, Cols: %d-%d: Suggestion: Use the goto statement instead of the Goto() application call in AEL.\n", my_file, (yylsp[(1) - (3)]).first_line, (yylsp[(1) - (3)]).first_column, (yylsp[(1) - (3)]).last_column );
3330 (yyval.pval)= npval2(PV_APPLICATION_CALL, &(yylsp[(1) - (3)]), &(yylsp[(2) - (3)]));
3331 (yyval.pval)->u1.str = (yyvsp[(1) - (3)].str);
3340 (yyval.pval) = update_last((yyvsp[(1) - (3)].
pval), &(yylsp[(3) - (3)]));
3341 if( (yyval.pval)->type == PV_GOTO )
3342 (yyval.pval)->u1.list = (yyvsp[(2) - (3)].pval);
3344 (yyval.pval)->u2.arglist = (yyvsp[(2) - (3)].pval);
3352 { (yyval.pval) = update_last((yyvsp[(1) - (2)].
pval), &(yylsp[(2) - (2)])); }
3359 { (yyval.str) = (yyvsp[(1) - (1)].str) ;}
3366 { (yyval.str) = strdup(
""); }
3373 { (yyval.pval) = nword((yyvsp[(1) - (1)].str), &(yylsp[(1) - (1)])); }
3381 (yyval.pval)= npval(PV_WORD,0,0,0, 0);
3382 (yyval.pval)->u1.str = strdup(
""); }
3389 { (yyval.pval) = linku1((yyvsp[(1) - (3)].
pval), nword((yyvsp[(3) - (3)].str), &(yylsp[(3) - (3)]))); }
3396 { (yyval.pval) = NULL; }
3403 { (yyval.pval) = linku1((yyvsp[(1) - (2)].
pval), (yyvsp[(2) - (2)].pval)); }
3411 (yyval.pval) = npval2(PV_CASE, &(yylsp[(1) - (4)]), &(yylsp[(3) - (4)]));
3412 (yyval.pval)->u1.str = (yyvsp[(2) - (4)].str);
3413 (yyval.pval)->u2.statements = (yyvsp[(4) - (4)].
pval); set_dads((yyval.pval),(yyvsp[(4) - (4)].pval));}
3421 (yyval.pval) = npval2(PV_DEFAULT, &(yylsp[(1) - (3)]), &(yylsp[(3) - (3)]));
3422 (yyval.pval)->u1.str = NULL;
3423 (yyval.pval)->u2.statements = (yyvsp[(3) - (3)].pval);set_dads((yyval.pval),(yyvsp[(3) - (3)].pval));}
3431 (yyval.pval) = npval2(PV_PATTERN, &(yylsp[(1) - (4)]), &(yylsp[(4) - (4)]));
3432 (yyval.pval)->u1.str = (yyvsp[(2) - (4)].str);
3433 (yyval.pval)->u2.statements = (yyvsp[(4) - (4)].
pval);set_dads((yyval.pval),(yyvsp[(4) - (4)].pval));}
3440 { (yyval.pval) = NULL; }
3447 { (yyval.pval) = linku1((yyvsp[(1) - (2)].
pval), (yyvsp[(2) - (2)].pval)); }
3454 {(yyval.pval)=(yyvsp[(1) - (1)].
pval);}
3461 { (yyval.pval)=(yyvsp[(1) - (1)].
pval);}
3469 (yyval.pval) = npval2(PV_CATCH, &(yylsp[(1) - (5)]), &(yylsp[(5) - (5)]));
3470 (yyval.pval)->u1.str = (yyvsp[(2) - (5)].str);
3471 (yyval.pval)->u2.statements = (yyvsp[(4) - (5)].
pval); set_dads((yyval.pval),(yyvsp[(4) - (5)].pval));}
3479 (yyval.pval) = npval2(PV_SWITCHES, &(yylsp[(1) - (4)]), &(yylsp[(2) - (4)]));
3480 (yyval.pval)->u1.list = (yyvsp[(3) - (4)].
pval); set_dads((yyval.pval),(yyvsp[(3) - (4)].pval));}
3488 (yyval.pval) = npval2(PV_ESWITCHES, &(yylsp[(1) - (4)]), &(yylsp[(2) - (4)]));
3489 (yyval.pval)->u1.list = (yyvsp[(3) - (4)].
pval); set_dads((yyval.pval),(yyvsp[(3) - (4)].pval));}
3496 { (yyval.pval) = NULL; }
3503 { (yyval.pval) = linku1((yyvsp[(1) - (3)].
pval),nword((yyvsp[(2) - (3)].str), &(yylsp[(2) - (3)]))); }
3512 if (asprintf(&x,
"%s@%s", (yyvsp[(2) - (5)].str), (yyvsp[(4) - (5)].str)) < 0) {
3513 ast_log(LOG_WARNING,
"asprintf() failed\n");
3514 (yyval.pval) = NULL;
3516 free((yyvsp[(2) - (5)].str));
3517 free((yyvsp[(4) - (5)].str));
3518 (yyval.pval) = linku1((yyvsp[(1) - (5)].
pval),nword(x, &(yylsp[(2) - (5)])));
3527 {(yyval.pval)=(yyvsp[(2) - (2)].
pval);}
3534 { (yyval.pval) = nword((yyvsp[(1) - (1)].str), &(yylsp[(1) - (1)])); }
3542 (yyval.pval) = nword((yyvsp[(1) - (3)].str), &(yylsp[(1) - (3)]));
3543 (yyval.pval)->u2.arglist = (yyvsp[(3) - (3)].
pval);
3551 { (yyval.pval) = (yyvsp[(1) - (2)].
pval); }
3558 { (yyval.pval) = linku1((yyvsp[(1) - (3)].
pval), (yyvsp[(2) - (3)].pval)); }
3565 {(yyval.pval)=(yyvsp[(1) - (2)].
pval);}
3573 (yyval.pval) = npval2(PV_INCLUDES, &(yylsp[(1) - (4)]), &(yylsp[(4) - (4)]));
3574 (yyval.pval)->u1.list = (yyvsp[(3) - (4)].
pval);set_dads((yyval.pval),(yyvsp[(3) - (4)].pval));}
3582 (yyval.pval) = npval2(PV_INCLUDES, &(yylsp[(1) - (3)]), &(yylsp[(3) - (3)]));}
3588 #line 3589 "ael.tab.c"
3602 YY_SYMBOL_PRINT (
"-> $$ =", yyr1[yyn], &yyval, &yyloc);
3606 YY_STACK_PRINT (yyss, yyssp);
3617 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
3618 if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
3619 yystate = yytable[yystate];
3621 yystate = yydefgoto[yyn - YYNTOKENS];
3632 yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
3638 #if ! YYERROR_VERBOSE
3639 yyerror (&yylloc, parseio, YY_(
"syntax error"));
3641 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
3644 char const *yymsgp = YY_(
"syntax error");
3645 int yysyntax_error_status;
3646 yysyntax_error_status = YYSYNTAX_ERROR;
3647 if (yysyntax_error_status == 0)
3649 else if (yysyntax_error_status == 1)
3651 if (yymsg != yymsgbuf)
3652 YYSTACK_FREE (yymsg);
3653 yymsg = (
char *) YYSTACK_ALLOC (yymsg_alloc);
3657 yymsg_alloc =
sizeof yymsgbuf;
3658 yysyntax_error_status = 2;
3662 yysyntax_error_status = YYSYNTAX_ERROR;
3666 yyerror (&yylloc, parseio, yymsgp);
3667 if (yysyntax_error_status == 2)
3668 goto yyexhaustedlab;
3670 # undef YYSYNTAX_ERROR
3674 yyerror_range[1] = yylloc;
3676 if (yyerrstatus == 3)
3681 if (yychar <= YYEOF)
3684 if (yychar == YYEOF)
3689 yydestruct (
"Error: discarding",
3690 yytoken, &yylval, &yylloc, parseio);
3711 yyerror_range[1] = yylsp[1-yylen];
3716 YY_STACK_PRINT (yyss, yyssp);
3729 yyn = yypact[yystate];
3730 if (!yypact_value_is_default (yyn))
3733 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
3745 yyerror_range[1] = *yylsp;
3746 yydestruct (
"Error: popping",
3747 yystos[yystate], yyvsp, yylsp, parseio);
3750 YY_STACK_PRINT (yyss, yyssp);
3755 yyerror_range[2] = yylloc;
3758 YYLLOC_DEFAULT (yyloc, yyerror_range, 2);
3762 YY_SYMBOL_PRINT (
"Shifting", yystos[yyn], yyvsp, yylsp);
3782 #if !defined(yyoverflow) || YYERROR_VERBOSE
3787 yyerror (&yylloc, parseio, YY_(
"memory exhausted"));
3793 if (yychar != YYEMPTY)
3797 yytoken = YYTRANSLATE (yychar);
3798 yydestruct (
"Cleanup: discarding lookahead",
3799 yytoken, &yylval, &yylloc, parseio);
3804 YY_STACK_PRINT (yyss, yyssp);
3805 while (yyssp != yyss)
3807 yydestruct (
"Cleanup: popping",
3808 yystos[*yyssp], yyvsp, yylsp, parseio);
3813 YYSTACK_FREE (yyss);
3816 if (yymsg != yymsgbuf)
3817 YYSTACK_FREE (yymsg);
3820 return YYID (yyresult);
3829 static char *token_equivs1[] =
3869 static char *token_equivs2[] =
3910 static char *ael_token_subst(
const char *mess)
3916 int token_equivs_entries =
sizeof(token_equivs1)/
sizeof(
char*);
3918 for (p=mess; *p; p++) {
3919 for (i=0; i<token_equivs_entries; i++) {
3920 if ( strncmp(p,token_equivs1[i],strlen(token_equivs1[i])) == 0 )
3922 len+=strlen(token_equivs2[i])+2;
3923 p += strlen(token_equivs1[i])-1;
3929 res = calloc(1, len+1);
3934 for (i=0; i<token_equivs_entries; i++) {
3935 if ( strncmp(p,token_equivs1[i],strlen(token_equivs1[i])) == 0 ) {
3937 for (t=token_equivs2[i]; *t;) {
3941 p += strlen(token_equivs1[i]);
3955 char *s2 = ael_token_subst((
char *)s);
3956 if (locp->first_line == locp->last_line) {
3957 ast_log(LOG_ERROR,
"==== File: %s, Line %d, Cols: %d-%d: Error: %s\n", my_file, locp->first_line, locp->first_column, locp->last_column, s2);
3959 ast_log(LOG_ERROR,
"==== File: %s, Line %d Col %d to Line %d Col %d: Error: %s\n", my_file, locp->first_line, locp->first_column, locp->last_line, locp->last_column, s2);
3962 parseio->syntax_error_count++;
3965 struct pval *npval(pvaltype type,
int first_line,
int last_line,
3966 int first_column,
int last_column)
3968 pval *z = calloc(1,
sizeof(
struct pval));
3970 z->startline = first_line;
3971 z->endline = last_line;
3972 z->startcol = first_column;
3973 z->endcol = last_column;
3974 z->filename = strdup(
S_OR(my_file,
"<none>"));
3980 return npval(type, first->first_line, last->last_line,
3981 first->first_column, last->last_column);
3986 obj->endline = last->last_line;
3987 obj->endcol = last->last_column;
3994 pval *p = npval2(PV_WORD, pos, pos);
4001 static void set_dads(
struct pval *dad,
struct pval *child_list)
4005 for(t=child_list;t;t=t->next)
Asterisk locking-related definitions:
Asterisk main include file. File version handling, generic pbx functions.
Generic (perhaps overly so) hashtable implementation Hash Table support in Asterisk.
Structures for AEL - the Asterisk extension language.
Support for logging to various files, console and syslog Configuration in file logger.conf.
Structure used to handle boolean flags.
#define S_OR(a, b)
returns the equivalent of logic or for strings: first one if not empty, otherwise second one...