47 #define YYBISON_VERSION "3.0.2"
50 #define YYSKELETON_NAME "yacc.c"
63 #define yyparse frontend_verilog_yyparse
64 #define yylex frontend_verilog_yylex
65 #define yyerror frontend_verilog_yyerror
66 #define yydebug frontend_verilog_yydebug
67 #define yynerrs frontend_verilog_yynerrs
69 #define yylval frontend_verilog_yylval
70 #define yychar frontend_verilog_yychar
73 #line 36 "frontends/verilog/verilog_parser.y"
82 using namespace VERILOG_FRONTEND;
85 namespace VERILOG_FRONTEND {
89 std::map<std::string, AstNode*> *
albuf;
105 for (
auto &it : *al) {
115 for (
auto &it : *al) {
118 ast->
attributes[it.first] = it.second->clone();
122 static void free_attr(std::map<std::string, AstNode*> *al)
130 #line 131 "frontends/verilog/verilog_parser.tab.c"
133 # if defined __cplusplus && 201103L <= __cplusplus
134 # define YY_NULLPTR nullptr
136 # define YY_NULLPTR 0
141 #ifdef YYERROR_VERBOSE
142 # undef YYERROR_VERBOSE
143 # define YYERROR_VERBOSE 1
145 # define YYERROR_VERBOSE 0
150 #ifndef YY_FRONTEND_VERILOG_YY_FRONTENDS_VERILOG_VERILOG_PARSER_TAB_H_INCLUDED
151 # define YY_FRONTEND_VERILOG_YY_FRONTENDS_VERILOG_VERILOG_PARSER_TAB_H_INCLUDED
244 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
248 #line 95 "frontends/verilog/verilog_parser.y"
252 std::map<std::string, YOSYS_NAMESPACE_PREFIX AST::AstNode*> *al;
255 #line 256 "frontends/verilog/verilog_parser.tab.c"
257 # define YYSTYPE_IS_TRIVIAL 1
258 # define YYSTYPE_IS_DECLARED 1
270 #line 271 "frontends/verilog/verilog_parser.tab.c"
301 # ifdef __SIZE_TYPE__
302 # define YYSIZE_T __SIZE_TYPE__
303 # elif defined size_t
304 # define YYSIZE_T size_t
305 # elif ! defined YYSIZE_T
307 # define YYSIZE_T size_t
309 # define YYSIZE_T unsigned int
313 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
316 # if defined YYENABLE_NLS && YYENABLE_NLS
318 # include <libintl.h>
319 # define YY_(Msgid) dgettext ("bison-runtime", Msgid)
323 # define YY_(Msgid) Msgid
328 # if (defined __GNUC__ \
329 && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \
330 || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
331 # define YY_ATTRIBUTE(Spec) __attribute__(Spec)
333 # define YY_ATTRIBUTE(Spec)
337 #ifndef YY_ATTRIBUTE_PURE
338 # define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__))
341 #ifndef YY_ATTRIBUTE_UNUSED
342 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
345 #if !defined _Noreturn \
346 && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
347 # if defined _MSC_VER && 1200 <= _MSC_VER
348 # define _Noreturn __declspec (noreturn)
350 # define _Noreturn YY_ATTRIBUTE ((__noreturn__))
355 #if ! defined lint || defined __GNUC__
356 # define YYUSE(E) ((void) (E))
361 #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
363 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
364 _Pragma ("GCC diagnostic push") \
365 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
366 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
367 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
368 _Pragma ("GCC diagnostic pop")
370 # define YY_INITIAL_VALUE(Value) Value
372 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
373 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
374 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
376 #ifndef YY_INITIAL_VALUE
377 # define YY_INITIAL_VALUE(Value)
381 #if ! defined yyoverflow || YYERROR_VERBOSE
385 # ifdef YYSTACK_USE_ALLOCA
386 # if YYSTACK_USE_ALLOCA
388 # define YYSTACK_ALLOC __builtin_alloca
389 # elif defined __BUILTIN_VA_ARG_INCR
392 # define YYSTACK_ALLOC __alloca
393 # elif defined _MSC_VER
395 # define alloca _alloca
397 # define YYSTACK_ALLOC alloca
398 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
401 # ifndef EXIT_SUCCESS
402 # define EXIT_SUCCESS 0
409 # ifdef YYSTACK_ALLOC
411 # define YYSTACK_FREE(Ptr) do { ; } while (0)
412 # ifndef YYSTACK_ALLOC_MAXIMUM
417 # define YYSTACK_ALLOC_MAXIMUM 4032
420 # define YYSTACK_ALLOC YYMALLOC
421 # define YYSTACK_FREE YYFREE
422 # ifndef YYSTACK_ALLOC_MAXIMUM
423 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
425 # if (defined __cplusplus && ! defined EXIT_SUCCESS \
426 && ! ((defined YYMALLOC || defined malloc) \
427 && (defined YYFREE || defined free)))
429 # ifndef EXIT_SUCCESS
430 # define EXIT_SUCCESS 0
434 # define YYMALLOC malloc
435 # if ! defined malloc && ! defined EXIT_SUCCESS
441 # if ! defined free && ! defined EXIT_SUCCESS
449 #if (! defined yyoverflow \
450 && (! defined __cplusplus \
451 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
461 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
465 # define YYSTACK_BYTES(N) \
466 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
467 + YYSTACK_GAP_MAXIMUM)
469 # define YYCOPY_NEEDED 1
476 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
479 YYSIZE_T yynewbytes; \
480 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
481 Stack = &yyptr->Stack_alloc; \
482 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
483 yyptr += yynewbytes / sizeof (*yyptr); \
489 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
493 # if defined __GNUC__ && 1 < __GNUC__
494 # define YYCOPY(Dst, Src, Count) \
495 __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
497 # define YYCOPY(Dst, Src, Count) \
501 for (yyi = 0; yyi < (Count); yyi++) \
502 (Dst)[yyi] = (Src)[yyi]; \
515 #define YYNTOKENS 104
521 #define YYNSTATES 650
526 #define YYMAXUTOK 332
528 #define YYTRANSLATE(YYX) \
529 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
535 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
536 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
537 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
538 2, 2, 2, 103, 2, 92, 2, 85, 67, 2,
539 93, 94, 83, 81, 88, 82, 90, 84, 2, 2,
540 2, 2, 2, 2, 2, 2, 2, 2, 96, 91,
541 73, 89, 76, 101, 98, 2, 2, 2, 2, 2,
542 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
543 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
544 2, 95, 2, 97, 65, 2, 2, 2, 2, 2,
545 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
546 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
547 2, 2, 2, 99, 63, 100, 102, 2, 2, 2,
548 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
549 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
550 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
551 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
552 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
553 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
554 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
555 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
556 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
557 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
558 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
559 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
560 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
561 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
562 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
563 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
564 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
565 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
566 55, 56, 57, 58, 59, 60, 61, 62, 64, 66,
567 68, 69, 70, 71, 72, 74, 75, 77, 78, 79,
575 0, 141, 141, 141, 152, 153, 154, 154, 158, 158,
576 171, 171, 175, 182, 175, 188, 188, 191, 192, 195,
577 201, 209, 212, 222, 222, 243, 243, 243, 243, 246,
578 247, 247, 251, 251, 255, 258, 258, 258, 261, 261,
579 264, 264, 267, 277, 281, 281, 294, 294, 308, 313,
580 313, 320, 320, 323, 326, 329, 333, 335, 338, 344,
581 350, 355, 360, 365, 370, 376, 379, 385, 388, 393,
582 394, 397, 400, 408, 410, 410, 414, 414, 414, 414,
583 414, 414, 414, 415, 415, 415, 415, 418, 418, 428,
584 428, 439, 439, 451, 451, 463, 463, 486, 491, 497,
585 497, 501, 502, 503, 503, 507, 510, 515, 515, 515,
586 519, 515, 527, 527, 530, 530, 551, 554, 554, 558,
587 560, 563, 570, 573, 577, 580, 589, 589, 597, 597,
588 605, 605, 608, 620, 623, 623, 626, 637, 652, 637,
589 658, 666, 676, 676, 679, 680, 690, 732, 735, 735,
590 738, 743, 743, 752, 752, 762, 765, 770, 771, 774,
591 774, 781, 781, 790, 791, 794, 795, 795, 801, 801,
592 803, 804, 805, 808, 813, 821, 822, 823, 824, 824,
593 830, 835, 842, 850, 855, 850, 863, 863, 877, 878,
594 879, 880, 881, 881, 885, 886, 887, 890, 895, 900,
595 907, 910, 915, 920, 925, 929, 936, 936, 936, 937,
596 938, 938, 948, 948, 964, 969, 971, 964, 979, 979,
597 992, 992, 1005, 1005, 1019, 1019, 1030, 1033, 1036, 1041,
598 1045, 1048, 1052, 1053, 1056, 1056, 1060, 1060, 1066, 1070,
599 1070, 1074, 1078, 1074, 1090, 1090, 1094, 1098, 1094, 1106,
600 1107, 1110, 1113, 1116, 1121, 1126, 1131, 1138, 1141, 1146,
601 1150, 1156, 1156, 1160, 1160, 1164, 1165, 1168, 1173, 1173,
602 1177, 1177, 1181, 1185, 1181, 1190, 1190, 1198, 1198, 1206,
603 1206, 1220, 1220, 1229, 1229, 1232, 1232, 1235, 1238, 1247,
604 1250, 1260, 1272, 1279, 1285, 1296, 1300, 1300, 1310, 1314,
605 1318, 1321, 1324, 1327, 1331, 1335, 1339, 1343, 1347, 1351,
606 1356, 1360, 1365, 1369, 1373, 1377, 1381, 1385, 1389, 1393,
607 1397, 1401, 1405, 1409, 1413, 1417, 1421, 1425, 1429, 1433,
608 1437, 1441, 1445, 1449, 1453, 1457, 1461, 1467, 1470
612 #if YYDEBUG || YYERROR_VERBOSE || 0
617 "$end",
"error",
"$undefined",
"TOK_STRING",
"TOK_ID",
"TOK_CONST",
618 "TOK_REALVAL",
"TOK_PRIMITIVE",
"ATTR_BEGIN",
"ATTR_END",
619 "DEFATTR_BEGIN",
"DEFATTR_END",
"TOK_MODULE",
"TOK_ENDMODULE",
620 "TOK_PARAMETER",
"TOK_LOCALPARAM",
"TOK_DEFPARAM",
"TOK_INPUT",
621 "TOK_OUTPUT",
"TOK_INOUT",
"TOK_WIRE",
"TOK_REG",
"TOK_INTEGER",
622 "TOK_SIGNED",
"TOK_ASSIGN",
"TOK_ALWAYS",
"TOK_INITIAL",
"TOK_BEGIN",
623 "TOK_END",
"TOK_IF",
"TOK_ELSE",
"TOK_FOR",
"TOK_WHILE",
"TOK_REPEAT",
624 "TOK_DPI_FUNCTION",
"TOK_POSEDGE",
"TOK_NEGEDGE",
"TOK_OR",
"TOK_CASE",
625 "TOK_CASEX",
"TOK_CASEZ",
"TOK_ENDCASE",
"TOK_DEFAULT",
"TOK_FUNCTION",
626 "TOK_ENDFUNCTION",
"TOK_TASK",
"TOK_ENDTASK",
"TOK_GENERATE",
627 "TOK_ENDGENERATE",
"TOK_GENVAR",
"TOK_REAL",
"TOK_SYNOPSYS_FULL_CASE",
628 "TOK_SYNOPSYS_PARALLEL_CASE",
"TOK_SUPPLY0",
"TOK_SUPPLY1",
629 "TOK_TO_SIGNED",
"TOK_TO_UNSIGNED",
"TOK_POS_INDEXED",
"TOK_NEG_INDEXED",
630 "TOK_ASSERT",
"TOK_PROPERTY",
"OP_LOR",
"OP_LAND",
"'|'",
"OP_NOR",
631 "'^'",
"OP_XNOR",
"'&'",
"OP_NAND",
"OP_EQ",
"OP_NE",
"OP_EQX",
"OP_NEX",
632 "'<'",
"OP_LE",
"OP_GE",
"'>'",
"OP_SHL",
"OP_SHR",
"OP_SSHL",
"OP_SSHR",
633 "'+'",
"'-'",
"'*'",
"'/'",
"'%'",
"OP_POW",
"UNARY_OPS",
"','",
"'='",
634 "'.'",
"';'",
"'#'",
"'('",
"')'",
"'['",
"':'",
"']'",
"'@'",
"'{'",
635 "'}'",
"'?'",
"'~'",
"'!'",
"$accept",
"input",
"$@1",
"design",
"attr",
636 "$@2",
"attr_opt",
"defattr",
"$@3",
"$@4",
"opt_attr_list",
"attr_list",
637 "attr_assign",
"hierarchical_id",
"module",
"$@5",
"module_para_opt",
638 "$@6",
"$@7",
"module_para_list",
"single_module_para",
"$@8",
639 "module_args_opt",
"module_args",
"optional_comma",
640 "module_arg_opt_assignment",
"module_arg",
"$@9",
"$@10",
"wire_type",
641 "$@11",
"wire_type_token_list",
"wire_type_token",
"non_opt_range",
642 "non_opt_multirange",
"range",
"range_or_multirange",
643 "range_or_signed_int",
"module_body",
"module_body_stmt",
644 "task_func_decl",
"$@12",
"$@13",
"$@14",
"$@15",
"$@16",
645 "dpi_function_arg",
"opt_dpi_function_args",
"dpi_function_args",
646 "opt_signed",
"task_func_args_opt",
"$@17",
"$@18",
"task_func_args",
647 "task_func_port",
"$@19",
"task_func_body",
"param_signed",
648 "param_integer",
"param_real",
"param_range",
"param_decl",
"$@20",
649 "localparam_decl",
"$@21",
"param_decl_list",
"single_param_decl",
650 "defparam_decl",
"defparam_decl_list",
"single_defparam_decl",
651 "wire_decl",
"$@22",
"$@23",
"wire_name_list",
652 "wire_name_and_opt_assign",
"wire_name",
"assign_stmt",
653 "assign_expr_list",
"assign_expr",
"cell_stmt",
"$@24",
"$@25",
654 "tok_prim_wrapper",
"cell_list",
"single_cell",
"$@26",
"$@27",
655 "prim_list",
"single_prim",
"$@28",
"cell_parameter_list_opt",
656 "cell_parameter_list",
"cell_parameter",
"cell_port_list",
"$@29",
657 "cell_port",
"always_stmt",
"$@30",
"$@31",
"$@32",
"always_cond",
658 "always_events",
"always_event",
"opt_label",
"assert",
659 "assert_property",
"simple_behavioral_stmt",
"behavioral_stmt",
"$@33",
660 "$@34",
"$@35",
"$@36",
"$@37",
"$@38",
"$@39",
"$@40",
"$@41",
661 "case_type",
"opt_synopsys_attr",
"behavioral_stmt_opt",
662 "behavioral_stmt_list",
"optional_else",
"$@42",
"case_body",
663 "case_item",
"$@43",
"$@44",
"gen_case_body",
"gen_case_item",
"$@45",
664 "$@46",
"case_select",
"case_expr_list",
"rvalue",
"lvalue",
665 "lvalue_concat_list",
"opt_arg_list",
"arg_list",
"arg_list2",
666 "single_arg",
"module_gen_body",
"gen_stmt_or_module_body_stmt",
667 "gen_stmt",
"$@47",
"$@48",
"$@49",
"$@50",
"$@51",
"gen_stmt_block",
668 "$@52",
"gen_stmt_or_null",
"opt_gen_else",
"expr",
"basic_expr",
"$@53",
678 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
679 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
680 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
681 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
682 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
683 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
684 315, 316, 317, 124, 318, 94, 319, 38, 320, 321,
685 322, 323, 324, 60, 325, 326, 62, 327, 328, 329,
686 330, 43, 45, 42, 47, 37, 331, 332, 44, 61,
687 46, 59, 35, 40, 41, 91, 58, 93, 64, 123,
692 #define YYPACT_NINF -521
694 #define yypact_value_is_default(Yystate) \
695 (!!((Yystate) == (-521)))
697 #define YYTABLE_NINF -252
699 #define yytable_value_is_error(Yytable_value) \
706 -521, 44, 28, -521, -521, -521, 19, -521, 28, 28,
707 28, 42, 62, 71, 54, 98, 161, -521, -521, -521,
708 -521, -521, 40, -521, 117, -521, 14, -521, 18, -521,
709 42, 173, 42, 864, 182, 103, -521, 193, 197, -521,
710 864, -521, -521, 204, 119, 207, -521, -521, -521, 213,
711 -521, -521, -521, -521, -521, -521, -521, -521, -521, -521,
712 -521, 864, 864, -521, -521, 167, -521, -521, 962, -521,
713 129, 139, 144, 224, 145, 3, -521, 159, 174, -521,
714 -521, 165, 168, 864, 864, 864, 864, 864, 864, 864,
715 864, 180, -47, 176, 864, 864, -521, 864, -521, 183,
716 183, -521, -521, -521, -521, -521, -521, -521, -521, -521,
717 -521, -521, -521, -521, -521, -521, -521, -521, -521, -521,
718 -521, -521, -521, -521, -521, -521, -521, -521, 11, 186,
719 275, 192, -521, 280, 864, 864, 864, -521, 119, -521,
720 281, -521, 864, 864, -521, -521, -521, -521, -521, -521,
721 -521, -521, 284, 864, 864, -521, -521, -521, 124, 194,
722 -521, -521, 864, 864, 864, 864, 864, 864, 864, 864,
723 864, 864, 864, 864, 864, 864, 864, 864, 864, 864,
724 864, 864, 864, 864, 864, 864, 864, 41, -521, 196,
725 -521, -521, 203, -521, -521, 297, -521, -31, -521, 144,
726 300, 208, 209, 210, 217, 183, -521, 222, -521, -521,
727 12, 223, 225, -521, 228, -521, 226, 233, 864, 995,
728 1019, 1041, 1061, 1061, 1079, 1093, 1093, 1093, 1093, 460,
729 460, 460, 460, 371, 371, 371, 371, 163, 163, 242,
730 242, 242, -521, 234, 240, -521, -521, 246, -521, 250,
731 251, 183, 221, 22, 248, 489, -521, 275, -521, 249,
732 -521, -521, -521, -521, -521, 183, -521, -521, 183, 0,
733 -521, -521, 253, 864, 282, -521, 120, -521, -521, 252,
734 -521, -521, -42, -521, -521, 247, 42, 260, -521, -521,
735 -521, 864, 864, 326, 257, 41, 864, -521, -521, 356,
736 -521, -521, -521, -521, -521, -521, -521, -521, 221, -521,
737 -521, -521, -521, -521, -521, 183, 864, 267, 271, 272,
738 -521, -521, -521, -521, 306, 406, -521, -521, -521, -521,
739 -521, -521, -521, -521, -521, -521, -521, 276, -521, -521,
740 -521, 144, 160, -521, -521, 278, 864, 273, 286, 267,
741 283, 285, 288, 292, 382, 385, 183, 301, -521, -521,
742 864, 864, -521, 81, -521, 864, 296, -521, -521, -521,
743 373, -521, -521, -521, -521, -521, 326, 326, 42, -32,
744 -521, -15, -521, 304, 392, -521, 864, -521, 574, 309,
745 -521, -521, -521, -521, -521, -521, 864, 308, -521, 281,
746 -521, 303, -521, 864, -521, 864, -521, 864, 864, 312,
747 313, -521, 864, 314, -521, -521, -521, -521, -521, 183,
748 250, 373, 373, 141, 183, -521, 864, -521, 864, -521,
749 -521, 311, -2, -521, -521, -521, -521, 864, 316, 318,
750 64, 407, 320, -521, -521, 321, -521, -521, 323, -2,
751 324, 325, -521, -521, 281, 328, 864, 329, -521, 419,
752 -521, 374, 374, 864, -521, -521, -521, 944, -521, 335,
753 333, 337, 407, 96, -521, -521, 183, -521, 97, -521,
754 340, -521, -521, 170, -521, 343, -521, -521, 348, -521,
755 350, -521, 260, -521, -521, -521, 183, 183, -521, 267,
756 -521, 864, 346, 782, 105, -521, 347, -521, 634, 64,
757 -521, 349, 407, -521, 675, -521, 267, -521, 64, 864,
758 64, 64, 281, 353, 864, -521, 351, 419, 419, -521,
759 416, 971, -521, -521, 444, 364, 362, -521, 407, -521,
760 -521, -521, 864, 864, 369, 123, -521, -521, -521, 372,
761 675, -521, -521, 463, 370, 380, -521, 428, -521, 440,
762 -521, -521, -521, -521, -521, -521, 37, -521, 135, -521,
763 136, 383, -521, -521, 386, 378, -521, 782, -521, -521,
764 -521, -521, 716, 716, -521, 675, 387, 675, 389, -521,
765 675, -521, -521, 823, -521, -521, 394, -521, -521, 435,
766 419, -521, -521, -521, -521, -521, -2, 864, -521, -521,
767 -521, 393, -521, -521, 289, -521, -46, -521, 21, -521,
768 64, -2, -521, -521, 823, -521, 395, 396, -521, -521,
769 398, 383, 864, -521, -521, 399, -521, -521, -521, -521,
770 -521, -521, -521, 114, -521, 64, -521, -521, -521, -521
778 2, 0, 8, 1, 12, 3, 0, 11, 8, 8,
779 8, 16, 0, 0, 106, 0, 9, 5, 4, 6,
780 21, 13, 15, 17, 19, 23, 0, 105, 68, 93,
781 16, 0, 0, 0, 0, 28, 87, 0, 0, 72,
782 0, 67, 71, 0, 108, 0, 14, 18, 295, 293,
783 294, 8, 8, 8, 8, 8, 8, 8, 8, 8,
784 8, 0, 0, 8, 8, 68, 289, 20, 287, 22,
785 0, 36, 100, 0, 0, 0, 95, 109, 0, 10,
786 292, 0, 0, 0, 0, 0, 0, 0, 0, 0,
787 0, 0, 337, 0, 0, 0, 291, 0, 296, 67,
788 256, 255, 8, 8, 8, 8, 8, 8, 8, 8,
789 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
790 8, 8, 8, 8, 8, 8, 8, 25, 8, 0,
791 104, 0, 89, 0, 0, 0, 0, 64, 108, 107,
792 8, 118, 0, 0, 310, 311, 312, 313, 308, 309,
793 332, 333, 300, 0, 0, 301, 303, 336, 0, 0,
794 65, 66, 0, 0, 0, 0, 0, 0, 0, 0,
795 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
796 0, 0, 0, 0, 0, 0, 0, 31, 44, 0,
797 35, 49, 41, 38, 75, 98, 103, 0, 88, 100,
798 0, 0, 0, 0, 0, 68, 49, 41, 112, 116,
799 8, 0, 0, 290, 337, 338, 0, 64, 264, 335,
800 334, 305, 306, 307, 304, 320, 321, 322, 323, 318,
801 319, 324, 325, 314, 315, 316, 317, 326, 327, 328,
802 329, 330, 331, 0, 0, 32, 26, 29, 34, 43,
803 0, 68, 0, 8, 0, 8, 97, 102, 99, 0,
804 91, 62, 63, 61, 118, 70, 69, 146, 68, 8,
805 110, 94, 0, 0, 49, 206, 8, 208, 207, 0,
806 117, 257, 0, 298, 299, 0, 0, 41, 263, 265,
807 267, 0, 0, 120, 0, 31, 0, 45, 48, 0,
808 53, 54, 55, 56, 57, 58, 60, 59, 50, 51,
809 39, 37, 24, 126, 128, 68, 0, 201, 0, 0,
810 226, 227, 228, 269, 0, 49, 85, 73, 76, 77,
811 78, 79, 80, 81, 82, 83, 86, 0, 74, 101,
812 90, 100, 8, 114, 113, 0, 0, 0, 259, 201,
813 0, 0, 0, 0, 0, 0, 68, 0, 210, 209,
814 0, 0, 302, 68, 254, 40, 0, 288, 132, 119,
815 122, 27, 30, 42, 46, 52, 120, 120, 0, 0,
816 134, 0, 148, 0, 0, 279, 0, 272, 8, 0,
817 151, 155, 183, 186, 156, 153, 0, 0, 96, 0,
818 111, 0, 258, 0, 212, 0, 214, 0, 0, 0,
819 0, 137, 0, 262, 205, 204, 266, 297, 121, 68,
820 43, 122, 122, 0, 68, 133, 0, 147, 0, 200,
821 269, 0, 0, 84, 271, 268, 270, 0, 169, 193,
822 8, 166, 0, 92, 115, 0, 260, 235, 0, 0,
823 0, 0, 140, 141, 0, 0, 264, 0, 125, 0,
824 47, 124, 124, 0, 135, 149, 150, 8, 275, 0,
825 0, 0, 0, 0, 184, 187, 159, 165, 0, 163,
826 0, 277, 202, 8, 222, 0, 218, 220, 138, 142,
827 144, 224, 41, 211, 33, 123, 68, 68, 136, 201,
828 281, 0, 0, 170, 0, 157, 0, 192, 0, 8,
829 161, 0, 166, 154, 175, 245, 201, 234, 8, 0,
830 8, 8, 0, 0, 0, 231, 0, 0, 0, 280,
831 286, 8, 273, 203, 0, 0, 171, 173, 0, 152,
832 190, 191, 0, 0, 0, 0, 194, 199, 185, 0,
833 175, 164, 178, 0, 0, 176, 180, 246, 213, 238,
834 215, 219, 221, 143, 139, 145, 240, 261, 0, 130,
835 0, 281, 276, 282, 0, 0, 168, 170, 158, 197,
836 198, 189, 0, 0, 188, 175, 0, 175, 0, 167,
837 175, 278, 244, 0, 236, 223, 0, 229, 230, 241,
838 0, 127, 129, 284, 283, 285, 0, 0, 172, 195,
839 196, 0, 160, 179, 0, 177, 250, 247, 0, 252,
840 8, 0, 225, 239, 0, 131, 0, 0, 162, 182,
841 0, 281, 0, 249, 237, 0, 242, 281, 174, 181,
842 248, 253, 216, 8, 274, 8, 233, 232, 243, 217
848 -521, -521, -521, 111, 27, -521, -521, -1, -521, -521,
849 453, -521, 456, -11, -521, -521, -521, -521, -521, 200,
850 -521, -521, -521, -521, -194, 77, 255, -521, -521, -152,
851 -521, -521, 198, -51, 295, -18, -521, -521, -521, 256,
852 -232, -521, -521, -521, -521, -521, 244, -182, -521, -521,
853 379, -521, -521, -521, 243, -521, 258, -125, -166, 57,
854 -230, -521, -521, -521, -521, -7, -432, -521, -521, 99,
855 -231, -521, -521, -521, 2, -356, -521, -521, 100, -521,
856 -521, -521, -521, -521, -466, -521, -521, -521, 13, -521,
857 -521, -45, -521, -520, -521, -521, -521, -521, -521, -521,
858 -521, -521, -311, -338, -521, -521, -429, -318, -521, -521,
859 -521, -521, -521, -521, -521, -521, -521, 259, -521, -521,
860 -521, -521, -521, -521, -521, -521, -521, -521, -521, -521,
861 -521, -93, -521, -159, -521, 131, -521, 79, -521, 185,
862 121, 16, 298, -521, -521, -521, -521, -521, -475, -521,
863 -79, -521, -28, 483, -521, 403
869 -1, 1, 2, 5, 274, 7, 16, 275, 11, 31,
870 21, 22, 23, 65, 9, 35, 71, 187, 294, 246,
871 247, 293, 129, 192, 254, 297, 193, 249, 420, 356,
872 252, 308, 309, 41, 100, 101, 267, 43, 255, 434,
873 10, 72, 199, 341, 44, 138, 196, 131, 197, 28,
874 78, 140, 345, 207, 208, 399, 210, 370, 419, 496,
875 459, 329, 376, 330, 377, 568, 248, 331, 379, 380,
876 277, 454, 523, 488, 489, 209, 333, 381, 382, 334,
877 438, 441, 395, 504, 477, 511, 549, 478, 479, 480,
878 472, 535, 536, 554, 587, 555, 335, 439, 509, 440,
879 474, 545, 546, 385, 278, 336, 279, 280, 413, 447,
880 449, 596, 645, 520, 521, 518, 525, 337, 566, 648,
881 483, 595, 620, 599, 623, 624, 643, 557, 592, 593,
882 631, 617, 618, 66, 282, 347, 457, 287, 288, 289,
883 388, 435, 436, 432, 574, 500, 515, 430, 604, 531,
884 605, 572, 556, 68, 159, 93
892 24, 8, 20, 469, 205, 67, 505, 8, 8, 8,
893 42, 404, 75, 270, 99, 188, 20, 259, 36, 24,
894 485, 24, 4, 328, 332, 530, 188, 494, -7, 6,
895 586, 12, 360, 91, 92, 6, 6, 6, 4, 251,
896 39, 153, -251, 444, 3, 244, 20, 361, 160, 161,
897 -251, 281, 154, 13, 268, 245, 424, 257, 271, 425,
898 134, 135, 14, 258, 15, 611, 25, 613, 20, 158,
899 615, 272, 578, 426, 4, 26, 427, 27, 81, 82,
900 83, 84, 85, 86, 87, 88, 89, 90, 597, 598,
901 94, 95, 98, 366, -40, 569, 569, 273, 490, 136,
902 137, 189, 29, 37, 506, 190, 201, 202, 203, 632,
903 38, 273, 189, 40, 211, 212, -40, 633, 20, 17,
904 18, 19, 475, 272, 4, 214, 216, 364, 32, 162,
905 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
906 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
907 183, 184, 185, 186, 99, 191, 328, 332, 243, 397,
908 582, 529, 644, 273, 20, 517, 490, 206, 625, 30,
909 4, 34, 96, 272, 20, -8, 97, 626, 558, 507,
910 4, 134, 135, 281, 46, 512, 69, 266, 513, 508,
911 290, 548, 635, 538, -68, 70, 539, 73, 516, 276,
912 559, 74, 561, 562, 398, 646, 33, 34, 76, -68,
913 34, 583, 77, 273, 161, 97, 79, 584, 80, 272,
914 136, 217, 127, 600, 600, 99, 601, 602, 132, 272,
915 463, 34, 128, 299, 133, 328, 332, 130, 300, 301,
916 302, 303, 304, 305, 306, 348, 122, 123, 124, 125,
917 343, 421, 422, 139, 326, 461, 462, 34, 142, 273,
918 -8, 143, 97, 367, 368, 141, 527, 528, 373, 273,
919 307, 609, 610, 281, 152, 363, 155, 194, 40, 195,
920 191, 281, 325, 198, 200, 205, 250, 218, 383, 213,
921 281, 253, 48, 20, 49, 50, 206, 378, 526, 328,
922 332, 256, 634, 358, 260, 261, 262, 263, 264, 349,
923 269, 350, 99, 351, 352, 353, 153, 283, 401, 284,
924 320, 321, 322, 286, 281, 647, 285, 649, 125, 292,
925 291, 276, 414, 415, 295, 354, 355, 290, 411, 296,
926 340, 298, 311, 359, 51, 52, 346, 362, 365, 369,
927 281, 371, 53, 54, 55, 56, 57, 58, 431, 281,
928 374, 281, 281, 384, 386, 387, 389, 423, 442, 396,
929 59, 60, 400, 402, 403, 348, 405, 448, 406, 450,
930 451, 407, 61, 629, 455, 408, 409, 326, 62, 410,
931 417, 63, 64, 428, 412, 418, 429, 445, 383, 443,
932 466, 458, 437, 452, 453, 468, 378, 456, 471, 470,
933 390, 476, 482, 391, 481, 325, 473, 484, 486, 487,
934 493, 363, 491, 244, 495, 510, 501, 502, 290, 276,
935 503, 392, 393, 514, 519, 498, 522, 533, 363, 524,
936 13, 540, 550, 394, 564, 567, 571, 281, 575, 14,
937 577, 15, 120, 121, 122, 123, 124, 125, 576, 354,
938 355, 281, 281, 581, 589, 585, 326, 588, 590, 591,
939 594, 607, 276, 532, 603, 537, 622, 606, 458, 458,
940 547, 612, 614, 45, 281, 621, 281, 628, 47, 637,
941 638, 560, 639, 642, 325, 372, 565, 460, 276, 4,
942 265, 339, 312, 313, 314, 315, 375, 276, 310, 276,
943 276, 327, 344, 316, 579, 580, 317, 204, 318, 497,
944 319, 570, 342, 464, 563, 551, 465, 320, 321, 322,
945 326, 636, 608, 357, 446, 492, 323, 116, 117, 118,
946 119, 120, 121, 122, 123, 124, 125, 573, 324, 537,
947 416, 467, 640, 338, 547, 547, 215, 0, 325, 0,
948 0, 0, 0, 0, 0, 619, 144, 145, 146, 147,
949 148, 149, 150, 151, 0, 0, 0, 156, 157, 627,
950 0, 0, 0, 0, 4, 0, 630, 0, 313, 314,
951 315, 0, 0, 0, 0, 363, 619, 0, 316, 0,
952 0, 317, 0, 318, 641, 319, 0, 0, 0, 276,
953 363, 0, 320, 321, 322, 0, 0, 0, 0, 0,
954 0, 323, 433, 0, 0, 0, 0, 0, 0, 0,
955 0, 0, 276, 324, 276, 0, 0, 48, 20, 49,
956 50, 0, 0, 541, 0, 219, 220, 221, 222, 223,
957 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
958 234, 235, 236, 237, 238, 239, 240, 241, 242, 542,
959 543, 0, 0, 0, 0, 0, 0, 0, 48, 20,
960 49, 50, 0, 0, 0, 0, 0, 0, 0, 51,
961 52, 0, 0, 0, 0, 0, 0, 53, 54, 55,
962 56, 57, 58, 0, 0, 0, 0, 0, 0, 0,
963 0, 0, 0, 0, 0, 59, 60, 544, 0, 48,
964 20, 49, 50, 0, 0, 0, 0, 61, 0, 0,
965 51, 52, 0, 62, 0, 0, 63, 64, 53, 54,
966 55, 56, 57, 58, 0, 0, 0, 0, 0, 0,
967 0, 542, 543, 0, 0, 0, 59, 60, 0, 0,
968 0, 0, 0, 552, 0, 553, 0, 0, 61, 0,
969 0, 51, 52, 0, 62, 0, 0, 63, 64, 53,
970 54, 55, 56, 57, 58, 48, 20, 49, 50, 0,
971 0, 0, 0, 0, 0, 0, 0, 59, 60, 0,
972 0, 0, 0, 0, 0, 0, 0, 0, 0, 61,
973 0, 0, 0, 0, 0, 62, 0, 0, 63, 64,
974 0, 0, 0, 0, 0, 0, 48, 20, 49, 50,
975 0, 0, 0, 0, 0, 0, 0, 51, 52, 0,
976 0, 0, 0, 0, 0, 53, 54, 55, 56, 57,
977 58, 0, 0, 0, 0, 0, 0, 0, 0, 0,
978 0, 0, 0, 59, 60, 616, 0, 48, 20, 49,
979 50, 0, 534, 0, 0, 61, 0, 0, 51, 52,
980 0, 62, 0, 0, 63, 64, 53, 54, 55, 56,
981 57, 58, 0, 0, 0, 0, 0, 0, 0, 0,
982 0, 0, 0, 0, 59, 60, 0, 0, 0, 0,
983 0, 0, 0, 0, 0, 0, 61, 0, 0, 51,
984 52, 0, 62, 0, 0, 63, 64, 53, 54, 55,
985 56, 57, 58, 0, 0, 0, 0, 0, 0, 0,
986 0, 0, 0, 0, 0, 59, 60, 0, 0, 0,
987 0, 0, 0, 0, 4, 0, 0, 61, 313, 314,
988 315, 0, 0, 62, 0, 0, 63, 64, 316, 0,
989 0, 317, 499, 318, 0, 319, 0, 0, 0, 0,
990 0, 4, 320, 321, 322, 313, 314, 315, 0, 0,
991 0, 323, 0, 0, 0, 316, 0, 0, 317, 0,
992 318, 0, 319, 324, 0, 0, 0, 0, 0, 320,
993 321, 322, 0, 0, 0, 0, 0, 0, 323, 0,
994 0, 0, 0, 102, 103, 104, 0, 105, 106, 107,
995 324, 108, 109, 110, 111, 112, 113, 114, 115, 116,
996 117, 118, 119, 120, 121, 122, 123, 124, 125, 0,
997 0, 0, 0, 0, 0, 0, 0, 103, 104, 0,
998 105, 106, 107, 126, 108, 109, 110, 111, 112, 113,
999 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
1000 124, 125, 104, 0, 105, 106, 107, 0, 108, 109,
1001 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
1002 120, 121, 122, 123, 124, 125, 105, 106, 107, 0,
1003 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
1004 118, 119, 120, 121, 122, 123, 124, 125, 107, 0,
1005 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
1006 118, 119, 120, 121, 122, 123, 124, 125, 108, 109,
1007 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
1008 120, 121, 122, 123, 124, 125, 112, 113, 114, 115,
1009 116, 117, 118, 119, 120, 121, 122, 123, 124, 125
1014 11, 2, 4, 432, 4, 33, 472, 8, 9, 10,
1015 28, 349, 40, 207, 65, 4, 4, 199, 4, 30,
1016 449, 32, 10, 255, 255, 500, 4, 459, 0, 2,
1017 550, 12, 74, 61, 62, 8, 9, 10, 10, 191,
1018 22, 88, 88, 399, 0, 4, 4, 89, 99, 100,
1019 96, 210, 99, 34, 206, 14, 88, 88, 46, 91,
1020 57, 58, 43, 94, 45, 585, 4, 587, 4, 97,
1021 590, 59, 538, 88, 10, 4, 91, 23, 51, 52,
1022 53, 54, 55, 56, 57, 58, 59, 60, 51, 52,
1023 63, 64, 65, 287, 94, 527, 528, 99, 454, 96,
1024 97, 90, 4, 89, 8, 94, 134, 135, 136, 88,
1025 96, 99, 90, 95, 142, 143, 94, 96, 4, 8,
1026 9, 10, 440, 59, 10, 153, 154, 286, 88, 102,
1027 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
1028 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
1029 123, 124, 125, 126, 205, 128, 388, 388, 186, 341,
1030 37, 499, 637, 99, 4, 483, 522, 140, 600, 8,
1031 10, 90, 5, 59, 4, 8, 95, 606, 516, 83,
1032 10, 57, 58, 342, 11, 88, 4, 205, 91, 93,
1033 218, 509, 621, 88, 74, 92, 91, 4, 28, 210,
1034 518, 4, 520, 521, 44, 91, 89, 90, 4, 89,
1035 90, 88, 93, 99, 265, 95, 9, 94, 5, 59,
1036 96, 97, 93, 88, 88, 276, 91, 91, 4, 59,
1037 89, 90, 93, 251, 89, 467, 467, 93, 17, 18,
1038 19, 20, 21, 22, 23, 273, 83, 84, 85, 86,
1039 268, 376, 377, 94, 255, 421, 422, 90, 93, 99,
1040 93, 93, 95, 291, 292, 91, 496, 497, 296, 99,
1041 49, 582, 583, 432, 94, 286, 100, 91, 95, 4,
1042 253, 440, 255, 91, 4, 4, 90, 93, 316, 5,
1043 449, 88, 3, 4, 5, 6, 269, 315, 492, 531,
1044 531, 4, 620, 276, 4, 97, 97, 97, 91, 27,
1045 88, 29, 363, 31, 32, 33, 88, 94, 346, 94,
1046 38, 39, 40, 90, 483, 643, 100, 645, 86, 89,
1047 96, 342, 360, 361, 88, 53, 54, 365, 356, 89,
1048 91, 90, 94, 91, 55, 56, 93, 100, 88, 23,
1049 509, 94, 63, 64, 65, 66, 67, 68, 386, 518,
1050 4, 520, 521, 96, 93, 93, 60, 378, 396, 93,
1051 81, 82, 94, 100, 88, 403, 93, 405, 93, 407,
1052 408, 93, 93, 94, 412, 93, 4, 388, 99, 4,
1053 94, 102, 103, 89, 93, 22, 4, 94, 426, 91,
1054 428, 419, 93, 91, 91, 94, 424, 93, 92, 437,
1055 4, 4, 91, 7, 94, 388, 98, 94, 94, 94,
1056 91, 432, 94, 4, 50, 476, 91, 94, 456, 440,
1057 93, 25, 26, 93, 91, 463, 88, 91, 449, 89,
1058 34, 94, 93, 37, 91, 94, 30, 606, 4, 43,
1059 88, 45, 81, 82, 83, 84, 85, 86, 94, 53,
1060 54, 620, 621, 94, 94, 93, 467, 4, 88, 41,
1061 30, 93, 483, 501, 91, 503, 41, 91, 496, 497,
1062 508, 94, 93, 30, 643, 91, 645, 94, 32, 94,
1063 94, 519, 94, 94, 467, 295, 524, 420, 509, 10,
1064 205, 257, 13, 14, 15, 16, 308, 518, 253, 520,
1065 521, 255, 269, 24, 542, 543, 27, 138, 29, 462,
1066 31, 528, 264, 424, 522, 512, 426, 38, 39, 40,
1067 531, 624, 577, 274, 403, 456, 47, 77, 78, 79,
1068 80, 81, 82, 83, 84, 85, 86, 531, 59, 577,
1069 365, 430, 631, 255, 582, 583, 153, -1, 531, -1,
1070 -1, -1, -1, -1, -1, 593, 83, 84, 85, 86,
1071 87, 88, 89, 90, -1, -1, -1, 94, 95, 607,
1072 -1, -1, -1, -1, 10, -1, 614, -1, 14, 15,
1073 16, -1, -1, -1, -1, 606, 624, -1, 24, -1,
1074 -1, 27, -1, 29, 632, 31, -1, -1, -1, 620,
1075 621, -1, 38, 39, 40, -1, -1, -1, -1, -1,
1076 -1, 47, 48, -1, -1, -1, -1, -1, -1, -1,
1077 -1, -1, 643, 59, 645, -1, -1, 3, 4, 5,
1078 6, -1, -1, 9, -1, 162, 163, 164, 165, 166,
1079 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
1080 177, 178, 179, 180, 181, 182, 183, 184, 185, 35,
1081 36, -1, -1, -1, -1, -1, -1, -1, 3, 4,
1082 5, 6, -1, -1, -1, -1, -1, -1, -1, 55,
1083 56, -1, -1, -1, -1, -1, -1, 63, 64, 65,
1084 66, 67, 68, -1, -1, -1, -1, -1, -1, -1,
1085 -1, -1, -1, -1, -1, 81, 82, 83, -1, 3,
1086 4, 5, 6, -1, -1, -1, -1, 93, -1, -1,
1087 55, 56, -1, 99, -1, -1, 102, 103, 63, 64,
1088 65, 66, 67, 68, -1, -1, -1, -1, -1, -1,
1089 -1, 35, 36, -1, -1, -1, 81, 82, -1, -1,
1090 -1, -1, -1, 88, -1, 90, -1, -1, 93, -1,
1091 -1, 55, 56, -1, 99, -1, -1, 102, 103, 63,
1092 64, 65, 66, 67, 68, 3, 4, 5, 6, -1,
1093 -1, -1, -1, -1, -1, -1, -1, 81, 82, -1,
1094 -1, -1, -1, -1, -1, -1, -1, -1, -1, 93,
1095 -1, -1, -1, -1, -1, 99, -1, -1, 102, 103,
1096 -1, -1, -1, -1, -1, -1, 3, 4, 5, 6,
1097 -1, -1, -1, -1, -1, -1, -1, 55, 56, -1,
1098 -1, -1, -1, -1, -1, 63, 64, 65, 66, 67,
1099 68, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1100 -1, -1, -1, 81, 82, 42, -1, 3, 4, 5,
1101 6, -1, 90, -1, -1, 93, -1, -1, 55, 56,
1102 -1, 99, -1, -1, 102, 103, 63, 64, 65, 66,
1103 67, 68, -1, -1, -1, -1, -1, -1, -1, -1,
1104 -1, -1, -1, -1, 81, 82, -1, -1, -1, -1,
1105 -1, -1, -1, -1, -1, -1, 93, -1, -1, 55,
1106 56, -1, 99, -1, -1, 102, 103, 63, 64, 65,
1107 66, 67, 68, -1, -1, -1, -1, -1, -1, -1,
1108 -1, -1, -1, -1, -1, 81, 82, -1, -1, -1,
1109 -1, -1, -1, -1, 10, -1, -1, 93, 14, 15,
1110 16, -1, -1, 99, -1, -1, 102, 103, 24, -1,
1111 -1, 27, 28, 29, -1, 31, -1, -1, -1, -1,
1112 -1, 10, 38, 39, 40, 14, 15, 16, -1, -1,
1113 -1, 47, -1, -1, -1, 24, -1, -1, 27, -1,
1114 29, -1, 31, 59, -1, -1, -1, -1, -1, 38,
1115 39, 40, -1, -1, -1, -1, -1, -1, 47, -1,
1116 -1, -1, -1, 61, 62, 63, -1, 65, 66, 67,
1117 59, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1118 78, 79, 80, 81, 82, 83, 84, 85, 86, -1,
1119 -1, -1, -1, -1, -1, -1, -1, 62, 63, -1,
1120 65, 66, 67, 101, 69, 70, 71, 72, 73, 74,
1121 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1122 85, 86, 63, -1, 65, 66, 67, -1, 69, 70,
1123 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1124 81, 82, 83, 84, 85, 86, 65, 66, 67, -1,
1125 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1126 79, 80, 81, 82, 83, 84, 85, 86, 67, -1,
1127 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1128 79, 80, 81, 82, 83, 84, 85, 86, 69, 70,
1129 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1130 81, 82, 83, 84, 85, 86, 73, 74, 75, 76,
1131 77, 78, 79, 80, 81, 82, 83, 84, 85, 86
1138 0, 105, 106, 0, 10, 107, 108, 109, 111, 118,
1139 144, 112, 12, 34, 43, 45, 110, 107, 107, 107,
1140 4, 114, 115, 116, 117, 4, 4, 23, 153, 4,
1141 8, 113, 88, 89, 90, 119, 4, 89, 96, 22,
1142 95, 137, 139, 141, 148, 114, 11, 116, 3, 5,
1143 6, 55, 56, 63, 64, 65, 66, 67, 68, 81,
1144 82, 93, 99, 102, 103, 117, 237, 256, 257, 4,
1145 92, 120, 145, 4, 4, 256, 4, 93, 154, 9,
1146 5, 108, 108, 108, 108, 108, 108, 108, 108, 108,
1147 108, 256, 256, 259, 108, 108, 5, 95, 108, 137,
1148 138, 139, 61, 62, 63, 65, 66, 67, 69, 70,
1149 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1150 81, 82, 83, 84, 85, 86, 101, 93, 93, 126,
1151 93, 151, 4, 89, 57, 58, 96, 97, 149, 94,
1152 155, 91, 93, 93, 257, 257, 257, 257, 257, 257,
1153 257, 257, 94, 88, 99, 100, 257, 257, 256, 258,
1154 137, 137, 108, 108, 108, 108, 108, 108, 108, 108,
1155 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
1156 108, 108, 108, 108, 108, 108, 108, 121, 4, 90,
1157 94, 108, 127, 130, 91, 4, 150, 152, 91, 146,
1158 4, 256, 256, 256, 154, 4, 108, 157, 158, 179,
1159 160, 256, 256, 5, 256, 259, 256, 97, 93, 257,
1160 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
1161 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
1162 257, 257, 257, 256, 4, 14, 123, 124, 170, 131,
1163 90, 133, 134, 88, 128, 142, 4, 88, 94, 151,
1164 4, 97, 97, 97, 91, 138, 139, 140, 133, 88,
1165 128, 46, 59, 99, 108, 111, 117, 174, 208, 210,
1166 211, 237, 238, 94, 94, 100, 90, 241, 242, 243,
1167 256, 96, 89, 125, 122, 88, 89, 129, 90, 139,
1168 17, 18, 19, 20, 21, 22, 23, 49, 135, 136,
1169 130, 94, 13, 14, 15, 16, 24, 27, 29, 31,
1170 38, 39, 40, 47, 59, 108, 111, 143, 144, 165,
1171 167, 171, 174, 180, 183, 200, 209, 221, 246, 150,
1172 91, 147, 160, 139, 158, 156, 93, 239, 256, 27,
1173 29, 31, 32, 33, 53, 54, 133, 221, 108, 91,
1174 74, 89, 100, 117, 237, 88, 128, 256, 256, 23,
1175 161, 94, 123, 256, 4, 136, 166, 168, 139, 172,
1176 173, 181, 182, 256, 96, 207, 93, 93, 244, 60,
1177 4, 7, 25, 26, 37, 186, 93, 151, 44, 159,
1178 94, 256, 100, 88, 207, 93, 93, 93, 93, 4,
1179 4, 139, 93, 212, 256, 256, 243, 94, 22, 162,
1180 132, 161, 161, 117, 88, 91, 88, 91, 89, 4,
1181 251, 256, 247, 48, 143, 245, 246, 93, 184, 201,
1182 203, 185, 256, 91, 179, 94, 239, 213, 256, 214,
1183 256, 256, 91, 91, 175, 256, 93, 240, 139, 164,
1184 129, 162, 162, 89, 173, 182, 256, 244, 94, 210,
1185 256, 92, 194, 98, 204, 211, 4, 188, 191, 192,
1186 193, 94, 91, 224, 94, 210, 94, 94, 177, 178,
1187 179, 94, 241, 91, 170, 50, 163, 163, 256, 28,
1188 249, 91, 94, 93, 187, 188, 8, 83, 93, 202,
1189 137, 189, 88, 91, 93, 250, 28, 211, 219, 91,
1190 217, 218, 88, 176, 89, 220, 128, 164, 164, 207,
1191 252, 253, 256, 91, 90, 195, 196, 256, 88, 91,
1192 94, 9, 35, 36, 83, 205, 206, 256, 211, 190,
1193 93, 192, 88, 90, 197, 199, 256, 231, 207, 211,
1194 256, 211, 211, 178, 91, 256, 222, 94, 169, 170,
1195 169, 30, 255, 245, 248, 4, 94, 88, 188, 256,
1196 256, 94, 37, 88, 94, 93, 197, 198, 4, 94,
1197 88, 41, 232, 233, 30, 225, 215, 51, 52, 227,
1198 88, 91, 91, 91, 252, 254, 91, 93, 195, 206,
1199 206, 197, 94, 197, 93, 197, 42, 235, 236, 256,
1200 226, 91, 41, 228, 229, 170, 210, 256, 94, 94,
1201 256, 234, 88, 96, 211, 210, 235, 94, 94, 94,
1202 254, 256, 94, 230, 252, 216, 91, 211, 223, 211
1208 0, 104, 106, 105, 107, 107, 107, 107, 109, 108,
1209 110, 110, 112, 113, 111, 114, 114, 115, 115, 116,
1210 116, 117, 117, 119, 118, 121, 122, 120, 120, 123,
1211 123, 123, 125, 124, 124, 126, 126, 126, 127, 127,
1212 128, 128, 129, 129, 131, 130, 132, 130, 130, 134,
1213 133, 135, 135, 136, 136, 136, 136, 136, 136, 136,
1214 136, 137, 137, 137, 137, 138, 138, 139, 139, 140,
1215 140, 141, 141, 142, 142, 142, 143, 143, 143, 143,
1216 143, 143, 143, 143, 143, 143, 143, 145, 144, 146,
1217 144, 147, 144, 148, 144, 149, 144, 150, 150, 151,
1218 151, 152, 152, 152, 152, 153, 153, 154, 154, 155,
1219 156, 154, 157, 157, 159, 158, 158, 160, 160, 161,
1220 161, 162, 162, 163, 163, 164, 166, 165, 168, 167,
1221 169, 169, 170, 171, 172, 172, 173, 175, 176, 174,
1222 174, 174, 177, 177, 178, 178, 179, 180, 181, 181,
1223 182, 184, 183, 185, 183, 186, 186, 187, 187, 189,
1224 188, 190, 188, 191, 191, 192, 193, 192, 194, 194,
1225 195, 195, 195, 196, 196, 197, 197, 197, 198, 197,
1226 199, 199, 199, 201, 202, 200, 203, 200, 204, 204,
1227 204, 204, 204, 204, 205, 205, 205, 206, 206, 206,
1228 207, 207, 208, 209, 210, 210, 211, 211, 211, 211,
1229 212, 211, 213, 211, 214, 215, 216, 211, 217, 211,
1230 218, 211, 219, 211, 220, 211, 221, 221, 221, 222,
1231 222, 222, 223, 223, 224, 224, 226, 225, 225, 227,
1232 227, 229, 230, 228, 231, 231, 233, 234, 232, 235,
1233 235, 236, 236, 236, 237, 237, 237, 238, 238, 239,
1234 239, 240, 240, 241, 241, 242, 242, 243, 244, 244,
1235 245, 245, 247, 248, 246, 249, 246, 250, 246, 251,
1236 246, 253, 252, 254, 254, 255, 255, 256, 256, 257,
1237 257, 257, 257, 257, 257, 257, 258, 257, 257, 257,
1238 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
1239 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
1240 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
1241 257, 257, 257, 257, 257, 257, 257, 259, 259
1247 0, 2, 0, 2, 2, 2, 2, 0, 0, 2,
1248 4, 0, 0, 0, 5, 1, 0, 1, 3, 1,
1249 3, 1, 3, 0, 9, 0, 0, 6, 0, 1,
1250 3, 0, 0, 6, 1, 2, 0, 4, 1, 3,
1251 1, 0, 2, 0, 0, 3, 0, 6, 3, 0,
1252 2, 1, 2, 1, 1, 1, 1, 1, 1, 1,
1253 1, 5, 5, 5, 3, 2, 2, 1, 0, 1,
1254 1, 1, 1, 2, 2, 0, 1, 1, 1, 1,
1255 1, 1, 1, 1, 3, 1, 1, 0, 7, 0,
1256 9, 0, 11, 0, 8, 0, 10, 2, 1, 3,
1257 0, 3, 2, 1, 0, 1, 0, 2, 0, 0,
1258 0, 6, 1, 3, 0, 5, 1, 2, 0, 1,
1259 0, 1, 0, 1, 0, 1, 0, 8, 0, 8,
1260 1, 3, 3, 3, 1, 3, 4, 0, 0, 7,
1261 4, 4, 1, 3, 1, 3, 2, 3, 1, 3,
1262 3, 0, 6, 0, 5, 1, 1, 1, 3, 0,
1263 5, 0, 6, 1, 3, 1, 0, 4, 4, 0,
1264 0, 1, 3, 1, 5, 0, 1, 3, 0, 3,
1265 1, 5, 4, 0, 0, 6, 0, 4, 4, 4,
1266 3, 3, 2, 0, 1, 3, 3, 2, 2, 1,
1267 2, 0, 5, 6, 3, 3, 1, 1, 1, 2,
1268 0, 5, 0, 7, 0, 0, 0, 13, 0, 7,
1269 0, 7, 0, 8, 0, 9, 1, 1, 1, 2,
1270 2, 0, 1, 1, 2, 0, 0, 3, 0, 2,
1271 0, 0, 0, 4, 2, 0, 0, 0, 4, 2,
1272 1, 1, 1, 3, 6, 2, 2, 1, 3, 1,
1273 3, 4, 0, 1, 0, 1, 3, 1, 2, 0,
1274 1, 1, 0, 0, 11, 0, 7, 0, 7, 0,
1275 6, 0, 2, 1, 1, 2, 0, 1, 6, 1,
1276 4, 2, 2, 1, 1, 1, 0, 7, 5, 5,
1277 3, 3, 6, 3, 4, 4, 4, 4, 3, 3,
1278 3, 3, 3, 3, 4, 4, 4, 4, 4, 4,
1279 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
1280 4, 4, 3, 3, 4, 4, 3, 1, 3
1284 #define yyerrok (yyerrstatus = 0)
1285 #define yyclearin (yychar = YYEMPTY)
1286 #define YYEMPTY (-2)
1289 #define YYACCEPT goto yyacceptlab
1290 #define YYABORT goto yyabortlab
1291 #define YYERROR goto yyerrorlab
1294 #define YYRECOVERING() (!!yyerrstatus)
1296 #define YYBACKUP(Token, Value) \
1298 if (yychar == YYEMPTY) \
1302 YYPOPSTACK (yylen); \
1308 yyerror (YY_("syntax error: cannot back up")); \
1315 #define YYERRCODE 256
1324 # define YYFPRINTF fprintf
1327 # define YYDPRINTF(Args) \
1334 #ifndef YY_LOCATION_PRINT
1335 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
1339 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
1343 YYFPRINTF (stderr, "%s ", Title); \
1344 yy_symbol_print (stderr, \
1346 YYFPRINTF (stderr, "\n"); \
1358 FILE *yyo = yyoutput;
1364 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
1393 for (; yybottom <= yytop; yybottom++)
1395 int yybot = *yybottom;
1401 # define YY_STACK_PRINT(Bottom, Top) \
1404 yy_stack_print ((Bottom), (Top)); \
1415 unsigned long int yylno =
yyrline[yyrule];
1416 int yynrhs =
yyr2[yyrule];
1418 YYFPRINTF (stderr,
"Reducing stack by rule %d (line %lu):\n",
1421 for (yyi = 0; yyi < yynrhs; yyi++)
1425 yystos[yyssp[yyi + 1 - yynrhs]],
1426 &(yyvsp[(yyi + 1) - (yynrhs)])
1432 # define YY_REDUCE_PRINT(Rule) \
1435 yy_reduce_print (yyssp, yyvsp, Rule); \
1442 # define YYDPRINTF(Args)
1443 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
1444 # define YY_STACK_PRINT(Bottom, Top)
1445 # define YY_REDUCE_PRINT(Rule)
1451 # define YYINITDEPTH 200
1462 # define YYMAXDEPTH 10000
1469 # if defined __GLIBC__ && defined _STRING_H
1470 # define yystrlen strlen
1474 yystrlen (
const char *yystr)
1477 for (yylen = 0; yystr[yylen]; yylen++)
1485 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
1486 # define yystpcpy stpcpy
1491 yystpcpy (
char *yydest,
const char *yysrc)
1494 const char *yys = yysrc;
1496 while ((*yyd++ = *yys++) !=
'\0')
1513 yytnamerr (
char *yyres,
const char *yystr)
1518 char const *yyp = yystr;
1525 goto do_not_strip_quotes;
1529 goto do_not_strip_quotes;
1542 do_not_strip_quotes: ;
1546 return yystrlen (yystr);
1548 return yystpcpy (yyres, yystr) - yyres;
1561 yysyntax_error (
YYSIZE_T *yymsg_alloc,
char **yymsg,
1566 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
1570 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
1600 int yyn =
yypact[*yyssp];
1601 yyarg[yycount++] =
yytname[yytoken];
1607 int yyxbegin = yyn < 0 ? -yyn : 0;
1609 int yychecklim =
YYLAST - yyn + 1;
1613 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
1617 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
1623 yyarg[yycount++] =
yytname[yyx];
1626 if (! (yysize <= yysize1
1637 # define YYCASE_(N, S) \
1641 YYCASE_(0,
YY_(
"syntax error"));
1642 YYCASE_(1,
YY_(
"syntax error, unexpected %s"));
1643 YYCASE_(2,
YY_(
"syntax error, unexpected %s, expecting %s"));
1644 YYCASE_(3,
YY_(
"syntax error, unexpected %s, expecting %s or %s"));
1645 YYCASE_(4,
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s"));
1646 YYCASE_(5,
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s or %s"));
1651 YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
1657 if (*yymsg_alloc < yysize)
1659 *yymsg_alloc = 2 * yysize;
1660 if (! (yysize <= *yymsg_alloc
1672 while ((*yyp = *yyformat) !=
'\0')
1673 if (*yyp ==
'%' && yyformat[1] ==
's' && yyi < yycount)
1675 yyp += yytnamerr (yyp, yyarg[yyi++]);
1758 char *yymsg = yymsgbuf;
1759 YYSIZE_T yymsg_alloc =
sizeof yymsgbuf;
1762 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
1768 yyssp = yyss = yyssa;
1769 yyvsp = yyvs = yyvsa;
1772 YYDPRINTF ((stderr,
"Starting parse\n"));
1791 if (yyss + yystacksize - 1 <= yyssp)
1794 YYSIZE_T yysize = yyssp - yyss + 1;
1808 yyoverflow (
YY_(
"memory exhausted"),
1809 &yyss1, yysize *
sizeof (*yyssp),
1810 &yyvs1, yysize *
sizeof (*yyvsp),
1817 # ifndef YYSTACK_RELOCATE
1818 goto yyexhaustedlab;
1822 goto yyexhaustedlab;
1832 goto yyexhaustedlab;
1835 # undef YYSTACK_RELOCATE
1842 yyssp = yyss + yysize - 1;
1843 yyvsp = yyvs + yysize - 1;
1845 YYDPRINTF ((stderr,
"Stack size increased to %lu\n",
1846 (
unsigned long int) yystacksize));
1848 if (yyss + yystacksize - 1 <= yyssp)
1852 YYDPRINTF ((stderr,
"Entering state %d\n", yystate));
1877 YYDPRINTF ((stderr,
"Reading a token: "));
1884 YYDPRINTF ((stderr,
"Now at end of input.\n"));
1950 yyval = yyvsp[1-yylen];
1957 #line 141 "frontends/verilog/verilog_parser.y"
1961 #line 1962 "frontends/verilog/verilog_parser.tab.c"
1965 #line 143 "frontends/verilog/verilog_parser.y"
1971 default_attr_list.clear();
1973 #line 1974 "frontends/verilog/verilog_parser.tab.c"
1977 #line 158 "frontends/verilog/verilog_parser.y"
1983 attr_list[it.first] = it.second->clone();
1985 #line 1986 "frontends/verilog/verilog_parser.tab.c"
1989 #line 164 "frontends/verilog/verilog_parser.y"
1991 std::map<std::string, AstNode*> *al =
new std::map<std::string, AstNode*>;
1995 #line 1996 "frontends/verilog/verilog_parser.tab.c"
1999 #line 175 "frontends/verilog/verilog_parser.y"
2003 default_attr_list.clear();
2008 #line 2009 "frontends/verilog/verilog_parser.tab.c"
2012 #line 182 "frontends/verilog/verilog_parser.y"
2017 #line 2018 "frontends/verilog/verilog_parser.tab.c"
2021 #line 195 "frontends/verilog/verilog_parser.y"
2023 if (
attr_list.count(*(yyvsp[0].string)) != 0)
2026 delete (yyvsp[0].string);
2028 #line 2029 "frontends/verilog/verilog_parser.tab.c"
2032 #line 201 "frontends/verilog/verilog_parser.y"
2034 if (
attr_list.count(*(yyvsp[-2].string)) != 0)
2036 attr_list[*(yyvsp[-2].string)] = (yyvsp[0].ast);
2037 delete (yyvsp[-2].string);
2039 #line 2040 "frontends/verilog/verilog_parser.tab.c"
2043 #line 209 "frontends/verilog/verilog_parser.y"
2045 (yyval.
string) = (yyvsp[0].
string);
2047 #line 2048 "frontends/verilog/verilog_parser.tab.c"
2051 #line 212 "frontends/verilog/verilog_parser.y"
2053 if ((yyvsp[0].
string)->substr(0, 1) ==
"\\")
2054 *(yyvsp[-2].
string) +=
"." + (yyvsp[0].string)->substr(1);
2056 *(yyvsp[-2].string) +=
"." + *(yyvsp[0].
string);
2057 delete (yyvsp[0].string);
2058 (yyval.
string) = (yyvsp[-2].
string);
2060 #line 2061 "frontends/verilog/verilog_parser.tab.c"
2064 #line 222 "frontends/verilog/verilog_parser.y"
2068 ast_stack.back()->children.push_back(mod);
2073 mod->
str = *(yyvsp[0].string);
2075 delete (yyvsp[0].string);
2077 #line 2078 "frontends/verilog/verilog_parser.tab.c"
2081 #line 233 "frontends/verilog/verilog_parser.y"
2090 #line 2091 "frontends/verilog/verilog_parser.tab.c"
2094 #line 243 "frontends/verilog/verilog_parser.y"
2096 #line 2097 "frontends/verilog/verilog_parser.tab.c"
2100 #line 243 "frontends/verilog/verilog_parser.y"
2102 #line 2103 "frontends/verilog/verilog_parser.tab.c"
2106 #line 251 "frontends/verilog/verilog_parser.y"
2112 #line 2113 "frontends/verilog/verilog_parser.tab.c"
2116 #line 267 "frontends/verilog/verilog_parser.y"
2121 if (
ast_stack.back()->children.back()->is_reg)
2128 #line 2129 "frontends/verilog/verilog_parser.tab.c"
2132 #line 281 "frontends/verilog/verilog_parser.y"
2136 node->
str = *(yyvsp[0].string);
2138 ast_stack.back()->children.push_back(node);
2140 if (
port_stubs.count(*(yyvsp[0].string)) != 0)
2144 delete (yyvsp[0].string);
2146 #line 2147 "frontends/verilog/verilog_parser.tab.c"
2150 #line 294 "frontends/verilog/verilog_parser.y"
2152 AstNode *node = (yyvsp[-2].ast);
2153 node->
str = *(yyvsp[0].string);
2155 if ((yyvsp[-1].ast) !=
NULL)
2156 node->
children.push_back((yyvsp[-1].ast));
2161 ast_stack.back()->children.push_back(node);
2163 delete (yyvsp[0].string);
2165 #line 2166 "frontends/verilog/verilog_parser.tab.c"
2169 #line 308 "frontends/verilog/verilog_parser.y"
2173 #line 2174 "frontends/verilog/verilog_parser.tab.c"
2177 #line 313 "frontends/verilog/verilog_parser.y"
2181 #line 2182 "frontends/verilog/verilog_parser.tab.c"
2185 #line 315 "frontends/verilog/verilog_parser.y"
2189 #line 2190 "frontends/verilog/verilog_parser.tab.c"
2193 #line 323 "frontends/verilog/verilog_parser.y"
2197 #line 2198 "frontends/verilog/verilog_parser.tab.c"
2201 #line 326 "frontends/verilog/verilog_parser.y"
2205 #line 2206 "frontends/verilog/verilog_parser.tab.c"
2209 #line 329 "frontends/verilog/verilog_parser.y"
2214 #line 2215 "frontends/verilog/verilog_parser.tab.c"
2218 #line 333 "frontends/verilog/verilog_parser.y"
2221 #line 2222 "frontends/verilog/verilog_parser.tab.c"
2225 #line 335 "frontends/verilog/verilog_parser.y"
2229 #line 2230 "frontends/verilog/verilog_parser.tab.c"
2233 #line 338 "frontends/verilog/verilog_parser.y"
2240 #line 2241 "frontends/verilog/verilog_parser.tab.c"
2244 #line 344 "frontends/verilog/verilog_parser.y"
2251 #line 2252 "frontends/verilog/verilog_parser.tab.c"
2255 #line 350 "frontends/verilog/verilog_parser.y"
2259 #line 2260 "frontends/verilog/verilog_parser.tab.c"
2263 #line 355 "frontends/verilog/verilog_parser.y"
2266 (yyval.ast)->children.push_back((yyvsp[-3].ast));
2267 (yyval.ast)->children.push_back((yyvsp[-1].ast));
2269 #line 2270 "frontends/verilog/verilog_parser.tab.c"
2273 #line 360 "frontends/verilog/verilog_parser.y"
2279 #line 2280 "frontends/verilog/verilog_parser.tab.c"
2283 #line 365 "frontends/verilog/verilog_parser.y"
2289 #line 2290 "frontends/verilog/verilog_parser.tab.c"
2293 #line 370 "frontends/verilog/verilog_parser.y"
2296 (yyval.ast)->children.push_back((yyvsp[-1].ast));
2298 #line 2299 "frontends/verilog/verilog_parser.tab.c"
2302 #line 376 "frontends/verilog/verilog_parser.y"
2306 #line 2307 "frontends/verilog/verilog_parser.tab.c"
2310 #line 379 "frontends/verilog/verilog_parser.y"
2312 (yyval.ast) = (yyvsp[-1].ast);
2313 (yyval.ast)->children.push_back((yyvsp[0].ast));
2315 #line 2316 "frontends/verilog/verilog_parser.tab.c"
2319 #line 385 "frontends/verilog/verilog_parser.y"
2321 (yyval.ast) = (yyvsp[0].ast);
2323 #line 2324 "frontends/verilog/verilog_parser.tab.c"
2327 #line 388 "frontends/verilog/verilog_parser.y"
2331 #line 2332 "frontends/verilog/verilog_parser.tab.c"
2335 #line 393 "frontends/verilog/verilog_parser.y"
2336 { (yyval.ast) = (yyvsp[0].ast); }
2337 #line 2338 "frontends/verilog/verilog_parser.tab.c"
2341 #line 394 "frontends/verilog/verilog_parser.y"
2342 { (yyval.ast) = (yyvsp[0].ast); }
2343 #line 2344 "frontends/verilog/verilog_parser.tab.c"
2347 #line 397 "frontends/verilog/verilog_parser.y"
2349 (yyval.ast) = (yyvsp[0].ast);
2351 #line 2352 "frontends/verilog/verilog_parser.tab.c"
2355 #line 400 "frontends/verilog/verilog_parser.y"
2360 (yyval.ast)->is_signed =
true;
2362 #line 2363 "frontends/verilog/verilog_parser.tab.c"
2366 #line 418 "frontends/verilog/verilog_parser.y"
2372 delete (yyvsp[-1].string);
2373 delete (yyvsp[0].string);
2375 #line 2376 "frontends/verilog/verilog_parser.tab.c"
2379 #line 425 "frontends/verilog/verilog_parser.y"
2383 #line 2384 "frontends/verilog/verilog_parser.tab.c"
2387 #line 428 "frontends/verilog/verilog_parser.y"
2393 delete (yyvsp[-3].string);
2394 delete (yyvsp[-1].string);
2395 delete (yyvsp[0].string);
2397 #line 2398 "frontends/verilog/verilog_parser.tab.c"
2401 #line 436 "frontends/verilog/verilog_parser.y"
2405 #line 2406 "frontends/verilog/verilog_parser.tab.c"
2409 #line 439 "frontends/verilog/verilog_parser.y"
2415 delete (yyvsp[-5].string);
2416 delete (yyvsp[-3].string);
2417 delete (yyvsp[-1].string);
2418 delete (yyvsp[0].string);
2420 #line 2421 "frontends/verilog/verilog_parser.tab.c"
2424 #line 448 "frontends/verilog/verilog_parser.y"
2428 #line 2429 "frontends/verilog/verilog_parser.tab.c"
2432 #line 451 "frontends/verilog/verilog_parser.y"
2440 delete (yyvsp[0].string);
2442 #line 2443 "frontends/verilog/verilog_parser.tab.c"
2446 #line 459 "frontends/verilog/verilog_parser.y"
2451 #line 2452 "frontends/verilog/verilog_parser.tab.c"
2455 #line 463 "frontends/verilog/verilog_parser.y"
2463 outreg->
str = *(yyvsp[0].string);
2464 outreg->
is_signed = (yyvsp[-2].boolean);
2465 if ((yyvsp[-1].ast) !=
NULL) {
2466 outreg->
children.push_back((yyvsp[-1].ast));
2467 outreg->
is_signed = (yyvsp[-2].boolean) || (yyvsp[-1].ast)->is_signed;
2468 (yyvsp[-1].ast)->is_signed =
false;
2472 delete (yyvsp[0].string);
2474 #line 2475 "frontends/verilog/verilog_parser.tab.c"
2478 #line 480 "frontends/verilog/verilog_parser.y"
2483 #line 2484 "frontends/verilog/verilog_parser.tab.c"
2487 #line 486 "frontends/verilog/verilog_parser.y"
2490 delete (yyvsp[-1].string);
2491 delete (yyvsp[0].string);
2493 #line 2494 "frontends/verilog/verilog_parser.tab.c"
2497 #line 491 "frontends/verilog/verilog_parser.y"
2500 delete (yyvsp[0].string);
2502 #line 2503 "frontends/verilog/verilog_parser.tab.c"
2506 #line 507 "frontends/verilog/verilog_parser.y"
2510 #line 2511 "frontends/verilog/verilog_parser.tab.c"
2514 #line 510 "frontends/verilog/verilog_parser.y"
2518 #line 2519 "frontends/verilog/verilog_parser.tab.c"
2522 #line 515 "frontends/verilog/verilog_parser.y"
2528 #line 2529 "frontends/verilog/verilog_parser.tab.c"
2532 #line 519 "frontends/verilog/verilog_parser.y"
2539 #line 2540 "frontends/verilog/verilog_parser.tab.c"
2543 #line 530 "frontends/verilog/verilog_parser.y"
2551 albuf = (yyvsp[-2].al);
2566 #line 2567 "frontends/verilog/verilog_parser.tab.c"
2570 #line 558 "frontends/verilog/verilog_parser.y"
2574 #line 2575 "frontends/verilog/verilog_parser.tab.c"
2578 #line 563 "frontends/verilog/verilog_parser.y"
2587 #line 2588 "frontends/verilog/verilog_parser.tab.c"
2591 #line 573 "frontends/verilog/verilog_parser.y"
2597 #line 2598 "frontends/verilog/verilog_parser.tab.c"
2601 #line 580 "frontends/verilog/verilog_parser.y"
2603 if ((yyvsp[0].ast) !=
NULL) {
2609 #line 2610 "frontends/verilog/verilog_parser.tab.c"
2613 #line 589 "frontends/verilog/verilog_parser.y"
2618 #line 2619 "frontends/verilog/verilog_parser.tab.c"
2622 #line 592 "frontends/verilog/verilog_parser.y"
2626 #line 2627 "frontends/verilog/verilog_parser.tab.c"
2630 #line 597 "frontends/verilog/verilog_parser.y"
2635 #line 2636 "frontends/verilog/verilog_parser.tab.c"
2639 #line 600 "frontends/verilog/verilog_parser.y"
2643 #line 2644 "frontends/verilog/verilog_parser.tab.c"
2647 #line 608 "frontends/verilog/verilog_parser.y"
2652 node->
str = *(yyvsp[-2].string);
2654 node->
children[0] = (yyvsp[0].ast);
2655 ast_stack.back()->children.push_back(node);
2656 delete (yyvsp[-2].string);
2658 #line 2659 "frontends/verilog/verilog_parser.tab.c"
2662 #line 626 "frontends/verilog/verilog_parser.y"
2665 node->
str = *(yyvsp[-2].string);
2666 node->
children.push_back((yyvsp[0].ast));
2667 if ((yyvsp[-3].ast) !=
NULL)
2668 node->
children.push_back((yyvsp[-3].ast));
2669 ast_stack.back()->children.push_back(node);
2670 delete (yyvsp[-2].string);
2672 #line 2673 "frontends/verilog/verilog_parser.tab.c"
2676 #line 637 "frontends/verilog/verilog_parser.y"
2678 albuf = (yyvsp[-2].al);
2693 #line 2694 "frontends/verilog/verilog_parser.tab.c"
2697 #line 652 "frontends/verilog/verilog_parser.y"
2704 #line 2705 "frontends/verilog/verilog_parser.tab.c"
2708 #line 658 "frontends/verilog/verilog_parser.y"
2711 ast_stack.back()->children.back()->str = *(yyvsp[-1].string);
2714 ast_stack.back()->children.back()->children[0]->str = *(yyvsp[-1].string);
2715 delete (yyvsp[-1].string);
2717 #line 2718 "frontends/verilog/verilog_parser.tab.c"
2721 #line 666 "frontends/verilog/verilog_parser.y"
2724 ast_stack.back()->children.back()->str = *(yyvsp[-1].string);
2727 ast_stack.back()->children.back()->children[0]->str = *(yyvsp[-1].string);
2728 delete (yyvsp[-1].string);
2730 #line 2731 "frontends/verilog/verilog_parser.tab.c"
2734 #line 680 "frontends/verilog/verilog_parser.y"
2743 #line 2744 "frontends/verilog/verilog_parser.tab.c"
2747 #line 690 "frontends/verilog/verilog_parser.y"
2750 node->
str = *(yyvsp[-1].string);
2754 if ((yyvsp[0].ast) !=
NULL) {
2764 node->
children.push_back((yyvsp[0].ast));
2770 if (
port_stubs.count(*(yyvsp[-1].string)) != 0) {
2785 ast_stack.back()->children.push_back(node);
2786 delete (yyvsp[-1].string);
2788 #line 2789 "frontends/verilog/verilog_parser.tab.c"
2792 #line 738 "frontends/verilog/verilog_parser.y"
2796 #line 2797 "frontends/verilog/verilog_parser.tab.c"
2800 #line 743 "frontends/verilog/verilog_parser.y"
2806 delete (yyvsp[0].string);
2808 #line 2809 "frontends/verilog/verilog_parser.tab.c"
2812 #line 749 "frontends/verilog/verilog_parser.y"
2816 #line 2817 "frontends/verilog/verilog_parser.tab.c"
2820 #line 752 "frontends/verilog/verilog_parser.y"
2825 delete (yyvsp[0].string);
2827 #line 2828 "frontends/verilog/verilog_parser.tab.c"
2831 #line 757 "frontends/verilog/verilog_parser.y"
2835 #line 2836 "frontends/verilog/verilog_parser.tab.c"
2839 #line 762 "frontends/verilog/verilog_parser.y"
2841 (yyval.
string) = (yyvsp[0].
string);
2843 #line 2844 "frontends/verilog/verilog_parser.tab.c"
2847 #line 765 "frontends/verilog/verilog_parser.y"
2849 (yyval.
string) =
new std::string(
"or");
2851 #line 2852 "frontends/verilog/verilog_parser.tab.c"
2855 #line 774 "frontends/verilog/verilog_parser.y"
2860 delete (yyvsp[0].string);
2863 #line 2864 "frontends/verilog/verilog_parser.tab.c"
2867 #line 781 "frontends/verilog/verilog_parser.y"
2872 delete (yyvsp[-1].string);
2875 #line 2876 "frontends/verilog/verilog_parser.tab.c"
2879 #line 795 "frontends/verilog/verilog_parser.y"
2884 #line 2885 "frontends/verilog/verilog_parser.tab.c"
2888 #line 808 "frontends/verilog/verilog_parser.y"
2892 node->
children.push_back((yyvsp[0].ast));
2894 #line 2895 "frontends/verilog/verilog_parser.tab.c"
2898 #line 813 "frontends/verilog/verilog_parser.y"
2901 node->
str = *(yyvsp[-3].string);
2903 node->
children.push_back((yyvsp[-1].ast));
2904 delete (yyvsp[-3].string);
2906 #line 2907 "frontends/verilog/verilog_parser.tab.c"
2910 #line 824 "frontends/verilog/verilog_parser.y"
2915 #line 2916 "frontends/verilog/verilog_parser.tab.c"
2919 #line 830 "frontends/verilog/verilog_parser.y"
2923 node->
children.push_back((yyvsp[0].ast));
2925 #line 2926 "frontends/verilog/verilog_parser.tab.c"
2929 #line 835 "frontends/verilog/verilog_parser.y"
2932 node->
str = *(yyvsp[-3].string);
2934 node->
children.push_back((yyvsp[-1].ast));
2935 delete (yyvsp[-3].string);
2937 #line 2938 "frontends/verilog/verilog_parser.tab.c"
2941 #line 842 "frontends/verilog/verilog_parser.y"
2944 node->
str = *(yyvsp[-2].string);
2946 delete (yyvsp[-2].string);
2948 #line 2949 "frontends/verilog/verilog_parser.tab.c"
2952 #line 850 "frontends/verilog/verilog_parser.y"
2956 ast_stack.back()->children.push_back(node);
2959 #line 2960 "frontends/verilog/verilog_parser.tab.c"
2963 #line 855 "frontends/verilog/verilog_parser.y"
2966 ast_stack.back()->children.push_back(block);
2969 #line 2970 "frontends/verilog/verilog_parser.tab.c"
2973 #line 859 "frontends/verilog/verilog_parser.y"
2978 #line 2979 "frontends/verilog/verilog_parser.tab.c"
2982 #line 863 "frontends/verilog/verilog_parser.y"
2986 ast_stack.back()->children.push_back(node);
2989 ast_stack.back()->children.push_back(block);
2992 #line 2993 "frontends/verilog/verilog_parser.tab.c"
2996 #line 871 "frontends/verilog/verilog_parser.y"
3001 #line 3002 "frontends/verilog/verilog_parser.tab.c"
3005 #line 890 "frontends/verilog/verilog_parser.y"
3008 ast_stack.back()->children.push_back(node);
3009 node->
children.push_back((yyvsp[0].ast));
3011 #line 3012 "frontends/verilog/verilog_parser.tab.c"
3015 #line 895 "frontends/verilog/verilog_parser.y"
3018 ast_stack.back()->children.push_back(node);
3019 node->
children.push_back((yyvsp[0].ast));
3021 #line 3022 "frontends/verilog/verilog_parser.tab.c"
3025 #line 900 "frontends/verilog/verilog_parser.y"
3028 ast_stack.back()->children.push_back(node);
3029 node->
children.push_back((yyvsp[0].ast));
3031 #line 3032 "frontends/verilog/verilog_parser.tab.c"
3035 #line 907 "frontends/verilog/verilog_parser.y"
3037 (yyval.
string) = (yyvsp[0].
string);
3039 #line 3040 "frontends/verilog/verilog_parser.tab.c"
3043 #line 910 "frontends/verilog/verilog_parser.y"
3047 #line 3048 "frontends/verilog/verilog_parser.tab.c"
3051 #line 915 "frontends/verilog/verilog_parser.y"
3055 #line 3056 "frontends/verilog/verilog_parser.tab.c"
3059 #line 920 "frontends/verilog/verilog_parser.y"
3063 #line 3064 "frontends/verilog/verilog_parser.tab.c"
3067 #line 925 "frontends/verilog/verilog_parser.y"
3070 ast_stack.back()->children.push_back(node);
3072 #line 3073 "frontends/verilog/verilog_parser.tab.c"
3076 #line 929 "frontends/verilog/verilog_parser.y"
3079 ast_stack.back()->children.push_back(node);
3081 #line 3082 "frontends/verilog/verilog_parser.tab.c"
3085 #line 938 "frontends/verilog/verilog_parser.y"
3088 node->
str = *(yyvsp[-1].string);
3089 delete (yyvsp[-1].string);
3090 ast_stack.back()->children.push_back(node);
3094 #line 3095 "frontends/verilog/verilog_parser.tab.c"
3098 #line 945 "frontends/verilog/verilog_parser.y"
3102 #line 3103 "frontends/verilog/verilog_parser.tab.c"
3106 #line 948 "frontends/verilog/verilog_parser.y"
3109 ast_stack.back()->children.push_back(node);
3112 if ((yyvsp[0].
string) !=
NULL)
3113 node->
str = *(yyvsp[0].string);
3115 #line 3116 "frontends/verilog/verilog_parser.tab.c"
3119 #line 955 "frontends/verilog/verilog_parser.y"
3121 if ((yyvsp[-4].
string) !=
NULL && (yyvsp[0].string) !=
NULL && *(yyvsp[-4].
string) != *(yyvsp[0].string))
3123 if ((yyvsp[-4].
string) !=
NULL)
3124 delete (yyvsp[-4].string);
3125 if ((yyvsp[0].
string) !=
NULL)
3126 delete (yyvsp[0].
string);
3129 #line 3130 "frontends/verilog/verilog_parser.tab.c"
3133 #line 964 "frontends/verilog/verilog_parser.y"
3136 ast_stack.back()->children.push_back(node);
3140 #line 3141 "frontends/verilog/verilog_parser.tab.c"
3144 #line 969 "frontends/verilog/verilog_parser.y"
3146 ast_stack.back()->children.push_back((yyvsp[0].ast));
3148 #line 3149 "frontends/verilog/verilog_parser.tab.c"
3152 #line 971 "frontends/verilog/verilog_parser.y"
3155 ast_stack.back()->children.push_back(block);
3158 #line 3159 "frontends/verilog/verilog_parser.tab.c"
3162 #line 975 "frontends/verilog/verilog_parser.y"
3167 #line 3168 "frontends/verilog/verilog_parser.tab.c"
3171 #line 979 "frontends/verilog/verilog_parser.y"
3174 ast_stack.back()->children.push_back(node);
3178 ast_stack.back()->children.push_back((yyvsp[-1].ast));
3179 ast_stack.back()->children.push_back(block);
3182 #line 3183 "frontends/verilog/verilog_parser.tab.c"
3186 #line 988 "frontends/verilog/verilog_parser.y"
3191 #line 3192 "frontends/verilog/verilog_parser.tab.c"
3195 #line 992 "frontends/verilog/verilog_parser.y"
3198 ast_stack.back()->children.push_back(node);
3202 ast_stack.back()->children.push_back((yyvsp[-1].ast));
3203 ast_stack.back()->children.push_back(block);
3206 #line 3207 "frontends/verilog/verilog_parser.tab.c"
3210 #line 1001 "frontends/verilog/verilog_parser.y"
3215 #line 3216 "frontends/verilog/verilog_parser.tab.c"
3219 #line 1005 "frontends/verilog/verilog_parser.y"
3224 ast_stack.back()->children.push_back(node);
3231 #line 3232 "frontends/verilog/verilog_parser.tab.c"
3235 #line 1015 "frontends/verilog/verilog_parser.y"
3240 #line 3241 "frontends/verilog/verilog_parser.tab.c"
3244 #line 1019 "frontends/verilog/verilog_parser.y"
3247 ast_stack.back()->children.push_back(node);
3251 #line 3252 "frontends/verilog/verilog_parser.tab.c"
3255 #line 1024 "frontends/verilog/verilog_parser.y"
3260 #line 3261 "frontends/verilog/verilog_parser.tab.c"
3264 #line 1030 "frontends/verilog/verilog_parser.y"
3268 #line 3269 "frontends/verilog/verilog_parser.tab.c"
3272 #line 1033 "frontends/verilog/verilog_parser.y"
3276 #line 3277 "frontends/verilog/verilog_parser.tab.c"
3280 #line 1036 "frontends/verilog/verilog_parser.y"
3284 #line 3285 "frontends/verilog/verilog_parser.tab.c"
3288 #line 1041 "frontends/verilog/verilog_parser.y"
3290 if (
ast_stack.back()->attributes.count(
"\\full_case") == 0)
3293 #line 3294 "frontends/verilog/verilog_parser.tab.c"
3297 #line 1045 "frontends/verilog/verilog_parser.y"
3299 if (
ast_stack.back()->attributes.count(
"\\parallel_case") == 0)
3302 #line 3303 "frontends/verilog/verilog_parser.tab.c"
3306 #line 1060 "frontends/verilog/verilog_parser.y"
3311 ast_stack.back()->children.push_back(cond);
3314 #line 3315 "frontends/verilog/verilog_parser.tab.c"
3318 #line 1074 "frontends/verilog/verilog_parser.y"
3321 ast_stack.back()->children.push_back(node);
3324 #line 3325 "frontends/verilog/verilog_parser.tab.c"
3328 #line 1078 "frontends/verilog/verilog_parser.y"
3331 ast_stack.back()->children.push_back(block);
3335 #line 3336 "frontends/verilog/verilog_parser.tab.c"
3339 #line 1083 "frontends/verilog/verilog_parser.y"
3345 #line 3346 "frontends/verilog/verilog_parser.tab.c"
3349 #line 1094 "frontends/verilog/verilog_parser.y"
3352 ast_stack.back()->children.push_back(node);
3355 #line 3356 "frontends/verilog/verilog_parser.tab.c"
3359 #line 1098 "frontends/verilog/verilog_parser.y"
3363 #line 3364 "frontends/verilog/verilog_parser.tab.c"
3367 #line 1100 "frontends/verilog/verilog_parser.y"
3372 #line 3373 "frontends/verilog/verilog_parser.tab.c"
3376 #line 1110 "frontends/verilog/verilog_parser.y"
3380 #line 3381 "frontends/verilog/verilog_parser.tab.c"
3384 #line 1113 "frontends/verilog/verilog_parser.y"
3386 ast_stack.back()->children.push_back((yyvsp[0].ast));
3388 #line 3389 "frontends/verilog/verilog_parser.tab.c"
3392 #line 1116 "frontends/verilog/verilog_parser.y"
3394 ast_stack.back()->children.push_back((yyvsp[0].ast));
3396 #line 3397 "frontends/verilog/verilog_parser.tab.c"
3400 #line 1121 "frontends/verilog/verilog_parser.y"
3403 (yyval.ast)->str = *(yyvsp[-5].
string);
3404 delete (yyvsp[-5].string);
3406 #line 3407 "frontends/verilog/verilog_parser.tab.c"
3410 #line 1126 "frontends/verilog/verilog_parser.y"
3413 (yyval.ast)->str = *(yyvsp[-1].
string);
3414 delete (yyvsp[-1].string);
3416 #line 3417 "frontends/verilog/verilog_parser.tab.c"
3420 #line 1131 "frontends/verilog/verilog_parser.y"
3423 (yyval.ast)->str = *(yyvsp[-1].
string);
3424 delete (yyvsp[-1].string);
3426 #line 3427 "frontends/verilog/verilog_parser.tab.c"
3430 #line 1138 "frontends/verilog/verilog_parser.y"
3432 (yyval.ast) = (yyvsp[0].ast);
3434 #line 3435 "frontends/verilog/verilog_parser.tab.c"
3438 #line 1141 "frontends/verilog/verilog_parser.y"
3440 (yyval.ast) = (yyvsp[-1].ast);
3442 #line 3443 "frontends/verilog/verilog_parser.tab.c"
3446 #line 1146 "frontends/verilog/verilog_parser.y"
3449 (yyval.ast)->children.push_back((yyvsp[0].ast));
3451 #line 3452 "frontends/verilog/verilog_parser.tab.c"
3455 #line 1150 "frontends/verilog/verilog_parser.y"
3457 (yyval.ast) = (yyvsp[0].ast);
3458 (yyval.ast)->children.push_back((yyvsp[-2].ast));
3460 #line 3461 "frontends/verilog/verilog_parser.tab.c"
3464 #line 1168 "frontends/verilog/verilog_parser.y"
3466 ast_stack.back()->children.push_back((yyvsp[0].ast));
3468 #line 3469 "frontends/verilog/verilog_parser.tab.c"
3472 #line 1181 "frontends/verilog/verilog_parser.y"
3475 ast_stack.back()->children.push_back(node);
3478 #line 3479 "frontends/verilog/verilog_parser.tab.c"
3482 #line 1185 "frontends/verilog/verilog_parser.y"
3484 ast_stack.back()->children.push_back((yyvsp[0].ast));
3486 #line 3487 "frontends/verilog/verilog_parser.tab.c"
3490 #line 1187 "frontends/verilog/verilog_parser.y"
3494 #line 3495 "frontends/verilog/verilog_parser.tab.c"
3498 #line 1190 "frontends/verilog/verilog_parser.y"
3501 ast_stack.back()->children.push_back(node);
3503 ast_stack.back()->children.push_back((yyvsp[-1].ast));
3505 #line 3506 "frontends/verilog/verilog_parser.tab.c"
3509 #line 1195 "frontends/verilog/verilog_parser.y"
3513 #line 3514 "frontends/verilog/verilog_parser.tab.c"
3517 #line 1198 "frontends/verilog/verilog_parser.y"
3520 ast_stack.back()->children.push_back(node);
3523 #line 3524 "frontends/verilog/verilog_parser.tab.c"
3527 #line 1202 "frontends/verilog/verilog_parser.y"
3532 #line 3533 "frontends/verilog/verilog_parser.tab.c"
3536 #line 1206 "frontends/verilog/verilog_parser.y"
3539 node->
str = (yyvsp[0].string) ? *(yyvsp[0].
string) : std::string();
3540 ast_stack.back()->children.push_back(node);
3543 #line 3544 "frontends/verilog/verilog_parser.tab.c"
3547 #line 1211 "frontends/verilog/verilog_parser.y"
3549 if ((yyvsp[-4].
string) !=
NULL)
3550 delete (yyvsp[-4].string);
3551 if ((yyvsp[0].
string) !=
NULL)
3552 delete (yyvsp[0].
string);
3555 #line 3556 "frontends/verilog/verilog_parser.tab.c"
3559 #line 1220 "frontends/verilog/verilog_parser.y"
3562 ast_stack.back()->children.push_back(node);
3565 #line 3566 "frontends/verilog/verilog_parser.tab.c"
3569 #line 1224 "frontends/verilog/verilog_parser.y"
3573 #line 3574 "frontends/verilog/verilog_parser.tab.c"
3577 #line 1235 "frontends/verilog/verilog_parser.y"
3579 (yyval.ast) = (yyvsp[0].ast);
3581 #line 3582 "frontends/verilog/verilog_parser.tab.c"
3585 #line 1238 "frontends/verilog/verilog_parser.y"
3588 (yyval.ast)->children.push_back((yyvsp[-5].ast));
3589 (yyval.ast)->children.push_back((yyvsp[-2].ast));
3590 (yyval.ast)->children.push_back((yyvsp[0].ast));
3593 #line 3594 "frontends/verilog/verilog_parser.tab.c"
3597 #line 1247 "frontends/verilog/verilog_parser.y"
3599 (yyval.ast) = (yyvsp[0].ast);
3601 #line 3602 "frontends/verilog/verilog_parser.tab.c"
3605 #line 1250 "frontends/verilog/verilog_parser.y"
3607 if ((yyvsp[0].
string)->substr(0, 1) !=
"'")
3609 AstNode *bits = (yyvsp[-2].ast);
3612 log_error(
"Value conversion failed: `%s'\n", (yyvsp[0].
string)->c_str());
3614 delete (yyvsp[0].string);
3616 #line 3617 "frontends/verilog/verilog_parser.tab.c"
3620 #line 1260 "frontends/verilog/verilog_parser.y"
3622 if ((yyvsp[0].
string)->substr(0, 1) !=
"'")
3625 bits->
str = *(yyvsp[-1].string);
3628 log_error(
"Value conversion failed: `%s'\n", (yyvsp[0].
string)->c_str());
3630 delete (yyvsp[-1].string);
3631 delete (yyvsp[0].string);
3633 #line 3634 "frontends/verilog/verilog_parser.tab.c"
3637 #line 1272 "frontends/verilog/verilog_parser.y"
3640 if ((yyval.ast) ==
NULL || (*(yyvsp[0].string))[0] !=
'\'')
3641 log_error(
"Value conversion failed: `%s%s'\n", (yyvsp[-1].
string)->c_str(), (yyvsp[0].string)->c_str());
3642 delete (yyvsp[-1].string);
3643 delete (yyvsp[0].string);
3645 #line 3646 "frontends/verilog/verilog_parser.tab.c"
3649 #line 1279 "frontends/verilog/verilog_parser.y"
3652 if ((yyval.ast) ==
NULL)
3653 log_error(
"Value conversion failed: `%s'\n", (yyvsp[0].
string)->c_str());
3654 delete (yyvsp[0].string);
3656 #line 3657 "frontends/verilog/verilog_parser.tab.c"
3660 #line 1285 "frontends/verilog/verilog_parser.y"
3663 char *p = strdup((yyvsp[0].
string)->c_str()), *q;
3664 for (
int i = 0, j = 0; !p[j]; j++)
3666 p[i++] = p[j], p[i] = 0;
3667 (yyval.ast)->realvalue = strtod(p, &q);
3669 delete (yyvsp[0].string);
3672 #line 3673 "frontends/verilog/verilog_parser.tab.c"
3676 #line 1296 "frontends/verilog/verilog_parser.y"
3679 delete (yyvsp[0].string);
3681 #line 3682 "frontends/verilog/verilog_parser.tab.c"
3685 #line 1300 "frontends/verilog/verilog_parser.y"
3688 node->
str = *(yyvsp[-1].string);
3689 delete (yyvsp[-1].string);
3693 #line 3694 "frontends/verilog/verilog_parser.tab.c"
3697 #line 1306 "frontends/verilog/verilog_parser.y"
3702 #line 3703 "frontends/verilog/verilog_parser.tab.c"
3706 #line 1310 "frontends/verilog/verilog_parser.y"
3711 #line 3712 "frontends/verilog/verilog_parser.tab.c"
3715 #line 1314 "frontends/verilog/verilog_parser.y"
3720 #line 3721 "frontends/verilog/verilog_parser.tab.c"
3724 #line 1318 "frontends/verilog/verilog_parser.y"
3726 (yyval.ast) = (yyvsp[-1].ast);
3728 #line 3729 "frontends/verilog/verilog_parser.tab.c"
3732 #line 1321 "frontends/verilog/verilog_parser.y"
3734 (yyval.ast) = (yyvsp[-1].ast);
3736 #line 3737 "frontends/verilog/verilog_parser.tab.c"
3740 #line 1324 "frontends/verilog/verilog_parser.y"
3744 #line 3745 "frontends/verilog/verilog_parser.tab.c"
3748 #line 1327 "frontends/verilog/verilog_parser.y"
3753 #line 3754 "frontends/verilog/verilog_parser.tab.c"
3757 #line 1331 "frontends/verilog/verilog_parser.y"
3762 #line 3763 "frontends/verilog/verilog_parser.tab.c"
3766 #line 1335 "frontends/verilog/verilog_parser.y"
3771 #line 3772 "frontends/verilog/verilog_parser.tab.c"
3775 #line 1339 "frontends/verilog/verilog_parser.y"
3780 #line 3781 "frontends/verilog/verilog_parser.tab.c"
3784 #line 1343 "frontends/verilog/verilog_parser.y"
3789 #line 3790 "frontends/verilog/verilog_parser.tab.c"
3793 #line 1347 "frontends/verilog/verilog_parser.y"
3798 #line 3799 "frontends/verilog/verilog_parser.tab.c"
3802 #line 1351 "frontends/verilog/verilog_parser.y"
3808 #line 3809 "frontends/verilog/verilog_parser.tab.c"
3812 #line 1356 "frontends/verilog/verilog_parser.y"
3817 #line 3818 "frontends/verilog/verilog_parser.tab.c"
3821 #line 1360 "frontends/verilog/verilog_parser.y"
3827 #line 3828 "frontends/verilog/verilog_parser.tab.c"
3831 #line 1365 "frontends/verilog/verilog_parser.y"
3836 #line 3837 "frontends/verilog/verilog_parser.tab.c"
3840 #line 1369 "frontends/verilog/verilog_parser.y"
3845 #line 3846 "frontends/verilog/verilog_parser.tab.c"
3849 #line 1373 "frontends/verilog/verilog_parser.y"
3854 #line 3855 "frontends/verilog/verilog_parser.tab.c"
3858 #line 1377 "frontends/verilog/verilog_parser.y"
3863 #line 3864 "frontends/verilog/verilog_parser.tab.c"
3867 #line 1381 "frontends/verilog/verilog_parser.y"
3872 #line 3873 "frontends/verilog/verilog_parser.tab.c"
3876 #line 1385 "frontends/verilog/verilog_parser.y"
3881 #line 3882 "frontends/verilog/verilog_parser.tab.c"
3885 #line 1389 "frontends/verilog/verilog_parser.y"
3887 (yyval.ast) =
new AstNode(
AST_LT, (yyvsp[-3].ast), (yyvsp[0].ast));
3890 #line 3891 "frontends/verilog/verilog_parser.tab.c"
3894 #line 1393 "frontends/verilog/verilog_parser.y"
3896 (yyval.ast) =
new AstNode(
AST_LE, (yyvsp[-3].ast), (yyvsp[0].ast));
3899 #line 3900 "frontends/verilog/verilog_parser.tab.c"
3903 #line 1397 "frontends/verilog/verilog_parser.y"
3905 (yyval.ast) =
new AstNode(
AST_EQ, (yyvsp[-3].ast), (yyvsp[0].ast));
3908 #line 3909 "frontends/verilog/verilog_parser.tab.c"
3912 #line 1401 "frontends/verilog/verilog_parser.y"
3914 (yyval.ast) =
new AstNode(
AST_NE, (yyvsp[-3].ast), (yyvsp[0].ast));
3917 #line 3918 "frontends/verilog/verilog_parser.tab.c"
3921 #line 1405 "frontends/verilog/verilog_parser.y"
3923 (yyval.ast) =
new AstNode(
AST_EQX, (yyvsp[-3].ast), (yyvsp[0].ast));
3926 #line 3927 "frontends/verilog/verilog_parser.tab.c"
3930 #line 1409 "frontends/verilog/verilog_parser.y"
3932 (yyval.ast) =
new AstNode(
AST_NEX, (yyvsp[-3].ast), (yyvsp[0].ast));
3935 #line 3936 "frontends/verilog/verilog_parser.tab.c"
3939 #line 1413 "frontends/verilog/verilog_parser.y"
3941 (yyval.ast) =
new AstNode(
AST_GE, (yyvsp[-3].ast), (yyvsp[0].ast));
3944 #line 3945 "frontends/verilog/verilog_parser.tab.c"
3948 #line 1417 "frontends/verilog/verilog_parser.y"
3950 (yyval.ast) =
new AstNode(
AST_GT, (yyvsp[-3].ast), (yyvsp[0].ast));
3953 #line 3954 "frontends/verilog/verilog_parser.tab.c"
3957 #line 1421 "frontends/verilog/verilog_parser.y"
3959 (yyval.ast) =
new AstNode(
AST_ADD, (yyvsp[-3].ast), (yyvsp[0].ast));
3962 #line 3963 "frontends/verilog/verilog_parser.tab.c"
3966 #line 1425 "frontends/verilog/verilog_parser.y"
3968 (yyval.ast) =
new AstNode(
AST_SUB, (yyvsp[-3].ast), (yyvsp[0].ast));
3971 #line 3972 "frontends/verilog/verilog_parser.tab.c"
3975 #line 1429 "frontends/verilog/verilog_parser.y"
3977 (yyval.ast) =
new AstNode(
AST_MUL, (yyvsp[-3].ast), (yyvsp[0].ast));
3980 #line 3981 "frontends/verilog/verilog_parser.tab.c"
3984 #line 1433 "frontends/verilog/verilog_parser.y"
3986 (yyval.ast) =
new AstNode(
AST_DIV, (yyvsp[-3].ast), (yyvsp[0].ast));
3989 #line 3990 "frontends/verilog/verilog_parser.tab.c"
3993 #line 1437 "frontends/verilog/verilog_parser.y"
3995 (yyval.ast) =
new AstNode(
AST_MOD, (yyvsp[-3].ast), (yyvsp[0].ast));
3998 #line 3999 "frontends/verilog/verilog_parser.tab.c"
4002 #line 1441 "frontends/verilog/verilog_parser.y"
4004 (yyval.ast) =
new AstNode(
AST_POW, (yyvsp[-3].ast), (yyvsp[0].ast));
4007 #line 4008 "frontends/verilog/verilog_parser.tab.c"
4011 #line 1445 "frontends/verilog/verilog_parser.y"
4016 #line 4017 "frontends/verilog/verilog_parser.tab.c"
4020 #line 1449 "frontends/verilog/verilog_parser.y"
4025 #line 4026 "frontends/verilog/verilog_parser.tab.c"
4029 #line 1453 "frontends/verilog/verilog_parser.y"
4034 #line 4035 "frontends/verilog/verilog_parser.tab.c"
4038 #line 1457 "frontends/verilog/verilog_parser.y"
4043 #line 4044 "frontends/verilog/verilog_parser.tab.c"
4047 #line 1461 "frontends/verilog/verilog_parser.y"
4052 #line 4053 "frontends/verilog/verilog_parser.tab.c"
4056 #line 1467 "frontends/verilog/verilog_parser.y"
4060 #line 4061 "frontends/verilog/verilog_parser.tab.c"
4064 #line 1470 "frontends/verilog/verilog_parser.y"
4066 (yyval.ast) = (yyvsp[0].ast);
4067 (yyval.ast)->children.push_back((yyvsp[-2].ast));
4069 #line 4070 "frontends/verilog/verilog_parser.tab.c"
4073 #line 4074 "frontends/verilog/verilog_parser.tab.c"
4102 if (0 <= yystate && yystate <=
YYLAST &&
yycheck[yystate] == *yyssp)
4122 #if ! YYERROR_VERBOSE
4125 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
4128 char const *yymsgp =
YY_(
"syntax error");
4129 int yysyntax_error_status;
4130 yysyntax_error_status = YYSYNTAX_ERROR;
4131 if (yysyntax_error_status == 0)
4133 else if (yysyntax_error_status == 1)
4135 if (yymsg != yymsgbuf)
4141 yymsg_alloc =
sizeof yymsgbuf;
4142 yysyntax_error_status = 2;
4146 yysyntax_error_status = YYSYNTAX_ERROR;
4151 if (yysyntax_error_status == 2)
4152 goto yyexhaustedlab;
4154 # undef YYSYNTAX_ERROR
4160 if (yyerrstatus == 3)
4262 #if !defined yyoverflow || YYERROR_VERBOSE
4285 while (yyssp != yyss)
4296 if (yymsg != yymsgbuf)
static YOSYS_NAMESPACE_END void append_attr(AstNode *ast, std::map< std::string, AstNode * > *al)
YYSTYPE frontend_verilog_yylval
bool default_nettype_wire
static AstNode * mkconst_int(uint32_t v, bool is_signed, int width=32)
std::map< std::string, AstNode * > * albuf
struct AstNode * current_ast_mod
#define YOSYS_NAMESPACE_PREFIX
static const char *const yytname[]
static AstNode * mkconst_str(const std::vector< RTLIL::State > &v)
#define YOSYS_NAMESPACE_END
static std::string unescape_id(std::string str)
YOSYS_NAMESPACE_END void frontend_verilog_yyerror(char const *fmt,...)
std::vector< AstNode * > ast_stack
std::map< RTLIL::IdString, AstNode * > attributes
void log_error(const char *format,...)
struct AstNode * current_function_or_task
unsigned short int yytype_uint16
#define YYSTACK_ALLOC_MAXIMUM
static const yytype_uint16 yyr1[]
static const yytype_uint8 yytranslate[]
static void yy_reduce_print(yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule)
static const yytype_int16 yypgoto[]
static const yytype_uint16 yystos[]
#define yypact_value_is_default(Yystate)
#define yytable_value_is_error(Yytable_value)
static const yytype_int16 yytable[]
#define YY_REDUCE_PRINT(Rule)
int GetSize(RTLIL::Wire *wire)
#define log_assert(_assert_expr_)
std::map< std::string, YOSYS_NAMESPACE_PREFIX AST::AstNode * > * al
unsigned char yytype_uint8
static void free_attr(std::map< std::string, AstNode * > *al)
std::vector< char > case_type_stack
std::map< std::string, AstNode * > attr_list
static void yy_symbol_print(FILE *yyoutput, int yytype, YYSTYPE const *const yyvaluep)
#define YYSTACK_RELOCATE(Stack_alloc, Stack)
static void append_attr_clone(AstNode *ast, std::map< std::string, AstNode * > *al)
std::map< std::string, int > port_stubs
#define USING_YOSYS_NAMESPACE
#define YOSYS_NAMESPACE_BEGIN
static const yytype_uint16 yyrline[]
#define YY_SYMBOL_PRINT(Title, Type, Value, Location)
static void yy_symbol_value_print(FILE *yyoutput, int yytype, YYSTYPE const *const yyvaluep)
static const yytype_int16 yycheck[]
int frontend_verilog_yyparse(void)
std::vector< AstNode * > children
AST::AstNode * const2ast(std::string code, char case_type=0, bool warn_z=false)
#define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
#define YY_IGNORE_MAYBE_UNINITIALIZED_END
int frontend_verilog_yydebug
static void yy_stack_print(yytype_int16 *yybottom, yytype_int16 *yytop)
static void yydestruct(const char *yymsg, int yytype, YYSTYPE *yyvaluep)
int current_function_or_task_port_id
static const yytype_uint8 yyr2[]
std::map< std::string, AstNode * > default_attr_list
static const yytype_uint16 yydefact[]
#define YY_STACK_PRINT(Bottom, Top)
static const yytype_int16 yypact[]
static const yytype_int16 yydefgoto[]
bool do_not_require_port_stubs