52#define YYBISON_VERSION "3.8.2"
55#define YYSKELETON_NAME "yacc.c"
67#define YYSTYPE NSGENBIND_STYPE
68#define YYLTYPE NSGENBIND_LTYPE
70#define yyparse nsgenbind_parse
71#define yylex nsgenbind_lex
72#define yyerror nsgenbind_error
73#define yydebug nsgenbind_debug
74#define yynerrs nsgenbind_nerrs
79# define YY_CAST(Type, Val) static_cast<Type> (Val)
80# define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
82# define YY_CAST(Type, Val) ((Type) (Val))
83# define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
87# if defined __cplusplus
88# if 201103L <= __cplusplus
89# define YY_NULLPTR nullptr
94# define YY_NULLPTR ((void*)0)
170#line 71 "src/nsgenbind-parser.y"
183#define YYFPRINTF genbind_fprintf
184#define YY_LOCATION_PRINT(File, Loc) \
185 genbind_fprintf(File, "%d.%d-%d.%d", \
186 (Loc).first_line, (Loc).first_column, \
187 (Loc).last_line, (Loc).last_column)
196static void nsgenbind_error(
YYLTYPE *locp,
206 errlen = snprintf(NULL, 0,
"%s:%d:%s",
208 errtxt =
malloc(errlen + 1);
209 snprintf(errtxt, errlen + 1,
"%s:%d:%s",
241 cdata_node = declarator;
265 if (class_node == NULL) {
283#line 284 "build-x86_64-linux-gnu-x86_64-linux-gnu-release-binary/nsgenbind-parser.c"
293#ifndef __PTRDIFF_MAX__
295# if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
306#ifdef __INT_LEAST8_MAX__
308#elif defined YY_STDINT_H
314#ifdef __INT_LEAST16_MAX__
316#elif defined YY_STDINT_H
328# undef UINT_LEAST8_MAX
329# undef UINT_LEAST16_MAX
330# define UINT_LEAST8_MAX 255
331# define UINT_LEAST16_MAX 65535
334#if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
336#elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
337 && UINT_LEAST8_MAX <= INT_MAX)
339#elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX
345#if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__
347#elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \
348 && UINT_LEAST16_MAX <= INT_MAX)
350#elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX
357# if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__
358# define YYPTRDIFF_T __PTRDIFF_TYPE__
359# define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__
360# elif defined PTRDIFF_MAX
364# define YYPTRDIFF_T ptrdiff_t
365# define YYPTRDIFF_MAXIMUM PTRDIFF_MAX
367# define YYPTRDIFF_T long
368# define YYPTRDIFF_MAXIMUM LONG_MAX
374# define YYSIZE_T __SIZE_TYPE__
376# define YYSIZE_T size_t
377# elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
379# define YYSIZE_T size_t
381# define YYSIZE_T unsigned
385#define YYSIZE_MAXIMUM \
386 YY_CAST (YYPTRDIFF_T, \
387 (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \
388 ? YYPTRDIFF_MAXIMUM \
389 : YY_CAST (YYSIZE_T, -1)))
391#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
401# if defined YYENABLE_NLS && YYENABLE_NLS
404# define YY_(Msgid) dgettext ("bison-runtime", Msgid)
408# define YY_(Msgid) Msgid
413#ifndef YY_ATTRIBUTE_PURE
414# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
415# define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
417# define YY_ATTRIBUTE_PURE
421#ifndef YY_ATTRIBUTE_UNUSED
422# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
423# define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
425# define YY_ATTRIBUTE_UNUSED
430#if ! defined lint || defined __GNUC__
431# define YY_USE(E) ((void) (E))
437#if defined __GNUC__ && ! defined __ICC && 406 <= __GNUC__ * 100 + __GNUC_MINOR__
438# if __GNUC__ * 100 + __GNUC_MINOR__ < 407
439# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
440 _Pragma ("GCC diagnostic push") \
441 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")
443# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
444 _Pragma ("GCC diagnostic push") \
445 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \
446 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
448# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
449 _Pragma ("GCC diagnostic pop")
451# define YY_INITIAL_VALUE(Value) Value
453#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
454# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
455# define YY_IGNORE_MAYBE_UNINITIALIZED_END
457#ifndef YY_INITIAL_VALUE
458# define YY_INITIAL_VALUE(Value)
461#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
462# define YY_IGNORE_USELESS_CAST_BEGIN \
463 _Pragma ("GCC diagnostic push") \
464 _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
465# define YY_IGNORE_USELESS_CAST_END \
466 _Pragma ("GCC diagnostic pop")
468#ifndef YY_IGNORE_USELESS_CAST_BEGIN
469# define YY_IGNORE_USELESS_CAST_BEGIN
470# define YY_IGNORE_USELESS_CAST_END
474#define YY_ASSERT(E) ((void) (0 && (E)))
480# ifdef YYSTACK_USE_ALLOCA
481# if YYSTACK_USE_ALLOCA
483# define YYSTACK_ALLOC __builtin_alloca
484# elif defined __BUILTIN_VA_ARG_INCR
487# define YYSTACK_ALLOC __alloca
488# elif defined _MSC_VER
490# define alloca _alloca
492# define YYSTACK_ALLOC alloca
493# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
497# define EXIT_SUCCESS 0
506# define YYSTACK_FREE(Ptr) do { ; } while (0)
507# ifndef YYSTACK_ALLOC_MAXIMUM
512# define YYSTACK_ALLOC_MAXIMUM 4032
515# define YYSTACK_ALLOC YYMALLOC
516# define YYSTACK_FREE YYFREE
517# ifndef YYSTACK_ALLOC_MAXIMUM
518# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
520# if (defined __cplusplus && ! defined EXIT_SUCCESS \
521 && ! ((defined YYMALLOC || defined malloc) \
522 && (defined YYFREE || defined free)))
525# define EXIT_SUCCESS 0
529# define YYMALLOC malloc
530# if ! defined malloc && ! defined EXIT_SUCCESS
536# if ! defined free && ! defined EXIT_SUCCESS
543#if (! defined yyoverflow \
544 && (! defined __cplusplus \
545 || (defined NSGENBIND_LTYPE_IS_TRIVIAL && NSGENBIND_LTYPE_IS_TRIVIAL \
546 && defined NSGENBIND_STYPE_IS_TRIVIAL && NSGENBIND_STYPE_IS_TRIVIAL)))
557# define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1)
561# define YYSTACK_BYTES(N) \
562 ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE) \
563 + YYSIZEOF (YYLTYPE)) \
564 + 2 * YYSTACK_GAP_MAXIMUM)
566# define YYCOPY_NEEDED 1
573# define YYSTACK_RELOCATE(Stack_alloc, Stack) \
576 YYPTRDIFF_T yynewbytes; \
577 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
578 Stack = &yyptr->Stack_alloc; \
579 yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
580 yyptr += yynewbytes / YYSIZEOF (*yyptr); \
586#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
590# if defined __GNUC__ && 1 < __GNUC__
591# define YYCOPY(Dst, Src, Count) \
592 __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
594# define YYCOPY(Dst, Src, Count) \
598 for (yyi = 0; yyi < (Count); yyi++) \
599 (Dst)[yyi] = (Src)[yyi]; \
626#define YYTRANSLATE(YYX) \
627 (0 <= (YYX) && (YYX) <= YYMAXUTOK \
628 ? YY_CAST (yysymbol_kind_t, yytranslate[YYX]) \
635 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
636 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
637 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
638 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
639 35, 36, 33, 2, 34, 2, 2, 2, 2, 2,
640 2, 2, 2, 2, 2, 2, 2, 2, 2, 30,
641 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
642 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
643 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
644 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
645 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
646 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
647 2, 2, 2, 31, 2, 32, 2, 2, 2, 2,
648 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
649 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
650 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
651 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
652 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
653 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
654 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
655 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
656 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
657 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
658 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
659 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
660 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
661 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
662 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
670 0, 259, 259, 266, 268, 273, 282, 284, 286, 290,
671 300, 302, 309, 311, 325, 335, 344, 353, 362, 369,
672 371, 378, 383, 392, 394, 402, 407, 418, 423, 430,
673 435, 440, 445, 450, 455, 460, 464, 469, 474, 479,
674 486, 491, 496, 504, 515, 526, 535, 546, 555, 559,
675 566, 571, 576, 586, 591, 604, 609, 617, 621, 628,
681#define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State])
690static const char *
const yytname[] =
692 "\"end of file\"",
"error",
"\"invalid token\"",
"TOK_BINDING",
693 "TOK_WEBIDL",
"TOK_PREFACE",
"TOK_PROLOGUE",
"TOK_EPILOGUE",
694 "TOK_POSTFACE",
"TOK_CLASS",
"TOK_PRIVATE",
"TOK_INTERNAL",
"TOK_FLAGS",
695 "TOK_TYPE",
"TOK_UNSHARED",
"TOK_SHARED",
"TOK_PROPERTY",
"TOK_INIT",
696 "TOK_FINI",
"TOK_METHOD",
"TOK_GETTER",
"TOK_SETTER",
"TOK_PROTOTYPE",
697 "TOK_DBLCOLON",
"TOK_STRUCT",
"TOK_UNION",
"TOK_UNSIGNED",
698 "TOK_IDENTIFIER",
"TOK_STRING_LITERAL",
"TOK_CCODE_LITERAL",
"';'",
699 "'{'",
"'}'",
"'*'",
"','",
"'('",
"')'",
"$accept",
"Input",
700 "Statements",
"Statement",
"Binding",
"BindingArgs",
"BindingArg",
701 "WebIDL",
"CTypeSpecifier",
"CType",
"CTypeIdent",
"CBlock",
702 "ParameterList",
"Method",
"MethodType",
"BindingAndMethodType",
703 "MethodName",
"MethodDeclarator",
"Class",
"ClassArgs",
"ClassArg",
704 "ClassFlags",
"Modifiers",
"Modifier",
YY_NULLPTR
710 return yytname[yysymbol];
714#define YYPACT_NINF (-42)
716#define yypact_value_is_default(Yyn) \
717 ((Yyn) == YYPACT_NINF)
719#define YYTABLE_NINF (-1)
721#define yytable_value_is_error(Yyn) \
728 6, -20, 13, -42, -42, -42, -42, 51, -42, -42,
729 -42, -42, -42, -42, 91, 26, -42, -42, -42, 65,
730 -42, -42, -42, 62, 64, -42, -42, -15, 37, 76,
731 63, 38, 28, -42, -42, 67, 66, -2, -42, -42,
732 68, 61, 61, 71, -42, 68, 69, 63, -42, -42,
733 -42, 70, 72, 73, 75, -42, -42, 74, 77, -42,
734 -17, -42, 78, 79, -42, 47, 80, 81, -42, -12,
735 23, 60, 82, -42, 36, -42, -42, -42, -42, 83,
736 61, -42, -42, -42, -42, -42, -42, -42, 86, -42,
737 -42, -42, 84, -42, -42, -42, -42, 22, 88, -42,
746 0, 0, 0, 36, 37, 38, 39, 0, 29, 30,
747 31, 32, 33, 34, 0, 2, 3, 6, 8, 0,
748 35, 7, 5, 0, 0, 1, 4, 0, 0, 0,
749 48, 0, 0, 23, 28, 27, 0, 0, 10, 12,
750 0, 0, 0, 0, 57, 0, 0, 48, 42, 41,
751 40, 0, 0, 0, 0, 18, 46, 19, 0, 25,
752 0, 24, 0, 0, 11, 0, 0, 0, 55, 0,
753 0, 0, 0, 49, 0, 16, 17, 15, 20, 21,
754 0, 45, 14, 9, 13, 50, 51, 53, 0, 59,
755 60, 61, 0, 58, 54, 47, 44, 0, 0, 26,
762 -42, -42, -42, 101, -42, -42, 85, -42, -42, -42,
763 -41, -24, 29, -42, -42, 12, -42, -42, -42, 87,
770 0, 14, 15, 16, 17, 37, 38, 39, 57, 58,
771 59, 35, 60, 18, 19, 20, 51, 28, 21, 46,
780 66, 67, 36, 3, 4, 5, 6, 1, 31, 2,
781 22, 3, 4, 5, 6, 7, 65, 80, 87, 81,
782 32, 71, 88, 8, 9, 10, 11, 12, 13, 2,
783 63, 3, 4, 5, 6, 7, 89, 90, 91, 99,
784 23, 40, 45, 8, 9, 10, 11, 12, 13, 40,
785 92, 48, 52, 53, 54, 55, 80, 49, 102, 45,
786 52, 53, 54, 55, 56, 50, 33, 34, 3, 4,
787 5, 6, 96, 41, 42, 43, 61, 84, 24, 44,
788 36, 3, 4, 5, 6, 52, 53, 54, 55, 61,
789 94, 25, 27, 29, 62, 30, 61, 33, 68, 75,
790 76, 72, 77, 97, 79, 74, 98, 78, 82, 83,
791 85, 86, 95, 100, 101, 103, 26, 0, 0, 0,
792 0, 0, 64, 0, 0, 0, 0, 0, 0, 0,
798 41, 42, 4, 5, 6, 7, 8, 1, 23, 3,
799 30, 5, 6, 7, 8, 9, 40, 34, 30, 36,
800 35, 45, 34, 17, 18, 19, 20, 21, 22, 3,
801 32, 5, 6, 7, 8, 9, 13, 14, 15, 80,
802 27, 29, 30, 17, 18, 19, 20, 21, 22, 37,
803 27, 13, 24, 25, 26, 27, 34, 19, 36, 47,
804 24, 25, 26, 27, 36, 27, 29, 30, 5, 6,
805 7, 8, 36, 10, 11, 12, 29, 30, 27, 16,
806 4, 5, 6, 7, 8, 24, 25, 26, 27, 29,
807 30, 0, 27, 31, 28, 31, 29, 29, 27, 27,
808 27, 32, 27, 74, 27, 35, 23, 33, 30, 30,
809 30, 30, 30, 27, 30, 27, 15, -1, -1, -1,
810 -1, -1, 37, -1, -1, -1, -1, -1, -1, -1,
818 0, 1, 3, 5, 6, 7, 8, 9, 17, 18,
819 19, 20, 21, 22, 38, 39, 40, 41, 50, 51,
820 52, 55, 30, 27, 27, 0, 40, 27, 54, 31,
821 31, 23, 35, 29, 30, 48, 4, 42, 43, 44,
822 52, 10, 11, 12, 16, 52, 56, 57, 13, 19,
823 27, 53, 24, 25, 26, 27, 36, 45, 46, 47,
824 49, 29, 28, 32, 43, 48, 47, 47, 27, 58,
825 59, 48, 32, 56, 35, 27, 27, 27, 33, 27,
826 34, 36, 30, 30, 30, 30, 30, 30, 34, 13,
827 14, 15, 27, 60, 30, 30, 36, 49, 23, 47,
834 0, 37, 38, 39, 39, 39, 40, 40, 40, 41,
835 42, 42, 43, 43, 44, 45, 45, 45, 45, 46,
836 46, 47, 47, 48, 48, 49, 49, 50, 50, 51,
837 51, 51, 51, 51, 51, 51, 52, 52, 52, 52,
838 53, 53, 53, 54, 54, 54, 54, 55, 56, 56,
839 57, 57, 57, 57, 57, 58, 58, 59, 59, 60,
846 0, 2, 1, 1, 2, 2, 1, 1, 1, 6,
847 1, 2, 1, 3, 3, 2, 2, 2, 1, 1,
848 2, 2, 4, 1, 2, 1, 3, 3, 3, 1,
849 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
850 1, 1, 1, 6, 5, 4, 3, 6, 0, 2,
851 3, 3, 4, 3, 3, 1, 3, 0, 2, 1,
858#define yyerrok (yyerrstatus = 0)
859#define yyclearin (yychar = NSGENBIND_EMPTY)
861#define YYACCEPT goto yyacceptlab
862#define YYABORT goto yyabortlab
863#define YYERROR goto yyerrorlab
864#define YYNOMEM goto yyexhaustedlab
867#define YYRECOVERING() (!!yyerrstatus)
869#define YYBACKUP(Token, Value) \
871 if (yychar == NSGENBIND_EMPTY) \
875 YYPOPSTACK (yylen); \
881 yyerror (&yylloc, filename, genbind_ast, YY_("syntax error: cannot back up")); \
888#define YYERRCODE NSGENBIND_UNDEF
894#ifndef YYLLOC_DEFAULT
895# define YYLLOC_DEFAULT(Current, Rhs, N) \
899 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
900 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
901 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
902 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
906 (Current).first_line = (Current).last_line = \
907 YYRHSLOC (Rhs, 0).last_line; \
908 (Current).first_column = (Current).last_column = \
909 YYRHSLOC (Rhs, 0).last_column; \
914#define YYRHSLOC(Rhs, K) ((Rhs)[K])
922# define YYFPRINTF fprintf
925# define YYDPRINTF(Args) \
936# ifndef YYLOCATION_PRINT
938# if defined YY_LOCATION_PRINT
942# define YYLOCATION_PRINT(File, Loc) YY_LOCATION_PRINT(File, *(Loc))
944# elif defined NSGENBIND_LTYPE_IS_TRIVIAL && NSGENBIND_LTYPE_IS_TRIVIAL
950yy_location_print_ (FILE *yyo,
YYLTYPE const *
const yylocp)
968 else if (0 <= end_col && yylocp->
first_column < end_col)
974# define YYLOCATION_PRINT yy_location_print_
978# define YY_LOCATION_PRINT(File, Loc) YYLOCATION_PRINT(File, &(Loc))
982# define YYLOCATION_PRINT(File, Loc) ((void) 0)
985# define YY_LOCATION_PRINT YYLOCATION_PRINT
991# define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \
995 YYFPRINTF (stderr, "%s ", Title); \
996 yy_symbol_print (stderr, \
997 Kind, Value, Location, filename, genbind_ast); \
998 YYFPRINTF (stderr, "\n"); \
1008yy_symbol_value_print (FILE *yyo,
1011 FILE *yyoutput = yyo;
1029yy_symbol_print (FILE *yyo,
1033 yykind <
YYNTOKENS ?
"token" :
"nterm", yysymbol_name (yykind));
1037 yy_symbol_value_print (yyo, yykind, yyvaluep, yylocationp,
filename, genbind_ast);
1050 for (; yybottom <= yytop; yybottom++)
1052 int yybot = *yybottom;
1058# define YY_STACK_PRINT(Bottom, Top) \
1061 yy_stack_print ((Bottom), (Top)); \
1073 int yylno = yyrline[yyrule];
1074 int yynrhs = yyr2[yyrule];
1076 YYFPRINTF (stderr,
"Reducing stack by rule %d (line %d):\n",
1079 for (yyi = 0; yyi < yynrhs; yyi++)
1082 yy_symbol_print (stderr,
1084 &yyvsp[(yyi + 1) - (yynrhs)],
1085 &(yylsp[(yyi + 1) - (yynrhs)]),
filename, genbind_ast);
1090# define YY_REDUCE_PRINT(Rule) \
1093 yy_reduce_print (yyssp, yyvsp, yylsp, Rule, filename, genbind_ast); \
1100# define YYDPRINTF(Args) ((void) 0)
1101# define YY_SYMBOL_PRINT(Title, Kind, Value, Location)
1102# define YY_STACK_PRINT(Bottom, Top)
1103# define YY_REDUCE_PRINT(Rule)
1109# define YYINITDEPTH 200
1120# define YYMAXDEPTH 10000
1144 int yyn = yypact[+*yyctx->
yyssp];
1150 int yyxbegin = yyn < 0 ? -yyn : 0;
1152 int yychecklim =
YYLAST - yyn + 1;
1155 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
1161 else if (yycount == yyargn)
1167 if (yyarg && yycount == 0 && 0 < yyargn)
1176# if defined __GLIBC__ && defined _STRING_H
1177# define yystrlen(S) (YY_CAST (YYPTRDIFF_T, strlen (S)))
1181yystrlen (
const char *yystr)
1184 for (yylen = 0; yystr[yylen]; yylen++)
1192# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
1193# define yystpcpy stpcpy
1198yystpcpy (
char *yydest,
const char *yysrc)
1201 const char *yys = yysrc;
1203 while ((*yyd++ = *yys++) !=
'\0')
1220yytnamerr (
char *yyres,
const char *yystr)
1225 char const *yyp = yystr;
1231 goto do_not_strip_quotes;
1235 goto do_not_strip_quotes;
1251 do_not_strip_quotes: ;
1255 return yystpcpy (yyres, yystr) - yyres;
1257 return yystrlen (yystr);
1295 yyarg[yycount] = yyctx->
yytoken;
1297 yyn = yypcontext_expected_tokens (yyctx,
1298 yyarg ? yyarg + 1 : yyarg, yyargn - 1);
1316yysyntax_error (
YYPTRDIFF_T *yymsg_alloc,
char **yymsg,
1319 enum { YYARGS_MAX = 5 };
1329 int yycount = yy_syntax_error_arguments (yyctx, yyarg, YYARGS_MAX);
1335#define YYCASE_(N, S) \
1341 YYCASE_(1,
YY_(
"syntax error, unexpected %s"));
1342 YYCASE_(2,
YY_(
"syntax error, unexpected %s, expecting %s"));
1343 YYCASE_(3,
YY_(
"syntax error, unexpected %s, expecting %s or %s"));
1344 YYCASE_(4,
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s"));
1345 YYCASE_(5,
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s or %s"));
1351 yysize = yystrlen (yyformat) - 2 * yycount + 1;
1354 for (yyi = 0; yyi < yycount; ++yyi)
1357 = yysize + yytnamerr (
YY_NULLPTR, yytname[yyarg[yyi]]);
1365 if (*yymsg_alloc < yysize)
1367 *yymsg_alloc = 2 * yysize;
1368 if (! (yysize <= *yymsg_alloc
1380 while ((*yyp = *yyformat) !=
'\0')
1381 if (*yyp ==
'%' && yyformat[1] ==
's' && yyi < yycount)
1383 yyp += yytnamerr (yyp, yytname[yyarg[yyi++]]);
1401yydestruct (
const char *yymsg,
1441# if defined NSGENBIND_LTYPE_IS_TRIVIAL && NSGENBIND_LTYPE_IS_TRIVIAL
1452 int yyerrstatus = 0;
1490 char *yymsg = yymsgbuf;
1493#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N), yylsp -= (N))
1499 YYDPRINTF ((stderr,
"Starting parse\n"));
1505#line 65 "src/nsgenbind-parser.y"
1512#line 1513 "build-x86_64-linux-gnu-x86_64-linux-gnu-release-binary/nsgenbind-parser.c"
1531 YYDPRINTF ((stderr,
"Entering state %d\n", yystate));
1538 if (yyss + yystacksize - 1 <= yyssp)
1539#if !defined yyoverflow && !defined YYSTACK_RELOCATE
1546# if defined yyoverflow
1559 yyoverflow (
YY_(
"memory exhausted"),
1560 &yyss1, yysize *
YYSIZEOF (*yyssp),
1561 &yyvs1, yysize *
YYSIZEOF (*yyvsp),
1562 &yyls1, yysize *
YYSIZEOF (*yylsp),
1586# undef YYSTACK_RELOCATE
1592 yyssp = yyss + yysize - 1;
1593 yyvsp = yyvs + yysize - 1;
1594 yylsp = yyls + yysize - 1;
1597 YYDPRINTF ((stderr,
"Stack size increased to %ld\n",
1598 YY_CAST (
long, yystacksize)));
1601 if (yyss + yystacksize - 1 <= yyssp)
1621 yyn = yypact[yystate];
1630 YYDPRINTF ((stderr,
"Reading a token\n"));
1638 YYDPRINTF ((stderr,
"Now at end of input.\n"));
1648 yyerror_range[1] =
yylloc;
1660 if (yyn < 0 ||
YYLAST < yyn || yycheck[yyn] != yytoken)
1693 yyn = yydefact[yystate];
1714 yyval = yyvsp[1-yylen];
1718 yyerror_range[1] = yyloc;
1723#line 260 "src/nsgenbind-parser.y"
1725 *genbind_ast = (yyvsp[0].node);
1727#line 1728 "build-x86_64-linux-gnu-x86_64-linux-gnu-release-binary/nsgenbind-parser.c"
1731#line 269 "src/nsgenbind-parser.y"
1735#line 1736 "build-x86_64-linux-gnu-x86_64-linux-gnu-release-binary/nsgenbind-parser.c"
1739#line 274 "src/nsgenbind-parser.y"
1741 fprintf(stderr,
"%s\n", errtxt);
1745#line 1746 "build-x86_64-linux-gnu-x86_64-linux-gnu-release-binary/nsgenbind-parser.c"
1749#line 291 "src/nsgenbind-parser.y"
1754 (yyvsp[-2].node), (yyvsp[-4].text)));
1756#line 1757 "build-x86_64-linux-gnu-x86_64-linux-gnu-release-binary/nsgenbind-parser.c"
1760#line 303 "src/nsgenbind-parser.y"
1764#line 1765 "build-x86_64-linux-gnu-x86_64-linux-gnu-release-binary/nsgenbind-parser.c"
1768#line 312 "src/nsgenbind-parser.y"
1776 (yyvsp[-2].value)));
1778#line 1779 "build-x86_64-linux-gnu-x86_64-linux-gnu-release-binary/nsgenbind-parser.c"
1782#line 326 "src/nsgenbind-parser.y"
1786#line 1787 "build-x86_64-linux-gnu-x86_64-linux-gnu-release-binary/nsgenbind-parser.c"
1790#line 336 "src/nsgenbind-parser.y"
1795 strdup(
"unsigned")),
1798#line 1799 "build-x86_64-linux-gnu-x86_64-linux-gnu-release-binary/nsgenbind-parser.c"
1802#line 345 "src/nsgenbind-parser.y"
1810#line 1811 "build-x86_64-linux-gnu-x86_64-linux-gnu-release-binary/nsgenbind-parser.c"
1814#line 354 "src/nsgenbind-parser.y"
1822#line 1823 "build-x86_64-linux-gnu-x86_64-linux-gnu-release-binary/nsgenbind-parser.c"
1826#line 363 "src/nsgenbind-parser.y"
1830#line 1831 "build-x86_64-linux-gnu-x86_64-linux-gnu-release-binary/nsgenbind-parser.c"
1834#line 372 "src/nsgenbind-parser.y"
1838#line 1839 "build-x86_64-linux-gnu-x86_64-linux-gnu-release-binary/nsgenbind-parser.c"
1842#line 379 "src/nsgenbind-parser.y"
1846#line 1847 "build-x86_64-linux-gnu-x86_64-linux-gnu-release-binary/nsgenbind-parser.c"
1850#line 384 "src/nsgenbind-parser.y"
1855#line 1856 "build-x86_64-linux-gnu-x86_64-linux-gnu-release-binary/nsgenbind-parser.c"
1859#line 395 "src/nsgenbind-parser.y"
1861 (yyval.text) =
genbind_strapp((yyvsp[-1].text), (yyvsp[0].text));
1863#line 1864 "build-x86_64-linux-gnu-x86_64-linux-gnu-release-binary/nsgenbind-parser.c"
1867#line 403 "src/nsgenbind-parser.y"
1871#line 1872 "build-x86_64-linux-gnu-x86_64-linux-gnu-release-binary/nsgenbind-parser.c"
1875#line 408 "src/nsgenbind-parser.y"
1883#line 1884 "build-x86_64-linux-gnu-x86_64-linux-gnu-release-binary/nsgenbind-parser.c"
1887#line 419 "src/nsgenbind-parser.y"
1889 (yyval.node) = add_method(genbind_ast, (yyvsp[-2].value), (yyvsp[-1].node), (yyvsp[0].text), (yylsp[-2]).first_line, (yylsp[-2]).filename);
1891#line 1892 "build-x86_64-linux-gnu-x86_64-linux-gnu-release-binary/nsgenbind-parser.c"
1895#line 424 "src/nsgenbind-parser.y"
1897 (yyval.node) = add_method(genbind_ast, (yyvsp[-2].value), (yyvsp[-1].node), NULL, (yylsp[-2]).first_line, (yylsp[-2]).
filename);
1899#line 1900 "build-x86_64-linux-gnu-x86_64-linux-gnu-release-binary/nsgenbind-parser.c"
1903#line 431 "src/nsgenbind-parser.y"
1907#line 1908 "build-x86_64-linux-gnu-x86_64-linux-gnu-release-binary/nsgenbind-parser.c"
1911#line 436 "src/nsgenbind-parser.y"
1915#line 1916 "build-x86_64-linux-gnu-x86_64-linux-gnu-release-binary/nsgenbind-parser.c"
1919#line 441 "src/nsgenbind-parser.y"
1923#line 1924 "build-x86_64-linux-gnu-x86_64-linux-gnu-release-binary/nsgenbind-parser.c"
1927#line 446 "src/nsgenbind-parser.y"
1931#line 1932 "build-x86_64-linux-gnu-x86_64-linux-gnu-release-binary/nsgenbind-parser.c"
1935#line 451 "src/nsgenbind-parser.y"
1939#line 1940 "build-x86_64-linux-gnu-x86_64-linux-gnu-release-binary/nsgenbind-parser.c"
1943#line 456 "src/nsgenbind-parser.y"
1947#line 1948 "build-x86_64-linux-gnu-x86_64-linux-gnu-release-binary/nsgenbind-parser.c"
1951#line 465 "src/nsgenbind-parser.y"
1955#line 1956 "build-x86_64-linux-gnu-x86_64-linux-gnu-release-binary/nsgenbind-parser.c"
1959#line 470 "src/nsgenbind-parser.y"
1963#line 1964 "build-x86_64-linux-gnu-x86_64-linux-gnu-release-binary/nsgenbind-parser.c"
1967#line 475 "src/nsgenbind-parser.y"
1971#line 1972 "build-x86_64-linux-gnu-x86_64-linux-gnu-release-binary/nsgenbind-parser.c"
1975#line 480 "src/nsgenbind-parser.y"
1979#line 1980 "build-x86_64-linux-gnu-x86_64-linux-gnu-release-binary/nsgenbind-parser.c"
1983#line 487 "src/nsgenbind-parser.y"
1985 (yyval.text) = (yyvsp[0].text);
1987#line 1988 "build-x86_64-linux-gnu-x86_64-linux-gnu-release-binary/nsgenbind-parser.c"
1991#line 492 "src/nsgenbind-parser.y"
1993 (yyval.text) = strdup(
"method");
1995#line 1996 "build-x86_64-linux-gnu-x86_64-linux-gnu-release-binary/nsgenbind-parser.c"
1999#line 497 "src/nsgenbind-parser.y"
2001 (yyval.text) = strdup(
"type");
2003#line 2004 "build-x86_64-linux-gnu-x86_64-linux-gnu-release-binary/nsgenbind-parser.c"
2007#line 505 "src/nsgenbind-parser.y"
2017#line 2018 "build-x86_64-linux-gnu-x86_64-linux-gnu-release-binary/nsgenbind-parser.c"
2021#line 516 "src/nsgenbind-parser.y"
2031#line 2032 "build-x86_64-linux-gnu-x86_64-linux-gnu-release-binary/nsgenbind-parser.c"
2035#line 527 "src/nsgenbind-parser.y"
2043#line 2044 "build-x86_64-linux-gnu-x86_64-linux-gnu-release-binary/nsgenbind-parser.c"
2047#line 536 "src/nsgenbind-parser.y"
2054#line 2055 "build-x86_64-linux-gnu-x86_64-linux-gnu-release-binary/nsgenbind-parser.c"
2058#line 547 "src/nsgenbind-parser.y"
2063#line 2064 "build-x86_64-linux-gnu-x86_64-linux-gnu-release-binary/nsgenbind-parser.c"
2067#line 555 "src/nsgenbind-parser.y"
2069 (yyval.node) = NULL;
2071#line 2072 "build-x86_64-linux-gnu-x86_64-linux-gnu-release-binary/nsgenbind-parser.c"
2075#line 560 "src/nsgenbind-parser.y"
2079#line 2080 "build-x86_64-linux-gnu-x86_64-linux-gnu-release-binary/nsgenbind-parser.c"
2083#line 567 "src/nsgenbind-parser.y"
2087#line 2088 "build-x86_64-linux-gnu-x86_64-linux-gnu-release-binary/nsgenbind-parser.c"
2091#line 572 "src/nsgenbind-parser.y"
2095#line 2096 "build-x86_64-linux-gnu-x86_64-linux-gnu-release-binary/nsgenbind-parser.c"
2099#line 577 "src/nsgenbind-parser.y"
2106 (yyvsp[-2].value)));
2108#line 2109 "build-x86_64-linux-gnu-x86_64-linux-gnu-release-binary/nsgenbind-parser.c"
2112#line 587 "src/nsgenbind-parser.y"
2116#line 2117 "build-x86_64-linux-gnu-x86_64-linux-gnu-release-binary/nsgenbind-parser.c"
2120#line 592 "src/nsgenbind-parser.y"
2128 (yyvsp[-2].value)));
2130#line 2131 "build-x86_64-linux-gnu-x86_64-linux-gnu-release-binary/nsgenbind-parser.c"
2134#line 605 "src/nsgenbind-parser.y"
2138#line 2139 "build-x86_64-linux-gnu-x86_64-linux-gnu-release-binary/nsgenbind-parser.c"
2142#line 610 "src/nsgenbind-parser.y"
2146#line 2147 "build-x86_64-linux-gnu-x86_64-linux-gnu-release-binary/nsgenbind-parser.c"
2150#line 617 "src/nsgenbind-parser.y"
2154#line 2155 "build-x86_64-linux-gnu-x86_64-linux-gnu-release-binary/nsgenbind-parser.c"
2158#line 622 "src/nsgenbind-parser.y"
2160 (yyval.value) |= (yyvsp[0].value);
2162#line 2163 "build-x86_64-linux-gnu-x86_64-linux-gnu-release-binary/nsgenbind-parser.c"
2166#line 629 "src/nsgenbind-parser.y"
2170#line 2171 "build-x86_64-linux-gnu-x86_64-linux-gnu-release-binary/nsgenbind-parser.c"
2174#line 634 "src/nsgenbind-parser.y"
2178#line 2179 "build-x86_64-linux-gnu-x86_64-linux-gnu-release-binary/nsgenbind-parser.c"
2182#line 639 "src/nsgenbind-parser.y"
2186#line 2187 "build-x86_64-linux-gnu-x86_64-linux-gnu-release-binary/nsgenbind-parser.c"
2190#line 2191 "build-x86_64-linux-gnu-x86_64-linux-gnu-release-binary/nsgenbind-parser.c"
2217 const int yylhs = yyr1[yyn] -
YYNTOKENS;
2218 const int yyi = yypgoto[yylhs] + *yyssp;
2219 yystate = (0 <= yyi && yyi <=
YYLAST && yycheck[yyi] == *yyssp
2221 : yydefgoto[yylhs]);
2240 = {yyssp, yytoken, &
yylloc};
2241 char const *yymsgp =
YY_(
"syntax error");
2242 int yysyntax_error_status;
2243 yysyntax_error_status = yysyntax_error (&yymsg_alloc, &yymsg, &yyctx);
2244 if (yysyntax_error_status == 0)
2246 else if (yysyntax_error_status == -1)
2248 if (yymsg != yymsgbuf)
2254 yysyntax_error_status
2255 = yysyntax_error (&yymsg_alloc, &yymsg, &yyctx);
2261 yymsg_alloc =
sizeof yymsgbuf;
2266 if (yysyntax_error_status ==
YYENOMEM)
2271 yyerror_range[1] =
yylloc;
2272 if (yyerrstatus == 3)
2285 yydestruct (
"Error: discarding",
2324 yyn = yypact[yystate];
2340 yyerror_range[1] = *yylsp;
2341 yydestruct (
"Error: popping",
2352 yyerror_range[2] =
yylloc;
2397 yydestruct (
"Cleanup: discarding lookahead",
2404 while (yyssp != yyss)
2406 yydestruct (
"Cleanup: popping",
2414 if (yymsg != yymsgbuf)
2419#line 644 "src/nsgenbind-parser.y"
struct genbind_node * genbind_node_prepend(struct genbind_node *list, struct genbind_node *inst)
struct genbind_node * genbind_node_find_type(struct genbind_node *node, struct genbind_node *prev, enum genbind_node_type type)
struct genbind_node * genbind_node_find_type_ident(struct genbind_node *node, struct genbind_node *prev, enum genbind_node_type type, const char *ident)
struct genbind_node * genbind_new_node(enum genbind_node_type type, struct genbind_node *l, void *r)
struct genbind_node * genbind_new_number_node(enum genbind_node_type type, struct genbind_node *l, int number)
struct genbind_node * genbind_node_getnode(struct genbind_node *node)
char * genbind_node_gettext(struct genbind_node *node)
struct genbind_node * genbind_node_link(struct genbind_node *tgt, struct genbind_node *src)
struct genbind_node * genbind_node_add(struct genbind_node *node, struct genbind_node *list)
char * genbind_strapp(char *a, char *b)
@ GENBIND_METHOD_TYPE_INIT
@ GENBIND_METHOD_TYPE_PREFACE
@ GENBIND_METHOD_TYPE_METHOD
@ GENBIND_METHOD_TYPE_SETTER
@ GENBIND_METHOD_TYPE_PROLOGUE
@ GENBIND_METHOD_TYPE_GETTER
@ GENBIND_METHOD_TYPE_POSTFACE
@ GENBIND_METHOD_TYPE_PROTOTYPE
@ GENBIND_METHOD_TYPE_EPILOGUE
@ GENBIND_METHOD_TYPE_FINI
@ GENBIND_NODE_TYPE_PARAMETER
@ GENBIND_NODE_TYPE_BINDING
@ GENBIND_NODE_TYPE_INTERNAL
@ GENBIND_NODE_TYPE_MODIFIER
@ GENBIND_NODE_TYPE_WEBIDL
@ GENBIND_NODE_TYPE_METHOD_TYPE
@ GENBIND_NODE_TYPE_FLAGS
@ GENBIND_NODE_TYPE_CLASS
@ GENBIND_NODE_TYPE_METHOD
@ GENBIND_NODE_TYPE_PROPERTY
@ GENBIND_NODE_TYPE_IDENT
@ GENBIND_NODE_TYPE_PRIVATE
@ GENBIND_NODE_TYPE_CDATA
#define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
@ YYSYMBOL_CTypeSpecifier
@ YYSYMBOL_BindingAndMethodType
@ YYSYMBOL_TOK_CCODE_LITERAL
@ YYSYMBOL_TOK_STRING_LITERAL
@ YYSYMBOL_TOK_IDENTIFIER
@ YYSYMBOL_MethodDeclarator
#define YY_IGNORE_MAYBE_UNINITIALIZED_END
#define YY_IGNORE_USELESS_CAST_END
#define YY_REDUCE_PRINT(Rule)
#define YY_CAST(Type, Val)
#define YY_ACCESSING_SYMBOL(State)
#define YY_SYMBOL_PRINT(Title, Kind, Value, Location)
#define YY_INITIAL_VALUE(Value)
unsigned char yytype_uint8
#define YY_STACK_PRINT(Bottom, Top)
#define YYSTACK_ALLOC_MAXIMUM
#define YY_IGNORE_USELESS_CAST_BEGIN
#define YYLOCATION_PRINT(File, Loc)
#define yytable_value_is_error(Yyn)
#define YY_ATTRIBUTE_UNUSED
unsigned short yytype_uint16
#define YYSTACK_RELOCATE(Stack_alloc, Stack)
#define yypact_value_is_default(Yyn)
#define YYLLOC_DEFAULT(Current, Rhs, N)