49 #define YYBISON_VERSION "2.4.1"
52 #define YYSKELETON_NAME "yacc.c"
64 #define YYLSP_NEEDED 0
67 #define yyparse spice_parse
68 #define yylex spice_lex
69 #define yyerror spice_error
70 #define yylval spice_lval
71 #define yychar spice_char
72 #define yydebug spice_debug
73 #define yynerrs spice_nerrs
79 #line 3 "parse_spice.y"
115 #define strcasecmp stricmp
118 #define YYERROR_VERBOSE 42
120 #define YYMAXDEPTH 1000000
125 static char * spice_toupper (
char * str) {
126 for (
unsigned int i = 0;
i < strlen (str);
i++) {
127 if (str[
i] >=
'a' && str[
i] <=
'z') str[
i] = toupper (str[
i]);
136 def->
instance = spice_toupper (instance);
137 def->
type = (
char *) calloc (2, 1);
148 def->
instance = spice_toupper (instance);
149 def->
type = spice_toupper (type);
157 val->
ident = spice_toupper (value);
166 val->
value = strtod (value, NULL);
172 static struct value_t * spice_create_par_value (
char * key,
char *
value) {
179 static void spice_append_str_value (
struct definition_t * def,
181 struct value_t * val = spice_create_str_value (value, hint);
186 static struct value_t * spice_append_str_values (
struct value_t * values,
188 struct value_t * val = spice_create_str_value (value, hint);
193 static void spice_append_val_value (
struct definition_t * def,
195 struct value_t * val = spice_create_val_value (value, hint);
200 static struct value_t * spice_append_val_values (
struct value_t * values,
202 struct value_t * val = spice_create_val_value (value, hint);
209 #line 210 "parse_spice.cpp"
217 #ifdef YYERROR_VERBOSE
218 # undef YYERROR_VERBOSE
219 # define YYERROR_VERBOSE 1
221 # define YYERROR_VERBOSE 0
225 #ifndef YYTOKEN_TABLE
226 # define YYTOKEN_TABLE 0
308 #define TitleLine 258
309 #define InvalidCharacter 259
312 #define Identifier 262
318 #define SUBCKT_Action 268
319 #define ENDS_Action 269
320 #define AC_Action 270
321 #define OP_Action 271
323 #define SAVE_Action 273
324 #define RLC_Device 274
327 #define IV_Source 277
328 #define GE_Source 278
329 #define FH_Source 279
331 #define Diode_Device 281
332 #define Bipolar_Device 282
333 #define JFET_Device 283
334 #define MOSFET_Device 284
335 #define MESFET_Device 285
336 #define MODEL_Action 286
337 #define MODEL_Spec 287
338 #define TRAN_Action 288
339 #define PLOT_Action 289
342 #define DC_Action 292
343 #define PRINT_Action 293
344 #define OPTIONS_Action 294
345 #define WIDTH_Action 295
346 #define NOISE_Action 296
347 #define PZ_Action 297
350 #define ALL_Special 300
353 #define ModelProps 303
354 #define OFF_Special 304
355 #define IC_Special 305
357 #define TEMP_Special 307
358 #define MOS_Special 308
360 #define DISTO_Action 310
361 #define INCLUDE_Action 311
363 #define BranchFunc 313
364 #define NODESET_Action 314
369 #define ON_Special 319
370 #define TF_Action 320
371 #define SENS_Action 321
372 #define FOUR_Action 322
375 #define TC_Special 325
376 #define TEMP_Action 326
381 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
386 #line 146 "parse_spice.y"
398 #line 399 "parse_spice.cpp"
400 # define YYSTYPE_IS_TRIVIAL 1
401 # define yystype YYSTYPE
402 # define YYSTYPE_IS_DECLARED 1
410 #line 411 "parse_spice.cpp"
424 #elif (defined __STDC__ || defined __C99__FUNC__ \
425 || defined __cplusplus || defined _MSC_VER)
444 # ifdef __SIZE_TYPE__
445 # define YYSIZE_T __SIZE_TYPE__
446 # elif defined size_t
447 # define YYSIZE_T size_t
448 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
449 || defined __cplusplus || defined _MSC_VER)
451 # define YYSIZE_T size_t
453 # define YYSIZE_T unsigned int
457 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
462 # include <libintl.h>
463 # define YY_(msgid) dgettext ("bison-runtime", msgid)
467 # define YY_(msgid) msgid
472 #if ! defined lint || defined __GNUC__
473 # define YYUSE(e) ((void) (e))
482 #if (defined __STDC__ || defined __C99__FUNC__ \
483 || defined __cplusplus || defined _MSC_VER)
496 #if ! defined yyoverflow || YYERROR_VERBOSE
500 # ifdef YYSTACK_USE_ALLOCA
501 # if YYSTACK_USE_ALLOCA
503 # define YYSTACK_ALLOC __builtin_alloca
504 # elif defined __BUILTIN_VA_ARG_INCR
507 # define YYSTACK_ALLOC __alloca
508 # elif defined _MSC_VER
510 # define alloca _alloca
512 # define YYSTACK_ALLOC alloca
513 # if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
514 || defined __cplusplus || defined _MSC_VER)
524 # ifdef YYSTACK_ALLOC
526 # define YYSTACK_FREE(Ptr) do { ; } while (YYID (0))
527 # ifndef YYSTACK_ALLOC_MAXIMUM
532 # define YYSTACK_ALLOC_MAXIMUM 4032
535 # define YYSTACK_ALLOC YYMALLOC
536 # define YYSTACK_FREE YYFREE
537 # ifndef YYSTACK_ALLOC_MAXIMUM
538 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
540 # if (defined __cplusplus && ! defined _STDLIB_H \
541 && ! ((defined YYMALLOC || defined malloc) \
542 && (defined YYFREE || defined free)))
549 # define YYMALLOC malloc
550 # if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
551 || defined __cplusplus || defined _MSC_VER)
557 # if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
558 || defined __cplusplus || defined _MSC_VER)
566 #if (! defined yyoverflow \
567 && (! defined __cplusplus \
568 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
578 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
582 # define YYSTACK_BYTES(N) \
583 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
584 + YYSTACK_GAP_MAXIMUM)
589 # if defined __GNUC__ && 1 < __GNUC__
590 # define YYCOPY(To, From, Count) \
591 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
593 # define YYCOPY(To, From, Count) \
597 for (yyi = 0; yyi < (Count); yyi++) \
598 (To)[yyi] = (From)[yyi]; \
609 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
612 YYSIZE_T yynewbytes; \
613 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
614 Stack = &yyptr->Stack_alloc; \
615 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
616 yyptr += yynewbytes / sizeof (*yyptr); \
634 #define YYNSTATES 355
638 #define YYMAXUTOK 326
640 #define YYTRANSLATE(YYX) \
641 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
644 static const yytype_uint8 yytranslate[] =
646 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
647 2, 2, 2, 2, 2, 2, 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, 2, 2, 2, 2,
661 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
662 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
663 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
664 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
665 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
666 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
667 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
668 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
669 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
670 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
671 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
672 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
673 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
674 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
675 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
676 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
677 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
678 65, 66, 67, 68, 69, 70, 71
684 static const yytype_uint16 yyprhs[] =
686 0, 0, 3, 6, 10, 12, 15, 16, 19, 21,
687 23, 25, 32, 40, 47, 54, 61, 68, 76, 82,
688 88, 95, 103, 109, 117, 126, 132, 139, 145, 151,
689 158, 165, 173, 181, 188, 192, 197, 201, 204, 208,
690 213, 218, 222, 227, 231, 235, 239, 245, 254, 258,
691 267, 275, 283, 291, 299, 308, 311, 314, 317, 320,
692 323, 326, 330, 334, 338, 341, 345, 348, 352, 357,
693 363, 366, 368, 371, 375, 377, 379, 382, 384, 386,
694 387, 390, 394, 397, 401, 402, 404, 406, 407, 410,
695 413, 414, 417, 421, 422, 425, 429, 430, 435, 436,
696 440, 443, 446, 449, 450, 454, 457, 460, 463, 467,
697 468, 472, 476, 479, 482, 485, 487, 489, 494, 496,
698 498, 500, 502, 504, 506, 508, 509, 513, 514, 517,
699 518, 521, 524, 525, 528, 529, 532, 535, 536, 539,
700 543, 548, 549, 552, 554, 556, 559, 561, 563
704 static const yytype_int8 yyrhs[] =
706 73, 0, -1, 74, 5, -1, 3, 74, 5, -1,
707 74, -1, 3, 74, -1, -1, 75, 74, -1, 108,
708 -1, 76, -1, 6, -1, 19, 99, 99, 98, 101,
709 6, -1, 19, 99, 99, 98, 96, 101, 6, -1,
710 19, 99, 99, 96, 98, 6, -1, 19, 99, 99,
711 96, 101, 6, -1, 19, 99, 99, 98, 77, 6,
712 -1, 19, 99, 99, 98, 78, 6, -1, 19, 99,
713 99, 98, 69, 103, 6, -1, 21, 20, 20, 98,
714 6, -1, 22, 99, 99, 107, 6, -1, 22, 99,
715 99, 98, 107, 6, -1, 23, 99, 99, 69, 8,
716 103, 6, -1, 23, 99, 99, 69, 6, -1, 23,
717 99, 99, 99, 99, 98, 6, -1, 24, 100, 100,
718 69, 8, 105, 103, 6, -1, 24, 100, 100, 69,
719 6, -1, 24, 100, 100, 25, 98, 6, -1, 31,
720 96, 32, 91, 6, -1, 26, 99, 99, 96, 93,
721 -1, 28, 99, 99, 99, 96, 94, -1, 27, 99,
722 99, 99, 96, 94, -1, 27, 99, 99, 99, 99,
723 96, 94, -1, 29, 99, 99, 99, 99, 96, 95,
724 -1, 30, 99, 99, 99, 96, 94, -1, 33, 102,
725 6, -1, 34, 51, 87, 6, -1, 15, 106, 6,
726 -1, 37, 6, -1, 37, 97, 6, -1, 37, 97,
727 97, 6, -1, 38, 51, 89, 6, -1, 38, 89,
728 6, -1, 38, 51, 45, 6, -1, 39, 90, 6,
729 -1, 71, 102, 6, -1, 40, 101, 6, -1, 41,
730 84, 85, 106, 6, -1, 42, 99, 99, 99, 99,
731 43, 44, 6, -1, 46, 104, 6, -1, 62, 99,
732 99, 99, 99, 96, 88, 6, -1, 63, 99, 99,
733 25, 96, 88, 6, -1, 47, 99, 99, 99, 99,
734 96, 6, -1, 61, 99, 99, 99, 96, 101, 6,
735 -1, 60, 99, 99, 99, 99, 101, 6, -1, 60,
736 99, 99, 99, 99, 101, 82, 6, -1, 16, 6,
737 -1, 18, 6, -1, 66, 6, -1, 65, 6, -1,
738 67, 6, -1, 54, 6, -1, 55, 106, 6, -1,
739 56, 57, 6, -1, 59, 92, 6, -1, 70, 98,
740 -1, 70, 98, 98, -1, 50, 98, -1, 50, 98,
741 98, -1, 50, 98, 98, 98, -1, 50, 98, 98,
742 98, 98, -1, 98, 98, -1, 99, -1, 35, 99,
743 -1, 35, 99, 99, -1, 17, -1, 25, -1, 36,
744 25, -1, 58, -1, 68, -1, -1, 84, 87, -1,
745 84, 83, 87, -1, 86, 87, -1, 86, 83, 87,
746 -1, -1, 64, -1, 49, -1, -1, 84, 87, -1,
747 86, 87, -1, -1, 11, 90, -1, 7, 98, 90,
748 -1, -1, 48, 91, -1, 7, 98, 91, -1, -1,
749 35, 99, 98, 92, -1, -1, 52, 98, 93, -1,
750 98, 93, -1, 49, 93, -1, 79, 93, -1, -1,
751 52, 98, 94, -1, 98, 94, -1, 49, 94, -1,
752 80, 94, -1, 53, 98, 94, -1, -1, 52, 98,
753 95, -1, 53, 98, 95, -1, 98, 95, -1, 49,
754 95, -1, 81, 95, -1, 7, -1, 32, -1, 85,
755 98, 98, 98, -1, 8, -1, 9, -1, 8, -1,
756 10, -1, 7, -1, 99, -1, 25, -1, -1, 7,
757 98, 101, -1, -1, 98, 102, -1, -1, 99, 103,
758 -1, 9, 103, -1, -1, 99, 104, -1, -1, 25,
759 105, -1, 12, 102, -1, -1, 106, 107, -1, 109,
760 110, 112, -1, 13, 111, 104, 6, -1, -1, 113,
761 110, -1, 7, -1, 14, -1, 14, 111, -1, 76,
766 static const yytype_uint16 yyrline[] =
768 0, 182, 182, 184, 187, 190, 196, 197, 201, 206,
769 213, 217, 225, 234, 242, 250, 258, 266, 275, 282,
770 289, 297, 312, 317, 326, 342, 347, 355, 362, 370,
771 379, 388, 398, 408, 417, 422, 428, 433, 437, 442,
772 447, 453, 458, 464, 469, 474, 479, 486, 496, 502,
773 512, 521, 530, 539, 548, 558, 562, 566, 570, 574,
774 578, 582, 587, 595, 603, 610, 618, 626, 634, 644,
775 655, 663, 669, 675, 685, 685, 688, 694, 700, 708,
776 709, 712, 716, 719, 725, 726, 729, 734, 735, 738,
777 743, 744, 748, 754, 755, 759, 765, 766, 775, 776,
778 780, 784, 788, 793, 794, 798, 802, 806, 809, 815,
779 816, 820, 824, 828, 832, 837, 837, 840, 850, 850,
780 852, 852, 852, 854, 854, 856, 857, 863, 864, 870,
781 871, 875, 881, 882, 888, 889, 896, 903, 904, 910,
782 918, 924, 925, 936, 939, 940, 944, 950, 951
786 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
789 static const char *
const yytname[] =
791 "$end",
"error",
"$undefined",
"TitleLine",
"InvalidCharacter",
"End",
792 "Eol",
"Identifier",
"Digits",
"Floats",
"Nodes",
"Options",
"Function",
793 "SUBCKT_Action",
"ENDS_Action",
"AC_Action",
"OP_Action",
"I_Source",
794 "SAVE_Action",
"RLC_Device",
"L_Device",
"K_Device",
"IV_Source",
795 "GE_Source",
"FH_Source",
"V_Source",
"Diode_Device",
"Bipolar_Device",
796 "JFET_Device",
"MOSFET_Device",
"MESFET_Device",
"MODEL_Action",
797 "MODEL_Spec",
"TRAN_Action",
"PLOT_Action",
"VoltFunc",
"CurrFunc",
798 "DC_Action",
"PRINT_Action",
"OPTIONS_Action",
"WIDTH_Action",
799 "NOISE_Action",
"PZ_Action",
"CurVol",
"PoleZero",
"ALL_Special",
800 "X_Device",
"O_Device",
"ModelProps",
"OFF_Special",
"IC_Special",
801 "SIM_Type",
"TEMP_Special",
"MOS_Special",
"B_Source",
"DISTO_Action",
802 "INCLUDE_Action",
"File",
"BranchFunc",
"NODESET_Action",
"T_Device",
803 "U_Device",
"S_Device",
"W_Device",
"ON_Special",
"TF_Action",
804 "SENS_Action",
"FOUR_Action",
"OpFunc",
"Behave",
"TC_Special",
805 "TEMP_Action",
"$accept",
"Input",
"InputList",
"InputLine",
806 "DefinitionLine",
"TC_Value_1",
"TC_Value_2",
"IC_Condition_1",
807 "IC_Condition_2",
"IC_Condition_3",
"IC_Condition_4",
"Output_Range",
808 "VOLTAGE_Output",
"IV_Reference",
"CURRENT_Output",
"PLOT_List",
809 "SWITCH_State",
"PRINT_List",
"OPTIONS_List",
"MODEL_List",
810 "NODESET_List",
"DEVICE_List_1",
"DEVICE_List_2",
"DEVICE_List_3",
811 "MODEL_Ident",
"DC_List",
"Value",
"Node",
"FH_Node",
"PairList",
812 "ValueList",
"NodeValueList",
"NodeList",
"VSourceList",
"Expr",
813 "ExprList",
"Subcircuit",
"BeginSub",
"SubBody",
"SubCkt_Ident",
814 "EndSub",
"SubBodyLine", 0
821 static const yytype_uint16 yytoknum[] =
823 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
824 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
825 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
826 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
827 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
828 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
829 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
835 static const yytype_uint8 yyr1[] =
837 0, 72, 73, 73, 73, 73, 74, 74, 75, 75,
838 75, 76, 76, 76, 76, 76, 76, 76, 76, 76,
839 76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
840 76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
841 76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
842 76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
843 76, 76, 76, 76, 77, 78, 79, 80, 81, 82,
844 83, 84, 84, 84, 85, 85, 86, 86, 86, 87,
845 87, 87, 87, 87, 88, 88, 88, 89, 89, 89,
846 90, 90, 90, 91, 91, 91, 92, 92, 93, 93,
847 93, 93, 93, 94, 94, 94, 94, 94, 94, 95,
848 95, 95, 95, 95, 95, 96, 96, 97, 98, 98,
849 99, 99, 99, 100, 100, 101, 101, 102, 102, 103,
850 103, 103, 104, 104, 105, 105, 106, 107, 107, 108,
851 109, 110, 110, 111, 112, 112, 113, 113, 113
855 static const yytype_uint8 yyr2[] =
857 0, 2, 2, 3, 1, 2, 0, 2, 1, 1,
858 1, 6, 7, 6, 6, 6, 6, 7, 5, 5,
859 6, 7, 5, 7, 8, 5, 6, 5, 5, 6,
860 6, 7, 7, 6, 3, 4, 3, 2, 3, 4,
861 4, 3, 4, 3, 3, 3, 5, 8, 3, 8,
862 7, 7, 7, 7, 8, 2, 2, 2, 2, 2,
863 2, 3, 3, 3, 2, 3, 2, 3, 4, 5,
864 2, 1, 2, 3, 1, 1, 2, 1, 1, 0,
865 2, 3, 2, 3, 0, 1, 1, 0, 2, 2,
866 0, 2, 3, 0, 2, 3, 0, 4, 0, 3,
867 2, 2, 2, 0, 3, 2, 2, 2, 3, 0,
868 3, 3, 2, 2, 2, 1, 1, 4, 1, 1,
869 1, 1, 1, 1, 1, 0, 3, 0, 2, 0,
870 2, 2, 0, 2, 0, 2, 2, 0, 2, 3,
871 4, 0, 2, 1, 1, 2, 1, 1, 1
877 static const yytype_uint8 yydefact[] =
879 6, 6, 10, 0, 0, 0, 0, 0, 0, 0,
880 0, 0, 0, 0, 0, 0, 0, 0, 127, 0,
881 0, 87, 90, 125, 0, 0, 132, 0, 0, 0,
882 0, 96, 0, 0, 0, 0, 0, 0, 0, 127,
883 0, 4, 6, 9, 8, 141, 5, 143, 132, 127,
884 0, 55, 56, 122, 120, 121, 0, 0, 0, 0,
885 124, 123, 0, 0, 0, 0, 0, 0, 115, 116,
886 0, 118, 119, 127, 0, 79, 37, 74, 75, 0,
887 0, 0, 0, 87, 77, 78, 79, 79, 0, 71,
888 0, 90, 0, 0, 0, 0, 0, 132, 0, 0,
889 60, 0, 0, 0, 0, 0, 0, 0, 0, 58,
890 57, 59, 0, 1, 2, 7, 148, 146, 147, 0,
891 141, 3, 0, 136, 36, 0, 0, 137, 0, 0,
892 0, 0, 0, 0, 0, 93, 128, 34, 79, 79,
893 0, 0, 38, 0, 72, 76, 0, 0, 88, 89,
894 41, 90, 91, 43, 125, 45, 0, 0, 133, 48,
895 0, 61, 62, 0, 63, 0, 0, 0, 0, 44,
896 144, 139, 142, 140, 125, 125, 0, 137, 137, 0,
897 0, 0, 0, 0, 98, 0, 0, 0, 0, 0,
898 93, 0, 120, 79, 80, 0, 79, 82, 35, 0,
899 39, 73, 42, 40, 92, 126, 0, 0, 0, 96,
900 0, 0, 0, 0, 145, 0, 0, 115, 129, 0,
901 0, 0, 125, 0, 18, 0, 138, 19, 22, 129,
902 0, 0, 25, 134, 98, 0, 0, 98, 28, 98,
903 115, 103, 0, 103, 0, 103, 93, 94, 27, 81,
904 70, 83, 117, 46, 0, 0, 97, 125, 125, 0,
905 84, 13, 14, 129, 129, 0, 64, 15, 16, 0,
906 11, 20, 0, 0, 26, 134, 129, 101, 66, 98,
907 102, 100, 103, 0, 0, 0, 103, 30, 103, 103,
908 29, 109, 33, 95, 0, 0, 0, 0, 84, 86,
909 85, 0, 131, 130, 17, 65, 12, 21, 23, 135,
910 0, 99, 106, 0, 103, 103, 107, 105, 31, 109,
911 0, 0, 0, 109, 32, 109, 0, 51, 53, 0,
912 0, 52, 0, 50, 24, 67, 104, 108, 113, 0,
913 109, 109, 114, 112, 47, 0, 54, 49, 0, 110,
918 static const yytype_int16 yydefgoto[] =
920 -1, 40, 41, 42, 43, 220, 221, 237, 286, 323,
921 330, 193, 138, 79, 139, 140, 301, 88, 92, 191,
922 104, 238, 287, 324, 70, 80, 288, 89, 62, 94,
923 74, 265, 98, 276, 178, 179, 44, 45, 119, 48,
929 #define YYPACT_NINF -227
930 static const yytype_int16 yypact[] =
932 546, 216, -227, 41, 4, 17, 47, 278, 62, 278,
933 278, 198, 278, 278, 278, 278, 278, 13, 159, 64,
934 33, 92, 30, 91, 168, 278, 278, 278, 116, 4,
935 76, 103, 278, 278, 278, 278, 136, 138, 140, 159,
936 152, 156, 216, -227, -227, 608, 158, -227, 278, 159,
937 173, -227, -227, -227, -227, -227, 278, 145, 278, 278,
938 -227, -227, 198, 278, 278, 278, 278, 278, -227, -227,
939 154, -227, -227, 159, 178, 122, -227, -227, -227, 159,
940 88, 278, 162, 104, -227, -227, 122, 122, 191, -227,
941 159, 30, 194, 159, 196, 19, 278, 278, 203, 278,
942 -227, 209, 214, 278, 222, 278, 278, 278, 278, -227,
943 -227, -227, 224, -227, -227, -227, -227, -227, -227, 190,
944 608, -227, 227, -227, -227, 78, 159, 34, 22, -17,
945 13, 278, 278, 278, 278, 3, -227, -227, 289, 289,
946 230, 159, -227, 235, 278, -227, 245, 246, -227, -227,
947 -227, 30, -227, -227, 91, -227, 4, 278, -227, -227,
948 278, -227, -227, 159, -227, 278, 278, 278, 234, -227,
949 41, -227, -227, -227, 282, -5, 254, 4, 4, 258,
950 84, 278, 159, 98, 146, 175, 13, 278, 13, 159,
951 3, 262, 165, 122, -227, 159, 122, -227, -227, 159,
952 -227, -227, -227, -227, -227, -227, 263, 278, 278, 103,
953 278, 13, 278, 13, -227, 268, 274, 159, 217, 159,
954 286, 287, 91, 288, -227, 294, -227, -227, -227, 217,
955 159, 300, -227, 259, 146, 159, 159, 146, -227, 146,
956 15, 139, 13, 139, 13, 139, 3, -227, -227, -227,
957 -227, -227, -227, -227, 265, 13, -227, 91, 91, 13,
958 87, -227, -227, 217, 217, 303, 159, -227, -227, 304,
959 -227, -227, 306, 307, -227, 259, 217, -227, -227, 146,
960 -227, -227, 139, 159, 159, 159, 139, -227, 139, 139,
961 -227, 161, -227, -227, 270, 309, 9, 310, 87, -227,
962 -227, 311, -227, -227, -227, -227, -227, -227, -227, -227,
963 312, -227, -227, 159, 139, 139, -227, -227, -227, 161,
964 159, 159, 159, 161, -227, 161, 313, -227, -227, 159,
965 314, -227, 320, -227, -227, -227, -227, -227, -227, 159,
966 161, 161, -227, -227, -227, 159, -227, -227, 159, -227,
967 -227, 159, -227, 159, -227
971 static const yytype_int16 yypgoto[] =
973 -227, -227, 27, -227, -42, -227, -227, -227, -227, -227,
974 -227, 189, -10, 236, -12, -62, 31, 249, -85, -172,
975 135, -199, -226, -222, -118, 266, -18, 327, 283, -141,
976 86, -180, -43, 73, -3, 16, -41, -227, 229, 180,
984 #define YYTABLE_NINF -123
985 static const yytype_int16 yytable[] =
987 73, 50, 217, 117, 118, 122, 152, 174, 182, 87,
988 189, 86, 184, 205, 95, 328, 49, 290, 247, 292,
989 68, 73, -122, 51, 148, 149, 101, 69, 46, 53,
990 54, 73, 55, 216, 223, 277, 77, 90, 280, 76,
991 281, 91, 71, 72, 78, 69, 49, -122, 47, 272,
992 77, 190, 183, 52, 158, 73, 312, 222, 78, 329,
993 316, 141, 317, 318, 218, 219, 204, 241, 243, 115,
994 245, 87, 151, 86, 293, 154, 194, 197, 117, 118,
995 311, 269, 57, 302, 303, 68, 71, 72, 336, 337,
996 228, 180, 229, 258, 142, 260, 310, 338, 93, 53,
997 54, 342, 55, 343, 232, 77, 233, 175, 176, 177,
998 69, 53, 54, 78, 55, 75, 296, 297, 349, 350,
999 195, 195, 100, 199, 289, 112, 291, 81, 82, 53,
1000 54, 249, 55, 102, 251, 123, 299, 295, 103, 81,
1001 82, 298, 109, 83, 110, 209, 111, 71, 72, 146,
1002 84, 300, 113, 206, 71, 72, 215, 81, 82, 136,
1003 85, 114, 84, 121, 231, 126, 239, 71, 72, 71,
1004 72, 246, 85, -118, -118, 53, 54, 250, 55, 124,
1005 84, 252, 240, 54, 137, 55, 135, 145, 282, 283,
1006 85, 284, 285, 225, 226, 234, 235, 150, 236, 154,
1007 153, 266, 155, 81, 170, 53, 54, 69, 55, 159,
1008 319, 320, 273, 321, 322, 161, 239, 278, 279, 239,
1009 162, 239, 2, 60, 53, 54, 263, 55, 164, 3,
1010 169, 4, 5, 173, 6, 7, 198, 8, 9, 10,
1011 11, 200, 12, 13, 14, 15, 16, 17, 305, 18,
1012 19, 202, 203, 20, 21, 22, 23, 24, 25, 213,
1013 224, 239, 26, 27, 227, 313, 314, 315, 248, 253,
1014 28, 29, 30, 325, 261, 31, 32, 33, 34, 35,
1015 262, 36, 37, 38, 275, 53, 54, 39, 55, 93,
1016 71, 72, 267, 268, 270, 335, 53, 192, 72, 55,
1017 271, 325, 339, 340, 341, 325, 274, 325, 294, 304,
1018 306, 345, 307, 308, 326, 327, 331, 333, 334, 344,
1019 346, 348, 325, 325, 81, 82, 347, 351, 196, 332,
1020 352, 156, 147, 353, 56, 354, 58, 59, 61, 63,
1021 64, 65, 66, 67, 256, 129, 143, 84, 309, 172,
1022 214, 0, 96, 97, 99, 0, 0, 85, 0, 105,
1023 106, 107, 108, 0, 0, 0, 0, 0, 0, 0,
1024 0, 0, 0, 0, 0, 97, 0, 0, 0, 0,
1025 0, 0, 0, 125, 0, 127, 128, 0, 0, 61,
1026 130, 131, 132, 133, 134, 0, 0, 0, 0, 0,
1027 0, 0, 0, 0, 0, 0, 0, 0, 144, 0,
1028 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1029 0, 0, 0, 157, 97, 0, 160, 0, 0, 0,
1030 163, 0, 165, 166, 167, 168, 0, 0, 0, 0,
1031 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1032 0, 0, 0, 0, 0, 181, 0, 0, 185, 186,
1033 187, 188, 0, 0, 0, 0, 0, 0, 0, 0,
1034 0, 201, 0, 0, 0, 0, 0, 0, 0, 0,
1035 0, 0, 0, 0, 207, 0, 0, 208, 0, 0,
1036 0, 0, 210, 211, 212, 0, 0, 0, 0, 0,
1037 0, 0, 0, 0, 0, 0, 0, 0, 230, 0,
1038 0, 0, 242, 0, 244, 0, 0, 0, 0, 0,
1039 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1040 0, 0, 0, 0, 254, 255, 0, 257, 0, 259,
1041 0, 0, 0, 0, 0, 264, 0, 0, 0, 1,
1042 0, 0, 2, 0, 0, 0, 264, 0, 0, 3,
1043 0, 4, 5, 0, 6, 7, 0, 8, 9, 10,
1044 11, 0, 12, 13, 14, 15, 16, 17, 0, 18,
1045 19, 0, 0, 20, 21, 22, 23, 24, 25, 0,
1046 264, 264, 26, 27, 0, 0, 0, 0, 0, 0,
1047 28, 29, 30, 264, 0, 31, 32, 33, 34, 35,
1048 0, 36, 37, 38, 116, 0, 0, 39, 0, 0,
1049 0, 3, 0, 4, 5, 0, 6, 7, 0, 8,
1050 9, 10, 11, 0, 12, 13, 14, 15, 16, 17,
1051 0, 18, 19, 0, 0, 20, 21, 22, 23, 24,
1052 25, 0, 0, 0, 26, 27, 0, 0, 0, 0,
1053 0, 0, 28, 29, 30, 0, 0, 31, 32, 33,
1054 34, 35, 0, 36, 37, 38, 0, 0, 0, 39
1057 static const yytype_int16 yycheck[] =
1059 18, 4, 7, 45, 45, 48, 91, 125, 25, 21,
1060 7, 21, 130, 154, 24, 6, 12, 243, 190, 245,
1061 7, 39, 7, 6, 86, 87, 29, 32, 1, 7,
1062 8, 49, 10, 174, 175, 234, 17, 7, 237, 6,
1063 239, 11, 8, 9, 25, 32, 12, 32, 7, 229,
1064 17, 48, 69, 6, 97, 73, 282, 175, 25, 50,
1065 286, 79, 288, 289, 69, 70, 151, 185, 186, 42,
1066 188, 83, 90, 83, 246, 93, 138, 139, 120, 120,
1067 279, 222, 20, 263, 264, 7, 8, 9, 314, 315,
1068 6, 69, 8, 211, 6, 213, 276, 319, 7, 7,
1069 8, 323, 10, 325, 6, 17, 8, 125, 126, 127,
1070 32, 7, 8, 25, 10, 51, 257, 258, 340, 341,
1071 138, 139, 6, 141, 242, 39, 244, 35, 36, 7,
1072 8, 193, 10, 57, 196, 49, 49, 255, 35, 35,
1073 36, 259, 6, 51, 6, 163, 6, 8, 9, 45,
1074 58, 64, 0, 156, 8, 9, 174, 35, 36, 73,
1075 68, 5, 58, 5, 182, 20, 184, 8, 9, 8,
1076 9, 189, 68, 8, 9, 7, 8, 195, 10, 6,
1077 58, 199, 7, 8, 6, 10, 32, 25, 49, 50,
1078 68, 52, 53, 177, 178, 49, 50, 6, 52, 217,
1079 6, 219, 6, 35, 14, 7, 8, 32, 10, 6,
1080 49, 50, 230, 52, 53, 6, 234, 235, 236, 237,
1081 6, 239, 6, 25, 7, 8, 9, 10, 6, 13,
1082 6, 15, 16, 6, 18, 19, 6, 21, 22, 23,
1083 24, 6, 26, 27, 28, 29, 30, 31, 266, 33,
1084 34, 6, 6, 37, 38, 39, 40, 41, 42, 25,
1085 6, 279, 46, 47, 6, 283, 284, 285, 6, 6,
1086 54, 55, 56, 291, 6, 59, 60, 61, 62, 63,
1087 6, 65, 66, 67, 25, 7, 8, 71, 10, 7,
1088 8, 9, 6, 6, 6, 313, 7, 8, 9, 10,
1089 6, 319, 320, 321, 322, 323, 6, 325, 43, 6,
1090 6, 329, 6, 6, 44, 6, 6, 6, 6, 6,
1091 6, 339, 340, 341, 35, 36, 6, 345, 139, 298,
1092 348, 95, 83, 351, 7, 353, 9, 10, 11, 12,
1093 13, 14, 15, 16, 209, 62, 80, 58, 275, 120,
1094 170, -1, 25, 26, 27, -1, -1, 68, -1, 32,
1095 33, 34, 35, -1, -1, -1, -1, -1, -1, -1,
1096 -1, -1, -1, -1, -1, 48, -1, -1, -1, -1,
1097 -1, -1, -1, 56, -1, 58, 59, -1, -1, 62,
1098 63, 64, 65, 66, 67, -1, -1, -1, -1, -1,
1099 -1, -1, -1, -1, -1, -1, -1, -1, 81, -1,
1100 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1101 -1, -1, -1, 96, 97, -1, 99, -1, -1, -1,
1102 103, -1, 105, 106, 107, 108, -1, -1, -1, -1,
1103 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1104 -1, -1, -1, -1, -1, 128, -1, -1, 131, 132,
1105 133, 134, -1, -1, -1, -1, -1, -1, -1, -1,
1106 -1, 144, -1, -1, -1, -1, -1, -1, -1, -1,
1107 -1, -1, -1, -1, 157, -1, -1, 160, -1, -1,
1108 -1, -1, 165, 166, 167, -1, -1, -1, -1, -1,
1109 -1, -1, -1, -1, -1, -1, -1, -1, 181, -1,
1110 -1, -1, 185, -1, 187, -1, -1, -1, -1, -1,
1111 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1112 -1, -1, -1, -1, 207, 208, -1, 210, -1, 212,
1113 -1, -1, -1, -1, -1, 218, -1, -1, -1, 3,
1114 -1, -1, 6, -1, -1, -1, 229, -1, -1, 13,
1115 -1, 15, 16, -1, 18, 19, -1, 21, 22, 23,
1116 24, -1, 26, 27, 28, 29, 30, 31, -1, 33,
1117 34, -1, -1, 37, 38, 39, 40, 41, 42, -1,
1118 263, 264, 46, 47, -1, -1, -1, -1, -1, -1,
1119 54, 55, 56, 276, -1, 59, 60, 61, 62, 63,
1120 -1, 65, 66, 67, 6, -1, -1, 71, -1, -1,
1121 -1, 13, -1, 15, 16, -1, 18, 19, -1, 21,
1122 22, 23, 24, -1, 26, 27, 28, 29, 30, 31,
1123 -1, 33, 34, -1, -1, 37, 38, 39, 40, 41,
1124 42, -1, -1, -1, 46, 47, -1, -1, -1, -1,
1125 -1, -1, 54, 55, 56, -1, -1, 59, 60, 61,
1126 62, 63, -1, 65, 66, 67, -1, -1, -1, 71
1131 static const yytype_uint8 yystos[] =
1133 0, 3, 6, 13, 15, 16, 18, 19, 21, 22,
1134 23, 24, 26, 27, 28, 29, 30, 31, 33, 34,
1135 37, 38, 39, 40, 41, 42, 46, 47, 54, 55,
1136 56, 59, 60, 61, 62, 63, 65, 66, 67, 71,
1137 73, 74, 75, 76, 108, 109, 74, 7, 111, 12,
1138 106, 6, 6, 7, 8, 10, 99, 20, 99, 99,
1139 25, 99, 100, 99, 99, 99, 99, 99, 7, 32,
1140 96, 8, 9, 98, 102, 51, 6, 17, 25, 85,
1141 97, 35, 36, 51, 58, 68, 84, 86, 89, 99,
1142 7, 11, 90, 7, 101, 84, 99, 99, 104, 99,
1143 6, 106, 57, 35, 92, 99, 99, 99, 99, 6,
1144 6, 6, 102, 0, 5, 74, 6, 76, 108, 110,
1145 113, 5, 104, 102, 6, 99, 20, 99, 99, 100,
1146 99, 99, 99, 99, 99, 32, 102, 6, 84, 86,
1147 87, 98, 6, 97, 99, 25, 45, 89, 87, 87,
1148 6, 98, 90, 6, 98, 6, 85, 99, 104, 6,
1149 99, 6, 6, 99, 6, 99, 99, 99, 99, 6,
1150 14, 112, 110, 6, 96, 98, 98, 98, 106, 107,
1151 69, 99, 25, 69, 96, 99, 99, 99, 99, 7,
1152 48, 91, 8, 83, 87, 98, 83, 87, 6, 98,
1153 6, 99, 6, 6, 90, 101, 106, 99, 99, 98,
1154 99, 99, 99, 25, 111, 98, 101, 7, 69, 70,
1155 77, 78, 96, 101, 6, 107, 107, 6, 6, 8,
1156 99, 98, 6, 8, 49, 50, 52, 79, 93, 98,
1157 7, 96, 99, 96, 99, 96, 98, 91, 6, 87,
1158 98, 87, 98, 6, 99, 99, 92, 99, 96, 99,
1159 96, 6, 6, 9, 99, 103, 98, 6, 6, 101,
1160 6, 6, 103, 98, 6, 25, 105, 93, 98, 98,
1161 93, 93, 49, 50, 52, 53, 80, 94, 98, 96,
1162 94, 96, 94, 91, 43, 96, 101, 101, 96, 49,
1163 64, 88, 103, 103, 6, 98, 6, 6, 6, 105,
1164 103, 93, 94, 98, 98, 98, 94, 94, 94, 49,
1165 50, 52, 53, 81, 95, 98, 44, 6, 6, 50,
1166 82, 6, 88, 6, 6, 98, 94, 94, 95, 98,
1167 98, 98, 95, 95, 6, 98, 6, 6, 98, 95,
1171 #define yyerrok (yyerrstatus = 0)
1172 #define yyclearin (yychar = YYEMPTY)
1173 #define YYEMPTY (-2)
1176 #define YYACCEPT goto yyacceptlab
1177 #define YYABORT goto yyabortlab
1178 #define YYERROR goto yyerrorlab
1185 #define YYFAIL goto yyerrlab
1187 #define YYRECOVERING() (!!yyerrstatus)
1189 #define YYBACKUP(Token, Value) \
1191 if (yychar == YYEMPTY && yylen == 1) \
1195 yytoken = YYTRANSLATE (yychar); \
1201 yyerror (YY_("syntax error: cannot back up")); \
1208 #define YYERRCODE 256
1215 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
1216 #ifndef YYLLOC_DEFAULT
1217 # define YYLLOC_DEFAULT(Current, Rhs, N) \
1221 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
1222 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
1223 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
1224 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
1228 (Current).first_line = (Current).last_line = \
1229 YYRHSLOC (Rhs, 0).last_line; \
1230 (Current).first_column = (Current).last_column = \
1231 YYRHSLOC (Rhs, 0).last_column; \
1241 #ifndef YY_LOCATION_PRINT
1242 # if YYLTYPE_IS_TRIVIAL
1243 # define YY_LOCATION_PRINT(File, Loc) \
1244 fprintf (File, "%d.%d-%d.%d", \
1245 (Loc).first_line, (Loc).first_column, \
1246 (Loc).last_line, (Loc).last_column)
1248 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
1256 # define YYLEX yylex (YYLEX_PARAM)
1258 # define YYLEX yylex ()
1266 # define YYFPRINTF fprintf
1269 # define YYDPRINTF(Args) \
1275 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
1279 YYFPRINTF (stderr, "%s ", Title); \
1280 yy_symbol_print (stderr, \
1282 YYFPRINTF (stderr, "\n"); \
1292 #if (defined __STDC__ || defined __C99__FUNC__ \
1293 || defined __cplusplus || defined _MSC_VER)
1298 yy_symbol_value_print (yyoutput, yytype, yyvaluep)
1308 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
1324 #if (defined __STDC__ || defined __C99__FUNC__ \
1325 || defined __cplusplus || defined _MSC_VER)
1327 yy_symbol_print (FILE *yyoutput,
int yytype,
YYSTYPE const *
const yyvaluep)
1330 yy_symbol_print (yyoutput, yytype, yyvaluep)
1333 YYSTYPE const * const yyvaluep;
1337 YYFPRINTF (yyoutput,
"token %s (", yytname[yytype]);
1339 YYFPRINTF (yyoutput,
"nterm %s (", yytname[yytype]);
1341 yy_symbol_value_print (yyoutput, yytype, yyvaluep);
1350 #if (defined __STDC__ || defined __C99__FUNC__ \
1351 || defined __cplusplus || defined _MSC_VER)
1353 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *
yytop)
1356 yy_stack_print (yybottom, yytop)
1357 yytype_int16 *yybottom;
1358 yytype_int16 *yytop;
1364 int yybot = *yybottom;
1370 # define YY_STACK_PRINT(Bottom, Top) \
1373 yy_stack_print ((Bottom), (Top)); \
1381 #if (defined __STDC__ || defined __C99__FUNC__ \
1382 || defined __cplusplus || defined _MSC_VER)
1387 yy_reduce_print (yyvsp, yyrule)
1392 int yynrhs = yyr2[
yyrule];
1395 YYFPRINTF (stderr,
"Reducing stack by rule %d (line %lu):\n",
1398 for (yyi = 0; yyi < yynrhs; yyi++)
1401 yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
1402 &(yyvsp[(yyi + 1) - (yynrhs)])
1408 # define YY_REDUCE_PRINT(Rule) \
1411 yy_reduce_print (yyvsp, Rule); \
1418 # define YYDPRINTF(Args)
1419 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
1420 # define YY_STACK_PRINT(Bottom, Top)
1421 # define YY_REDUCE_PRINT(Rule)
1427 # define YYINITDEPTH 200
1438 # define YYMAXDEPTH 10000
1446 # if defined __GLIBC__ && defined _STRING_H
1447 # define yystrlen strlen
1450 #if (defined __STDC__ || defined __C99__FUNC__ \
1451 || defined __cplusplus || defined _MSC_VER)
1453 yystrlen (
const char *yystr)
1461 for (yylen = 0; yystr[
yylen]; yylen++)
1469 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
1470 # define yystpcpy stpcpy
1474 #if (defined __STDC__ || defined __C99__FUNC__ \
1475 || defined __cplusplus || defined _MSC_VER)
1477 yystpcpy (
char *yydest,
const char *
yysrc)
1480 yystpcpy (yydest, yysrc)
1488 while ((*yyd++ = *yys++) !=
'\0')
1505 yytnamerr (
char *yyres,
const char *yystr)
1510 char const *yyp = yystr;
1517 goto do_not_strip_quotes;
1521 goto do_not_strip_quotes;
1534 do_not_strip_quotes: ;
1538 return yystrlen (yystr);
1540 return yystpcpy (yyres, yystr) - yyres;
1552 yysyntax_error (
char *yyresult,
int yystate,
int yychar)
1554 int yyn = yypact[yystate];
1561 YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
1564 int yysize_overflow = 0;
1565 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
1566 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
1572 YY_(
"syntax error, unexpected %s");
1573 YY_(
"syntax error, unexpected %s, expecting %s");
1574 YY_(
"syntax error, unexpected %s, expecting %s or %s");
1575 YY_(
"syntax error, unexpected %s, expecting %s or %s or %s");
1576 YY_(
"syntax error, unexpected %s, expecting %s or %s or %s or %s");
1580 static char const yyunexpected[] =
"syntax error, unexpected %s";
1581 static char const yyexpecting[] =
", expecting %s";
1582 static char const yyor[] =
" or %s";
1583 char yyformat[
sizeof yyunexpected
1584 +
sizeof yyexpecting - 1
1585 + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
1586 * (
sizeof yyor - 1))];
1587 char const *yyprefix = yyexpecting;
1591 int yyxbegin = yyn < 0 ? -yyn : 0;
1594 int yychecklim =
YYLAST - yyn + 1;
1598 yyarg[0] = yytname[
yytype];
1599 yyfmt = yystpcpy (yyformat, yyunexpected);
1601 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
1602 if (yycheck[yyx + yyn] == yyx && yyx !=
YYTERROR)
1604 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
1608 yyformat[
sizeof yyunexpected - 1] =
'\0';
1611 yyarg[yycount++] = yytname[yyx];
1612 yysize1 = yysize + yytnamerr (0, yytname[yyx]);
1613 yysize_overflow |= (yysize1 < yysize);
1615 yyfmt = yystpcpy (yyfmt, yyprefix);
1619 yyf =
YY_(yyformat);
1620 yysize1 = yysize + yystrlen (yyf);
1621 yysize_overflow |= (yysize1 < yysize);
1624 if (yysize_overflow)
1632 char *yyp = yyresult;
1634 while ((*yyp = *yyf) !=
'\0')
1636 if (*yyp ==
'%' && yyf[1] ==
's' && yyi < yycount)
1638 yyp += yytnamerr (yyp, yyarg[yyi++]);
1659 #if (defined __STDC__ || defined __C99__FUNC__ \
1660 || defined __cplusplus || defined _MSC_VER)
1662 yydestruct (
const char *yymsg,
int yytype,
YYSTYPE *yyvaluep)
1665 yydestruct (yymsg, yytype, yyvaluep)
1686 #ifdef YYPARSE_PARAM
1687 #if defined __STDC__ || defined __cplusplus
1688 int yyparse (
void *YYPARSE_PARAM);
1693 #if defined __STDC__ || defined __cplusplus
1716 #ifdef YYPARSE_PARAM
1717 #if (defined __STDC__ || defined __C99__FUNC__ \
1718 || defined __cplusplus || defined _MSC_VER)
1724 void *YYPARSE_PARAM;
1727 #if (defined __STDC__ || defined __C99__FUNC__ \
1728 || defined __cplusplus || defined _MSC_VER)
1754 yytype_int16 *yyssp;
1774 char *yymsg = yymsgbuf;
1775 YYSIZE_T yymsg_alloc =
sizeof yymsgbuf;
1778 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
1789 YYDPRINTF ((stderr,
"Starting parse\n"));
1816 if (yyss + yystacksize - 1 <= yyssp)
1819 YYSIZE_T yysize = yyssp - yyss + 1;
1827 yytype_int16 *yyss1 = yyss;
1833 yyoverflow (
YY_(
"memory exhausted"),
1834 &yyss1, yysize *
sizeof (*yyssp),
1835 &yyvs1, yysize *
sizeof (*yyvsp),
1842 # ifndef YYSTACK_RELOCATE
1843 goto yyexhaustedlab;
1847 goto yyexhaustedlab;
1853 yytype_int16 *yyss1 = yyss;
1857 goto yyexhaustedlab;
1860 # undef YYSTACK_RELOCATE
1867 yyssp = yyss + yysize - 1;
1868 yyvsp = yyvs + yysize - 1;
1870 YYDPRINTF ((stderr,
"Stack size increased to %lu\n",
1871 (
unsigned long int) yystacksize));
1873 if (yyss + yystacksize - 1 <= yyssp)
1877 YYDPRINTF ((stderr,
"Entering state %d\n", yystate));
1893 yyn = yypact[yystate];
1902 YYDPRINTF ((stderr,
"Reading a token: "));
1906 if (yychar <=
YYEOF)
1908 yychar = yytoken =
YYEOF;
1909 YYDPRINTF ((stderr,
"Now at end of input.\n"));
1920 if (yyn < 0 ||
YYLAST < yyn || yycheck[yyn] != yytoken)
1952 yyn = yydefact[yystate];
1973 yyval = yyvsp[1-
yylen];
1982 #line 182 "parse_spice.y"
1990 #line 184 "parse_spice.y"
1999 #line 187 "parse_spice.y"
2001 fprintf (stderr,
"spice notice, no .END directive found, continuing\n");
2008 #line 190 "parse_spice.y"
2011 fprintf (stderr,
"spice notice, no .END directive found, continuing\n");
2018 #line 201 "parse_spice.y"
2029 #line 206 "parse_spice.y"
2032 if ((yyvsp[(1) - (1)].definition)) {
2042 #line 213 "parse_spice.y"
2049 #line 217 "parse_spice.y"
2052 (yyval.
definition) = spice_create_device ((yyvsp[(1) - (6)].ident));
2063 #line 225 "parse_spice.y"
2066 (yyval.
definition) = spice_create_device ((yyvsp[(1) - (7)].ident));
2078 #line 234 "parse_spice.y"
2081 (yyval.
definition) = spice_create_device ((yyvsp[(1) - (6)].ident));
2092 #line 242 "parse_spice.y"
2095 (yyval.
definition) = spice_create_device ((yyvsp[(1) - (6)].ident));
2106 #line 250 "parse_spice.y"
2109 (yyval.
definition) = spice_create_device ((yyvsp[(1) - (6)].ident));
2120 #line 258 "parse_spice.y"
2123 (yyval.
definition) = spice_create_device ((yyvsp[(1) - (6)].ident));
2134 #line 266 "parse_spice.y"
2137 (yyval.
definition) = spice_create_device ((yyvsp[(1) - (7)].ident));
2149 #line 275 "parse_spice.y"
2152 (yyval.
definition) = spice_create_device ((yyvsp[(1) - (5)].ident));
2162 #line 282 "parse_spice.y"
2165 (yyval.
definition) = spice_create_device ((yyvsp[(1) - (5)].ident));
2175 #line 289 "parse_spice.y"
2178 (yyval.
definition) = spice_create_device ((yyvsp[(1) - (6)].ident));
2189 #line 297 "parse_spice.y"
2192 if (!strcasecmp ((yyvsp[(4) - (7)].ident),
"POLY")) {
2193 (yyval.
definition) = spice_create_device ((yyvsp[(1) - (7)].ident));
2201 fprintf (stderr,
"spice notice, behavioural %s source ignored\n", (yyvsp[(1) - (7)].ident));
2210 #line 312 "parse_spice.y"
2213 fprintf (stderr,
"spice notice, behavioural %s source ignored\n", (yyvsp[(1) - (5)].ident));
2221 #line 317 "parse_spice.y"
2224 (yyval.
definition) = spice_create_device ((yyvsp[(1) - (7)].ident));
2236 #line 326 "parse_spice.y"
2239 if (!strcasecmp ((yyvsp[(4) - (8)].ident),
"POLY")) {
2240 (yyval.
definition) = spice_create_device ((yyvsp[(1) - (8)].ident));
2249 fprintf (stderr,
"spice notice, behavioural %s source ignored\n", (yyvsp[(1) - (8)].ident));
2258 #line 342 "parse_spice.y"
2261 fprintf (stderr,
"spice notice, behavioural %s source ignored\n", (yyvsp[(1) - (5)].ident));
2269 #line 347 "parse_spice.y"
2272 (yyval.
definition) = spice_create_device ((yyvsp[(1) - (6)].ident));
2283 #line 355 "parse_spice.y"
2286 (yyval.
definition) = spice_create_action ((yyvsp[(1) - (5)].ident), (yyvsp[(2) - (5)].
ident));
2296 #line 362 "parse_spice.y"
2299 (yyval.
definition) = spice_create_device ((yyvsp[(1) - (5)].ident));
2310 #line 370 "parse_spice.y"
2313 (yyval.
definition) = spice_create_device ((yyvsp[(1) - (6)].ident));
2325 #line 379 "parse_spice.y"
2328 (yyval.
definition) = spice_create_device ((yyvsp[(1) - (6)].ident));
2340 #line 388 "parse_spice.y"
2343 (yyval.
definition) = spice_create_device ((yyvsp[(1) - (7)].ident));
2356 #line 398 "parse_spice.y"
2359 (yyval.
definition) = spice_create_device ((yyvsp[(1) - (7)].ident));
2372 #line 408 "parse_spice.y"
2375 (yyval.
definition) = spice_create_device ((yyvsp[(1) - (6)].ident));
2387 #line 417 "parse_spice.y"
2390 (yyval.
definition) = spice_create_action ((yyvsp[(1) - (3)].ident), strdup ((yyvsp[(1) - (3)].ident)));
2391 (yyval.
definition)->values = (yyvsp[(2) - (3)].value);
2398 #line 422 "parse_spice.y"
2401 (yyval.
definition) = spice_create_action ((yyvsp[(1) - (4)].ident), strdup ((yyvsp[(1) - (4)].ident)));
2410 #line 428 "parse_spice.y"
2413 (yyval.
definition) = spice_create_action ((yyvsp[(1) - (3)].ident), strdup ((yyvsp[(1) - (3)].ident)));
2414 (yyval.
definition)->values = (yyvsp[(2) - (3)].value);
2421 #line 433 "parse_spice.y"
2424 (yyval.
definition) = spice_create_action ((yyvsp[(1) - (2)].ident), strdup ((yyvsp[(1) - (2)].ident)));
2431 #line 437 "parse_spice.y"
2434 (yyval.
definition) = spice_create_action ((yyvsp[(1) - (3)].ident), strdup ((yyvsp[(1) - (3)].ident)));
2435 (yyval.
definition)->values = (yyvsp[(2) - (3)].value);
2442 #line 442 "parse_spice.y"
2445 (yyval.
definition) = spice_create_action ((yyvsp[(1) - (4)].ident), strdup ((yyvsp[(1) - (4)].ident)));
2453 #line 447 "parse_spice.y"
2456 (yyval.
definition) = spice_create_action ((yyvsp[(1) - (4)].ident), strdup ((yyvsp[(1) - (4)].ident)));
2465 #line 453 "parse_spice.y"
2468 (yyval.
definition) = spice_create_action ((yyvsp[(1) - (3)].ident), strdup ((yyvsp[(1) - (3)].ident)));
2469 (yyval.
definition)->values = (yyvsp[(2) - (3)].value);
2476 #line 458 "parse_spice.y"
2479 (yyval.
definition) = spice_create_action ((yyvsp[(1) - (4)].ident), strdup ((yyvsp[(1) - (4)].ident)));
2488 #line 464 "parse_spice.y"
2491 (yyval.
definition) = spice_create_action ((yyvsp[(1) - (3)].ident), strdup ((yyvsp[(1) - (3)].ident)));
2492 (yyval.
definition)->values = (yyvsp[(2) - (3)].value);
2499 #line 469 "parse_spice.y"
2502 (yyval.
definition) = spice_create_action ((yyvsp[(1) - (3)].ident), strdup ((yyvsp[(1) - (3)].ident)));
2503 (yyval.
definition)->values = (yyvsp[(2) - (3)].value);
2510 #line 474 "parse_spice.y"
2513 (yyval.
definition) = spice_create_action ((yyvsp[(1) - (3)].ident), strdup ((yyvsp[(1) - (3)].ident)));
2514 (yyval.
definition)->values = (yyvsp[(2) - (3)].value);
2521 #line 479 "parse_spice.y"
2524 (yyval.
definition) = spice_create_action ((yyvsp[(1) - (5)].ident), strdup ((yyvsp[(1) - (5)].ident)));
2534 #line 486 "parse_spice.y"
2537 (yyval.
definition) = spice_create_action ((yyvsp[(1) - (8)].ident), strdup ((yyvsp[(1) - (8)].ident)));
2550 #line 496 "parse_spice.y"
2553 (yyval.
definition) = spice_create_device ((yyvsp[(1) - (3)].ident));
2555 (yyval.
definition)->values = (yyvsp[(2) - (3)].value);
2562 #line 502 "parse_spice.y"
2565 (yyval.
definition) = spice_create_device ((yyvsp[(1) - (8)].ident));
2578 #line 512 "parse_spice.y"
2581 (yyval.
definition) = spice_create_device ((yyvsp[(1) - (7)].ident));
2593 #line 521 "parse_spice.y"
2596 (yyval.
definition) = spice_create_device ((yyvsp[(1) - (7)].ident));
2608 #line 530 "parse_spice.y"
2611 (yyval.
definition) = spice_create_device ((yyvsp[(1) - (7)].ident));
2623 #line 539 "parse_spice.y"
2626 (yyval.
definition) = spice_create_device ((yyvsp[(1) - (7)].ident));
2638 #line 548 "parse_spice.y"
2641 (yyval.
definition) = spice_create_device ((yyvsp[(1) - (8)].ident));
2654 #line 558 "parse_spice.y"
2657 (yyval.
definition) = spice_create_action ((yyvsp[(1) - (2)].ident), strdup ((yyvsp[(1) - (2)].ident)));
2664 #line 562 "parse_spice.y"
2667 (yyval.
definition) = spice_create_action ((yyvsp[(1) - (2)].ident), strdup ((yyvsp[(1) - (2)].ident)));
2674 #line 566 "parse_spice.y"
2677 (yyval.
definition) = spice_create_action ((yyvsp[(1) - (2)].ident), strdup ((yyvsp[(1) - (2)].ident)));
2684 #line 570 "parse_spice.y"
2687 (yyval.
definition) = spice_create_action ((yyvsp[(1) - (2)].ident), strdup ((yyvsp[(1) - (2)].ident)));
2694 #line 574 "parse_spice.y"
2697 (yyval.
definition) = spice_create_action ((yyvsp[(1) - (2)].ident), strdup ((yyvsp[(1) - (2)].ident)));
2704 #line 578 "parse_spice.y"
2707 (yyval.
definition) = spice_create_device ((yyvsp[(1) - (2)].ident));
2714 #line 582 "parse_spice.y"
2717 (yyval.
definition) = spice_create_action ((yyvsp[(1) - (3)].ident), strdup ((yyvsp[(1) - (3)].ident)));
2718 (yyval.
definition)->values = (yyvsp[(2) - (3)].value);
2725 #line 587 "parse_spice.y"
2728 (yyval.
definition) = spice_create_action ((yyvsp[(1) - (3)].ident), strdup ((yyvsp[(1) - (3)].ident)));
2739 #line 595 "parse_spice.y"
2742 (yyval.
definition) = spice_create_action ((yyvsp[(1) - (3)].
ident), strdup ((yyvsp[(1) - (3)].
ident)));
2750 #line 603 "parse_spice.y"
2752 (yyval.
value) = NULL;
2753 (yyval.
value) = spice_create_par_value ((yyvsp[(1) - (2)].
ident), (yyvsp[(2) - (2)].
ident));
2760 #line 610 "parse_spice.y"
2762 (yyval.
value) = NULL;
2763 (yyval.
value) = spice_create_par_value ((yyvsp[(1) - (3)].
ident), (yyvsp[(2) - (3)].
ident));
2771 #line 618 "parse_spice.y"
2773 (yyval.
value) = NULL;
2782 #line 626 "parse_spice.y"
2784 (yyval.
value) = NULL;
2794 #line 634 "parse_spice.y"
2796 (yyval.
value) = NULL;
2807 #line 644 "parse_spice.y"
2809 (yyval.
value) = NULL;
2821 #line 655 "parse_spice.y"
2823 (yyval.
value) = NULL;
2832 #line 663 "parse_spice.y"
2835 (yyval.
value) = NULL;
2844 #line 669 "parse_spice.y"
2847 (yyval.
value) = NULL;
2856 #line 675 "parse_spice.y"
2859 (yyval.
value) = NULL;
2869 #line 688 "parse_spice.y"
2872 (yyval.
value) = NULL;
2881 #line 694 "parse_spice.y"
2884 (yyval.
value) = NULL;
2893 #line 700 "parse_spice.y"
2896 (yyval.
value) = NULL;
2905 #line 708 "parse_spice.y"
2906 { (yyval.
value) = NULL; }
2912 #line 709 "parse_spice.y"
2921 #line 712 "parse_spice.y"
2931 #line 716 "parse_spice.y"
2940 #line 719 "parse_spice.y"
2950 #line 725 "parse_spice.y"
2951 { (yyval.
value) = NULL; }
2957 #line 726 "parse_spice.y"
2966 #line 729 "parse_spice.y"
2975 #line 734 "parse_spice.y"
2976 { (yyval.
value) = NULL; }
2982 #line 735 "parse_spice.y"
2991 #line 738 "parse_spice.y"
3000 #line 743 "parse_spice.y"
3001 { (yyval.
value) = NULL; }
3007 #line 744 "parse_spice.y"
3017 #line 748 "parse_spice.y"
3019 (yyval.
value) = spice_create_par_value ((yyvsp[(1) - (3)].
ident), (yyvsp[(2) - (3)].
ident));
3027 #line 754 "parse_spice.y"
3028 { (yyval.
value) = NULL; }
3034 #line 755 "parse_spice.y"
3044 #line 759 "parse_spice.y"
3046 (yyval.
value) = spice_create_par_value ((yyvsp[(1) - (3)].
ident), (yyvsp[(2) - (3)].
ident));
3054 #line 765 "parse_spice.y"
3055 { (yyval.
value) = NULL; }
3061 #line 766 "parse_spice.y"
3063 (yyval.
value) = NULL;
3074 #line 775 "parse_spice.y"
3075 { (yyval.
value) = NULL; }
3081 #line 776 "parse_spice.y"
3083 (yyval.
value) = spice_create_par_value ((yyvsp[(1) - (3)].
ident), (yyvsp[(2) - (3)].
ident));
3091 #line 780 "parse_spice.y"
3093 (yyval.
value) = spice_create_par_value (strdup (
"Area"), (yyvsp[(1) - (2)].
ident));
3101 #line 784 "parse_spice.y"
3111 #line 788 "parse_spice.y"
3120 #line 793 "parse_spice.y"
3121 { (yyval.
value) = NULL; }
3127 #line 794 "parse_spice.y"
3129 (yyval.
value) = spice_create_par_value ((yyvsp[(1) - (3)].
ident), (yyvsp[(2) - (3)].
ident));
3137 #line 798 "parse_spice.y"
3139 (yyval.
value) = spice_create_par_value (strdup (
"Area"), (yyvsp[(1) - (2)].
ident));
3147 #line 802 "parse_spice.y"
3157 #line 806 "parse_spice.y"
3166 #line 809 "parse_spice.y"
3168 (yyval.
value) = spice_create_par_value ((yyvsp[(1) - (3)].
ident), (yyvsp[(2) - (3)].
ident));
3176 #line 815 "parse_spice.y"
3177 { (yyval.
value) = NULL; }
3183 #line 816 "parse_spice.y"
3185 (yyval.
value) = spice_create_par_value ((yyvsp[(1) - (3)].
ident), (yyvsp[(2) - (3)].
ident));
3193 #line 820 "parse_spice.y"
3195 (yyval.
value) = spice_create_par_value ((yyvsp[(1) - (3)].
ident), (yyvsp[(2) - (3)].
ident));
3203 #line 824 "parse_spice.y"
3213 #line 828 "parse_spice.y"
3223 #line 832 "parse_spice.y"
3232 #line 840 "parse_spice.y"
3235 (yyval.
value) = NULL;
3246 #line 856 "parse_spice.y"
3247 { (yyval.
value) = NULL; }
3253 #line 857 "parse_spice.y"
3255 (yyval.
value) = spice_create_par_value ((yyvsp[(1) - (3)].
ident), (yyvsp[(2) - (3)].
ident));
3263 #line 863 "parse_spice.y"
3264 { (yyval.
value) = NULL; }
3270 #line 864 "parse_spice.y"
3280 #line 870 "parse_spice.y"
3281 { (yyval.
value) = NULL; }
3287 #line 871 "parse_spice.y"
3297 #line 875 "parse_spice.y"
3307 #line 881 "parse_spice.y"
3308 { (yyval.
value) = NULL; }
3314 #line 882 "parse_spice.y"
3324 #line 888 "parse_spice.y"
3325 { (yyval.
value) = NULL; }
3331 #line 889 "parse_spice.y"
3341 #line 896 "parse_spice.y"
3352 #line 903 "parse_spice.y"
3353 { (yyval.
value) = NULL; }
3359 #line 904 "parse_spice.y"
3368 #line 910 "parse_spice.y"
3370 (yyvsp[(1) - (3)].
definition)->sub = (yyvsp[(2) - (3)].definition);
3371 (yyval.
definition) = (yyvsp[(1) - (3)].definition);
3379 #line 918 "parse_spice.y"
3389 #line 924 "parse_spice.y"
3396 #line 925 "parse_spice.y"
3398 if ((yyvsp[(1) - (2)].definition)) {
3399 (yyvsp[(1) - (2)].
definition)->
next = (yyvsp[(2) - (2)].definition);
3400 (yyval.
definition) = (yyvsp[(1) - (2)].definition);
3403 (yyval.
definition) = (yyvsp[(2) - (2)].definition);
3411 #line 939 "parse_spice.y"
3418 #line 940 "parse_spice.y"
3419 { free ((yyvsp[(2) - (2)].
ident)); }
3425 #line 944 "parse_spice.y"
3427 if ((yyvsp[(1) - (1)].definition)) {
3429 (yyval.
definition) = (yyvsp[(1) - (1)].definition);
3437 #line 950 "parse_spice.y"
3444 #line 951 "parse_spice.y"
3453 #line 3454 "parse_spice.cpp"
3470 yystate = yypgoto[yyn -
YYNTOKENS] + *yyssp;
3471 if (0 <= yystate && yystate <=
YYLAST && yycheck[yystate] == *yyssp)
3472 yystate = yytable[yystate];
3487 #if ! YYERROR_VERBOSE
3491 YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
3497 if (yymsg != yymsgbuf)
3505 yymsg_alloc =
sizeof yymsgbuf;
3509 if (0 < yysize && yysize <= yymsg_alloc)
3511 (void) yysyntax_error (yymsg, yystate, yychar);
3518 goto yyexhaustedlab;
3526 if (yyerrstatus == 3)
3531 if (yychar <=
YYEOF)
3534 if (yychar ==
YYEOF)
3539 yydestruct (
"Error: discarding",
3578 yyn = yypact[yystate];
3595 yydestruct (
"Error: popping",
3596 yystos[yystate], yyvsp);
3626 #if !defined(yyoverflow) || YYERROR_VERBOSE
3638 yydestruct (
"Cleanup: discarding lookahead",
3644 while (yyssp != yyss)
3646 yydestruct (
"Cleanup: popping",
3647 yystos[*yyssp], yyvsp);
3655 if (yymsg != yymsgbuf)
3659 return YYID (yyresult);
3665 #line 956 "parse_spice.y"