From cbe8dbf1b4d3213401abe50d4e8985c07c833b83 Mon Sep 17 00:00:00 2001 From: Nick Downing Date: Thu, 27 Sep 2018 15:14:39 +1000 Subject: [PATCH] Add %space (extension syntax) --- src/parse-gram.c | 584 ++++++++++----------- src/parse-gram.h | 9 +- src/parse-gram.y | 7 + src/scan-gram.c | 1252 +++++++++++++++++++++++----------------------- src/scan-gram.l | 2 + 5 files changed, 944 insertions(+), 910 deletions(-) diff --git a/src/parse-gram.c b/src/parse-gram.c index cabc21b..4d9cd0d 100644 --- a/src/parse-gram.c +++ b/src/parse-gram.c @@ -129,7 +129,7 @@ extern int gram_debug; param_parse = 1 << 1, param_both = param_lex | param_parse } param_type; -#line 899 "src/parse-gram.y" /* yacc.c:355 */ +#line 906 "src/parse-gram.y" /* yacc.c:355 */ #include "muscle-tab.h" #line 136 "src/parse-gram.c" /* yacc.c:355 */ @@ -194,7 +194,8 @@ extern int gram_debug; INT = 309, PERCENT_PARAM = 310, PERCENT_UNION = 311, - PERCENT_EMPTY = 312 + PERCENT_EMPTY = 312, + PERCENT_SPACE = 313 }; #endif @@ -223,7 +224,7 @@ named_ref *named_ref; param_type param; #line 565 "src/parse-gram.y" /* yacc.c:355 */ code_props_type code_type; -#line 901 "src/parse-gram.y" /* yacc.c:355 */ +#line 908 "src/parse-gram.y" /* yacc.c:355 */ struct { @@ -231,7 +232,7 @@ code_props_type code_type; muscle_kind kind; } value; -#line 235 "src/parse-gram.c" /* yacc.c:355 */ +#line 236 "src/parse-gram.c" /* yacc.c:355 */ }; typedef union GRAM_STYPE GRAM_STYPE; @@ -261,7 +262,7 @@ int gram_parse (void); /* Copy the second part of user declarations. */ -#line 265 "src/parse-gram.c" /* yacc.c:358 */ +#line 266 "src/parse-gram.c" /* yacc.c:358 */ /* Unqualified %code blocks. */ #line 33 "src/parse-gram.y" /* yacc.c:359 */ @@ -364,7 +365,7 @@ int gram_parse (void); static void add_param (param_type type, char *decl, location loc); static param_type current_param = param_none; -#line 368 "src/parse-gram.c" /* yacc.c:359 */ +#line 369 "src/parse-gram.c" /* yacc.c:359 */ #ifdef short # undef short @@ -585,21 +586,21 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 3 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 183 +#define YYLAST 211 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 60 +#define YYNTOKENS 61 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 38 /* YYNRULES -- Number of rules. */ -#define YYNRULES 112 +#define YYNRULES 113 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 148 +#define YYNSTATES 149 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned by yylex, with out-of-bounds checking. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 312 +#define YYMAXUTOK 313 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -612,7 +613,7 @@ static const yytype_uint8 yytranslate[] = 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 58, 59, 2, 2, 2, 2, 2, 2, 2, 2, + 59, 60, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -639,7 +640,7 @@ static const yytype_uint8 yytranslate[] = 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57 + 55, 56, 57, 58 }; #if GRAM_DEBUG @@ -654,10 +655,10 @@ static const yytype_uint16 yyrline[] = 632, 650, 651, 652, 653, 657, 658, 663, 665, 670, 677, 690, 695, 703, 704, 708, 712, 716, 717, 718, 723, 728, 735, 744, 752, 766, 767, 776, 777, 783, - 784, 785, 792, 792, 805, 809, 813, 818, 835, 841, - 850, 852, 857, 864, 870, 876, 876, 883, 884, 894, - 895, 920, 921, 922, 923, 935, 937, 946, 951, 952, - 957, 965, 966 + 784, 785, 792, 792, 805, 809, 813, 820, 837, 843, + 852, 854, 859, 866, 872, 878, 878, 883, 890, 891, + 901, 902, 927, 928, 929, 930, 942, 944, 953, 958, + 959, 964, 972, 973 }; #endif @@ -679,15 +680,16 @@ static const char *const yytname[] = "\"%yacc\"", "\"{...}\"", "\"%?{...}\"", "\"[identifier]\"", "\"char\"", "\"epilogue\"", "\"=\"", "\"identifier\"", "\"identifier:\"", "\"%%\"", "\"|\"", "\"%{...%}\"", "\";\"", "\"\"", "\"<*>\"", "\"<>\"", - "\"integer\"", "\"%param\"", "\"%union\"", "\"%empty\"", "'('", "')'", - "$accept", "input", "prologue_declarations", "prologue_declaration", - "$@1", "params", "grammar_declaration", "code_props_type", "union_name", - "symbol_declaration", "$@2", "$@3", "precedence_declaration", - "precedence_declarator", "tag.opt", "symbols.prec", "symbol.prec", - "symbols.1", "generic_symlist", "generic_symlist_item", "tag", - "symbol_def", "symbol_defs.1", "grammar", "rules_or_grammar_declaration", - "rules", "$@4", "rhses.1", "rhs", "$@5", "named_ref.opt", "variable", - "value", "id", "id_colon", "symbol", "string_as_id", "epilogue.opt", YY_NULLPTR + "\"integer\"", "\"%param\"", "\"%union\"", "\"%empty\"", "\"%space\"", + "'('", "')'", "$accept", "input", "prologue_declarations", + "prologue_declaration", "$@1", "params", "grammar_declaration", + "code_props_type", "union_name", "symbol_declaration", "$@2", "$@3", + "precedence_declaration", "precedence_declarator", "tag.opt", + "symbols.prec", "symbol.prec", "symbols.1", "generic_symlist", + "generic_symlist_item", "tag", "symbol_def", "symbol_defs.1", "grammar", + "rules_or_grammar_declaration", "rules", "$@4", "rhses.1", "rhs", "$@5", + "named_ref.opt", "variable", "value", "id", "id_colon", "symbol", + "string_as_id", "epilogue.opt", YY_NULLPTR }; #endif @@ -701,7 +703,8 @@ static const yytype_uint16 yytoknum[] = 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, 310, 311, 312, 40, 41 + 305, 306, 307, 308, 309, 310, 311, 312, 313, 40, + 41 }; # endif @@ -710,30 +713,30 @@ static const yytype_uint16 yytoknum[] = #define yypact_value_is_default(Yystate) \ (!!((Yystate) == (-127))) -#define YYTABLE_NINF -112 +#define YYTABLE_NINF -113 #define yytable_value_is_error(Yytable_value) \ 0 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -static const yytype_int8 yypact[] = +static const yytype_int16 yypact[] = { - -127, 14, 127, -127, -127, -127, -22, -127, -127, -127, - -127, -127, -127, -37, -127, 8, 27, -127, -19, -18, - -127, 39, -127, 19, 56, 63, -127, -127, -127, 73, - 83, 94, 1, -127, -127, -127, 84, -127, -127, -127, - 42, -127, -127, 59, -127, -127, 51, 18, 18, 1, - -127, 64, -127, -127, 2, -127, -127, -127, -127, -127, + -127, 20, 155, -127, -127, -127, 4, -127, -127, -127, + -127, -127, -127, -6, -127, 3, 47, -127, 8, 9, + -127, 51, -127, 30, 68, 76, -127, -127, -127, 77, + 80, 84, 0, -127, -127, -127, 112, -127, -127, -127, + 43, -127, -127, 50, -127, -127, 39, 31, 31, 0, + -127, 52, -127, -127, -1, -127, -127, -127, -127, -127, -127, -127, -127, -127, -127, -127, -127, -127, -127, -127, - -127, 58, -127, 61, 15, -127, -127, 68, 67, -127, - 75, 3, -127, 1, -127, -127, 18, -2, 18, 1, - -127, -127, -127, -127, -127, -127, -127, -127, 69, -127, - -127, -127, -127, -127, 76, -127, -127, -127, -127, 3, - -127, -127, -127, 1, -127, 62, -127, 114, -127, -127, - -127, -127, -127, -127, -127, -127, -127, -38, 65, -127, - -127, 1, 66, 70, 68, -127, -127, -127, 68, 65, - -127, -127, -127, -127, -127, -127, 25, -127 + -127, 44, -127, 46, 18, -127, -127, 56, 61, -127, + 62, 33, -127, 0, -127, -127, 31, -2, 31, 0, + -127, -127, -127, -127, -127, -127, -127, -127, 59, -127, + -127, -127, -127, -127, 64, -127, -127, -127, -127, 33, + -127, -127, -127, 0, -127, 54, -127, 101, -127, -127, + -127, -127, -127, -127, -127, -127, -127, -39, 53, -127, + -127, 0, 55, 63, 56, -127, -127, -127, -127, 56, + 53, -127, -127, -127, -127, -127, -127, 1, -127 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -746,25 +749,25 @@ static const yytype_uint8 yydefact[] = 7, 0, 15, 0, 0, 0, 37, 19, 20, 0, 0, 0, 0, 26, 27, 28, 0, 6, 29, 22, 42, 4, 5, 0, 33, 32, 55, 0, 0, 0, - 38, 0, 100, 99, 101, 10, 12, 13, 14, 16, - 17, 18, 21, 24, 25, 110, 106, 105, 108, 34, - 109, 0, 107, 0, 0, 77, 79, 97, 0, 43, + 38, 0, 101, 100, 102, 10, 12, 13, 14, 16, + 17, 18, 21, 24, 25, 111, 107, 106, 109, 34, + 110, 0, 108, 0, 0, 77, 79, 98, 0, 43, 0, 0, 56, 0, 70, 75, 48, 71, 46, 49, - 61, 39, 103, 104, 102, 8, 81, 80, 0, 78, - 2, 98, 82, 31, 23, 44, 67, 68, 69, 35, + 61, 39, 104, 105, 103, 8, 81, 80, 0, 78, + 2, 99, 82, 31, 23, 44, 67, 68, 69, 35, 63, 66, 65, 50, 57, 59, 76, 72, 73, 62, - 112, 87, 30, 64, 58, 60, 74, 83, 84, 87, - 86, 0, 0, 0, 97, 90, 91, 95, 97, 85, - 92, 93, 94, 89, 87, 88, 0, 96 + 113, 87, 30, 64, 58, 60, 74, 83, 84, 87, + 86, 0, 0, 0, 98, 90, 91, 97, 95, 98, + 85, 92, 93, 94, 89, 87, 88, 0, 96 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int8 yypgoto[] = { - -127, -127, -127, -127, -127, -127, 116, -127, -127, -127, - -127, -127, -127, -127, -127, -127, 11, -127, -127, 16, - -127, -13, 78, -127, 53, -127, -127, -127, -126, -127, - -125, -127, -127, -14, -127, -32, -80, -127 + -127, -127, -127, -127, -127, -127, 103, -127, -127, -127, + -127, -127, -127, -127, -127, -127, -7, -127, -127, 6, + -127, -76, 78, -127, 57, -127, -127, -127, -124, -127, + -126, -127, -127, -16, -127, -32, -80, -127 }; /* YYDEFGOTO[NTERM-NUM]. */ @@ -772,8 +775,8 @@ static const yytype_int16 yydefgoto[] = { -1, 1, 2, 41, 78, 104, 73, 43, 80, 44, 48, 47, 45, 46, 83, 113, 114, 89, 109, 110, - 111, 85, 86, 74, 75, 76, 121, 127, 128, 144, - 102, 54, 95, 68, 77, 138, 70, 100 + 111, 85, 86, 74, 75, 76, 121, 127, 128, 145, + 102, 54, 95, 68, 77, 139, 70, 100 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -781,86 +784,92 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 69, 65, 50, 139, 65, 92, 65, 118, 51, 143, - 129, 52, 130, 145, 3, -111, 71, 90, 146, 4, - 5, 6, 7, 8, 9, 10, 11, 12, 65, 49, - 55, 13, 14, 87, 87, 56, 57, 126, 131, 132, - 133, 93, 58, 66, 26, 66, 67, 94, 67, 112, - 32, 115, 117, 53, 106, 107, 108, 119, 59, 60, - 66, 72, 98, 67, 134, 135, 61, 66, 65, 84, - 67, 40, 87, 116, 87, 116, 62, 112, 131, 132, - 133, 115, 136, 137, 147, 71, 63, 79, 4, 5, - 6, 7, 8, 9, 10, 11, 12, 64, 81, 140, - 13, 14, 82, 91, 134, 135, 103, 66, 96, 101, - 67, 97, 120, 26, 105, 122, 125, 65, 42, 32, - 141, 142, 136, 137, 124, 123, 88, 99, 0, 0, - 72, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 40, 0, 0, 13, 14, 15, 16, 17, 18, 19, - 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 0, 0, 0, 0, - 0, 0, 0, 0, 36, 0, 37, 38, 0, 0, - 0, 0, 39, 40 + 69, 65, 92, 65, 65, 140, 52, 118, 144, 129, + 116, 130, 116, 146, 131, 132, 133, 90, -112, 71, + 3, 147, 4, 5, 6, 7, 8, 9, 10, 11, + 12, 87, 87, 50, 13, 14, 65, 126, 93, 51, + 134, 135, 66, 66, 94, 67, 67, 26, 53, 112, + 55, 115, 117, 32, 58, 49, 65, 119, 136, 137, + 138, 148, 56, 57, 72, 98, 131, 132, 133, 59, + 87, 60, 87, 66, 40, 66, 67, 112, 67, 61, + 62, 115, 84, 63, 106, 107, 108, 64, 79, 81, + 82, 91, 134, 135, 96, 66, 97, 101, 67, 141, + 103, 105, 120, 122, 65, 42, 124, 0, 125, 142, + 136, 137, 138, 71, 143, 123, 4, 5, 6, 7, + 8, 9, 10, 11, 12, 0, 88, 0, 13, 14, + 0, 99, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 26, 0, 0, 0, 0, 0, 32, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 72, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 40, 0, + 0, 13, 14, 15, 16, 17, 18, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 0, 0, 0, 0, 0, 0, + 0, 0, 36, 0, 37, 38, 0, 0, 0, 0, + 39, 40 }; static const yytype_int16 yycheck[] = { - 32, 3, 39, 129, 3, 3, 3, 87, 45, 134, - 48, 3, 50, 138, 0, 0, 1, 49, 144, 4, - 5, 6, 7, 8, 9, 10, 11, 12, 3, 51, - 3, 16, 17, 47, 48, 54, 54, 117, 13, 14, - 15, 39, 3, 42, 29, 42, 45, 45, 45, 81, - 35, 83, 54, 45, 51, 52, 53, 89, 39, 3, - 42, 46, 47, 45, 39, 40, 3, 42, 3, 51, - 45, 56, 86, 86, 88, 88, 3, 109, 13, 14, - 15, 113, 57, 58, 59, 1, 3, 45, 4, 5, - 6, 7, 8, 9, 10, 11, 12, 3, 39, 131, - 16, 17, 51, 39, 39, 40, 39, 42, 50, 41, - 45, 50, 43, 29, 39, 39, 54, 3, 2, 35, - 54, 51, 57, 58, 113, 109, 48, 74, -1, -1, - 46, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 56, -1, -1, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, -1, -1, -1, -1, - -1, -1, -1, -1, 47, -1, 49, 50, -1, -1, - -1, -1, 55, 56 + 32, 3, 3, 3, 3, 129, 3, 87, 134, 48, + 86, 50, 88, 139, 13, 14, 15, 49, 0, 1, + 0, 145, 4, 5, 6, 7, 8, 9, 10, 11, + 12, 47, 48, 39, 16, 17, 3, 117, 39, 45, + 39, 40, 42, 42, 45, 45, 45, 29, 45, 81, + 3, 83, 54, 35, 3, 51, 3, 89, 57, 58, + 59, 60, 54, 54, 46, 47, 13, 14, 15, 39, + 86, 3, 88, 42, 56, 42, 45, 109, 45, 3, + 3, 113, 51, 3, 51, 52, 53, 3, 45, 39, + 51, 39, 39, 40, 50, 42, 50, 41, 45, 131, + 39, 39, 43, 39, 3, 2, 113, -1, 54, 54, + 57, 58, 59, 1, 51, 109, 4, 5, 6, 7, + 8, 9, 10, 11, 12, -1, 48, -1, 16, 17, + -1, 74, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 29, -1, -1, -1, -1, -1, 35, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 46, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 56, -1, + -1, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, -1, -1, -1, -1, -1, -1, + -1, -1, 47, -1, 49, 50, -1, -1, -1, -1, + 55, 56 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint8 yystos[] = { - 0, 61, 62, 0, 4, 5, 6, 7, 8, 9, + 0, 62, 63, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 47, 49, 50, 55, - 56, 63, 66, 67, 69, 72, 73, 71, 70, 51, - 39, 45, 3, 45, 91, 3, 54, 54, 3, 39, - 3, 3, 3, 3, 3, 3, 42, 45, 93, 95, - 96, 1, 46, 66, 83, 84, 85, 94, 64, 45, - 68, 39, 51, 74, 51, 81, 82, 93, 82, 77, - 95, 39, 3, 39, 45, 92, 50, 50, 47, 84, - 97, 41, 90, 39, 65, 39, 51, 52, 53, 78, - 79, 80, 95, 75, 76, 95, 81, 54, 96, 95, - 43, 86, 39, 79, 76, 54, 96, 87, 88, 48, - 50, 13, 14, 15, 39, 40, 57, 58, 95, 88, - 95, 54, 51, 90, 89, 90, 88, 59 + 56, 64, 67, 68, 70, 73, 74, 72, 71, 51, + 39, 45, 3, 45, 92, 3, 54, 54, 3, 39, + 3, 3, 3, 3, 3, 3, 42, 45, 94, 96, + 97, 1, 46, 67, 84, 85, 86, 95, 65, 45, + 69, 39, 51, 75, 51, 82, 83, 94, 83, 78, + 96, 39, 3, 39, 45, 93, 50, 50, 47, 85, + 98, 41, 91, 39, 66, 39, 51, 52, 53, 79, + 80, 81, 96, 76, 77, 96, 82, 54, 97, 96, + 43, 87, 39, 80, 77, 54, 97, 88, 89, 48, + 50, 13, 14, 15, 39, 40, 57, 58, 59, 96, + 89, 96, 54, 51, 91, 90, 91, 89, 60 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { - 0, 60, 61, 62, 62, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 64, 63, 63, 63, 63, 63, 63, 63, - 65, 65, 66, 66, 66, 66, 66, 66, 66, 66, - 67, 67, 68, 68, 66, 70, 69, 71, 69, 69, - 72, 73, 73, 73, 73, 74, 74, 75, 75, 76, - 76, 77, 77, 78, 78, 79, 79, 80, 80, 80, - 81, 81, 81, 81, 81, 82, 82, 83, 83, 84, - 84, 84, 86, 85, 87, 87, 87, 88, 88, 88, - 88, 88, 88, 88, 88, 89, 88, 90, 90, 91, - 91, 92, 92, 92, 92, 93, 93, 94, 95, 95, - 96, 97, 97 + 0, 61, 62, 63, 63, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 65, 64, 64, 64, 64, 64, 64, 64, + 66, 66, 67, 67, 67, 67, 67, 67, 67, 67, + 68, 68, 69, 69, 67, 71, 70, 72, 70, 70, + 73, 74, 74, 74, 74, 75, 75, 76, 76, 77, + 77, 78, 78, 79, 79, 80, 80, 81, 81, 81, + 82, 82, 82, 82, 82, 83, 83, 84, 84, 85, + 85, 85, 87, 86, 88, 88, 88, 89, 89, 89, + 89, 89, 89, 89, 89, 90, 89, 89, 91, 91, + 92, 92, 93, 93, 93, 93, 94, 94, 95, 96, + 96, 97, 98, 98 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ @@ -875,9 +884,9 @@ static const yytype_uint8 yyr2[] = 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 3, 1, 2, 1, 2, 1, 2, 2, 0, 4, 1, 3, 2, 0, 3, 3, - 2, 2, 3, 3, 3, 0, 5, 0, 1, 1, - 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 0, 2 + 2, 2, 3, 3, 3, 0, 5, 2, 0, 1, + 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 0, 2 }; @@ -1035,73 +1044,73 @@ yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvalue case 3: /* "string" */ #line 215 "src/parse-gram.y" /* yacc.c:684 */ { fputs (quotearg_style (c_quoting_style, ((*yyvaluep).code)), yyo); } -#line 1039 "src/parse-gram.c" /* yacc.c:684 */ +#line 1048 "src/parse-gram.c" /* yacc.c:684 */ break; case 23: /* "%" */ #line 223 "src/parse-gram.y" /* yacc.c:684 */ { fprintf (yyo, "%%%s", ((*yyvaluep).uniqstr)); } -#line 1045 "src/parse-gram.c" /* yacc.c:684 */ +#line 1054 "src/parse-gram.c" /* yacc.c:684 */ break; case 39: /* "{...}" */ #line 216 "src/parse-gram.y" /* yacc.c:684 */ { fprintf (yyo, "{\n%s\n}", ((*yyvaluep).code)); } -#line 1051 "src/parse-gram.c" /* yacc.c:684 */ +#line 1060 "src/parse-gram.c" /* yacc.c:684 */ break; case 40: /* "%?{...}" */ #line 216 "src/parse-gram.y" /* yacc.c:684 */ { fprintf (yyo, "{\n%s\n}", ((*yyvaluep).code)); } -#line 1057 "src/parse-gram.c" /* yacc.c:684 */ +#line 1066 "src/parse-gram.c" /* yacc.c:684 */ break; case 41: /* "[identifier]" */ #line 221 "src/parse-gram.y" /* yacc.c:684 */ { fprintf (yyo, "[%s]", ((*yyvaluep).uniqstr)); } -#line 1063 "src/parse-gram.c" /* yacc.c:684 */ +#line 1072 "src/parse-gram.c" /* yacc.c:684 */ break; case 42: /* "char" */ #line 211 "src/parse-gram.y" /* yacc.c:684 */ { fputs (char_name (((*yyvaluep).character)), yyo); } -#line 1069 "src/parse-gram.c" /* yacc.c:684 */ +#line 1078 "src/parse-gram.c" /* yacc.c:684 */ break; case 43: /* "epilogue" */ #line 216 "src/parse-gram.y" /* yacc.c:684 */ { fprintf (yyo, "{\n%s\n}", ((*yyvaluep).code)); } -#line 1075 "src/parse-gram.c" /* yacc.c:684 */ +#line 1084 "src/parse-gram.c" /* yacc.c:684 */ break; case 45: /* "identifier" */ #line 220 "src/parse-gram.y" /* yacc.c:684 */ { fputs (((*yyvaluep).uniqstr), yyo); } -#line 1081 "src/parse-gram.c" /* yacc.c:684 */ +#line 1090 "src/parse-gram.c" /* yacc.c:684 */ break; case 46: /* "identifier:" */ #line 222 "src/parse-gram.y" /* yacc.c:684 */ { fprintf (yyo, "%s:", ((*yyvaluep).uniqstr)); } -#line 1087 "src/parse-gram.c" /* yacc.c:684 */ +#line 1096 "src/parse-gram.c" /* yacc.c:684 */ break; case 49: /* "%{...%}" */ #line 216 "src/parse-gram.y" /* yacc.c:684 */ { fprintf (yyo, "{\n%s\n}", ((*yyvaluep).code)); } -#line 1093 "src/parse-gram.c" /* yacc.c:684 */ +#line 1102 "src/parse-gram.c" /* yacc.c:684 */ break; case 51: /* "" */ #line 224 "src/parse-gram.y" /* yacc.c:684 */ { fprintf (yyo, "<%s>", ((*yyvaluep).uniqstr)); } -#line 1099 "src/parse-gram.c" /* yacc.c:684 */ +#line 1108 "src/parse-gram.c" /* yacc.c:684 */ break; case 54: /* "integer" */ #line 228 "src/parse-gram.y" /* yacc.c:684 */ { fprintf (yyo, "%d", ((*yyvaluep).integer)); } -#line 1105 "src/parse-gram.c" /* yacc.c:684 */ +#line 1114 "src/parse-gram.c" /* yacc.c:684 */ break; case 55: /* "%param" */ @@ -1118,35 +1127,35 @@ yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvalue case param_none: aver (false); break; } } -#line 1122 "src/parse-gram.c" /* yacc.c:684 */ +#line 1131 "src/parse-gram.c" /* yacc.c:684 */ break; - case 67: /* code_props_type */ + case 68: /* code_props_type */ #line 566 "src/parse-gram.y" /* yacc.c:684 */ { fprintf (yyo, "%s", code_props_type_string (((*yyvaluep).code_type))); } -#line 1128 "src/parse-gram.c" /* yacc.c:684 */ +#line 1137 "src/parse-gram.c" /* yacc.c:684 */ break; - case 76: /* symbol.prec */ + case 77: /* symbol.prec */ #line 232 "src/parse-gram.y" /* yacc.c:684 */ { fprintf (yyo, "%s", ((*yyvaluep).symbol)->tag); } -#line 1134 "src/parse-gram.c" /* yacc.c:684 */ +#line 1143 "src/parse-gram.c" /* yacc.c:684 */ break; - case 80: /* tag */ + case 81: /* tag */ #line 224 "src/parse-gram.y" /* yacc.c:684 */ { fprintf (yyo, "<%s>", ((*yyvaluep).uniqstr)); } -#line 1140 "src/parse-gram.c" /* yacc.c:684 */ +#line 1149 "src/parse-gram.c" /* yacc.c:684 */ break; - case 91: /* variable */ + case 92: /* variable */ #line 220 "src/parse-gram.y" /* yacc.c:684 */ { fputs (((*yyvaluep).uniqstr), yyo); } -#line 1146 "src/parse-gram.c" /* yacc.c:684 */ +#line 1155 "src/parse-gram.c" /* yacc.c:684 */ break; - case 92: /* value */ -#line 910 "src/parse-gram.y" /* yacc.c:684 */ + case 93: /* value */ +#line 917 "src/parse-gram.y" /* yacc.c:684 */ { switch (((*yyvaluep).value).kind) { @@ -1155,31 +1164,31 @@ yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvalue case muscle_string: fprintf (yyo, "\"%s\"", ((*yyvaluep).value).chars); break; } } -#line 1159 "src/parse-gram.c" /* yacc.c:684 */ +#line 1168 "src/parse-gram.c" /* yacc.c:684 */ break; - case 93: /* id */ + case 94: /* id */ #line 232 "src/parse-gram.y" /* yacc.c:684 */ { fprintf (yyo, "%s", ((*yyvaluep).symbol)->tag); } -#line 1165 "src/parse-gram.c" /* yacc.c:684 */ +#line 1174 "src/parse-gram.c" /* yacc.c:684 */ break; - case 94: /* id_colon */ + case 95: /* id_colon */ #line 233 "src/parse-gram.y" /* yacc.c:684 */ { fprintf (yyo, "%s:", ((*yyvaluep).symbol)->tag); } -#line 1171 "src/parse-gram.c" /* yacc.c:684 */ +#line 1180 "src/parse-gram.c" /* yacc.c:684 */ break; - case 95: /* symbol */ + case 96: /* symbol */ #line 232 "src/parse-gram.y" /* yacc.c:684 */ { fprintf (yyo, "%s", ((*yyvaluep).symbol)->tag); } -#line 1177 "src/parse-gram.c" /* yacc.c:684 */ +#line 1186 "src/parse-gram.c" /* yacc.c:684 */ break; - case 96: /* string_as_id */ + case 97: /* string_as_id */ #line 232 "src/parse-gram.y" /* yacc.c:684 */ { fprintf (yyo, "%s", ((*yyvaluep).symbol)->tag); } -#line 1183 "src/parse-gram.c" /* yacc.c:684 */ +#line 1192 "src/parse-gram.c" /* yacc.c:684 */ break; @@ -1882,7 +1891,7 @@ YYLTYPE yylloc = yyloc_default; boundary_set (&yylloc.end, current_file, 1, 1); } -#line 1886 "src/parse-gram.c" /* yacc.c:1430 */ +#line 1895 "src/parse-gram.c" /* yacc.c:1430 */ yylsp[0] = yylloc; goto yysetstate; @@ -2095,7 +2104,7 @@ yyreduce: insert_after(0, ""); insert_before(0, ""); } -#line 2088 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2097 "src/parse-gram.c" /* yacc.c:1648 */ break; case 3: @@ -2110,7 +2119,7 @@ yyreduce: gram_piece[gram_piece2] = gram_piece[gram_piece2 - 1]; /* empty */ gram_piece[gram_piece2 - 1] = temp; } -#line 2103 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2112 "src/parse-gram.c" /* yacc.c:1648 */ break; case 6: @@ -2126,7 +2135,7 @@ yyreduce: free(gram_piece[gram_piece2]); gram_piece[gram_piece2] = strdup(code_piece[code_piece0 - 1]); } -#line 2119 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2128 "src/parse-gram.c" /* yacc.c:1648 */ break; case 7: @@ -2148,7 +2157,7 @@ yyreduce: else abort(); } -#line 2141 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2150 "src/parse-gram.c" /* yacc.c:1648 */ break; case 8: @@ -2159,7 +2168,7 @@ yyreduce: insert_after(2, ""); insert_before(0, ""); } -#line 2152 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2161 "src/parse-gram.c" /* yacc.c:1648 */ break; case 9: @@ -2168,7 +2177,7 @@ yyreduce: insert_after(0, ""); insert_before(0, ""); } -#line 2161 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2170 "src/parse-gram.c" /* yacc.c:1648 */ break; case 10: @@ -2179,7 +2188,7 @@ yyreduce: insert_after(1, ""); insert_before(0, ""); } -#line 2172 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2181 "src/parse-gram.c" /* yacc.c:1648 */ break; case 11: @@ -2191,7 +2200,7 @@ yyreduce: insert_after(0, ""); insert_before(0, ""); } -#line 2184 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2193 "src/parse-gram.c" /* yacc.c:1648 */ break; case 12: @@ -2201,7 +2210,7 @@ yyreduce: sprintf(gram_piece_temp, "", (yyvsp[0].integer)); insert_before(0, gram_piece_temp); } -#line 2194 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2203 "src/parse-gram.c" /* yacc.c:1648 */ break; case 13: @@ -2211,7 +2220,7 @@ yyreduce: sprintf(gram_piece_temp, "", (yyvsp[0].integer)); insert_before(0, gram_piece_temp); } -#line 2204 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2213 "src/parse-gram.c" /* yacc.c:1648 */ break; case 14: @@ -2220,7 +2229,7 @@ yyreduce: insert_after(1, ""); insert_before(0, ""); } -#line 2213 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2222 "src/parse-gram.c" /* yacc.c:1648 */ break; case 15: @@ -2231,7 +2240,7 @@ yyreduce: insert_after(0, ""); insert_before(0, ""); } -#line 2224 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2233 "src/parse-gram.c" /* yacc.c:1648 */ break; case 16: @@ -2248,7 +2257,7 @@ yyreduce: insert_after(1, ""); insert_before(0, ""); } -#line 2241 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2250 "src/parse-gram.c" /* yacc.c:1648 */ break; case 17: @@ -2257,7 +2266,7 @@ yyreduce: insert_after(1, ""); insert_before(0, ""); } -#line 2250 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2259 "src/parse-gram.c" /* yacc.c:1648 */ break; case 18: @@ -2266,7 +2275,7 @@ yyreduce: insert_after(1, ""); insert_before(0, ""); } -#line 2259 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2268 "src/parse-gram.c" /* yacc.c:1648 */ break; case 19: @@ -2275,7 +2284,7 @@ yyreduce: insert_after(0, ""); insert_before(0, ""); } -#line 2268 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2277 "src/parse-gram.c" /* yacc.c:1648 */ break; case 20: @@ -2284,7 +2293,7 @@ yyreduce: insert_after(0, ""); insert_before(0, ""); } -#line 2277 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2286 "src/parse-gram.c" /* yacc.c:1648 */ break; case 21: @@ -2293,13 +2302,13 @@ yyreduce: insert_after(1, ""); insert_before(0, ""); } -#line 2286 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2295 "src/parse-gram.c" /* yacc.c:1648 */ break; case 22: #line 432 "src/parse-gram.y" /* yacc.c:1648 */ { current_param = (yyvsp[0].param); } -#line 2292 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2301 "src/parse-gram.c" /* yacc.c:1648 */ break; case 23: @@ -2308,7 +2317,7 @@ yyreduce: insert_after(2, ""); insert_before(0, ""); } -#line 2301 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2310 "src/parse-gram.c" /* yacc.c:1648 */ break; case 24: @@ -2317,7 +2326,7 @@ yyreduce: insert_after(1, ""); insert_before(0, ""); } -#line 2310 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2319 "src/parse-gram.c" /* yacc.c:1648 */ break; case 25: @@ -2347,7 +2356,7 @@ yyreduce: insert_after(1, ""); insert_before(0, ""); } -#line 2340 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2349 "src/parse-gram.c" /* yacc.c:1648 */ break; case 26: @@ -2356,7 +2365,7 @@ yyreduce: insert_after(0, ""); insert_before(0, ""); } -#line 2349 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2358 "src/parse-gram.c" /* yacc.c:1648 */ break; case 27: @@ -2365,7 +2374,7 @@ yyreduce: insert_after(0, ""); insert_before(0, ""); } -#line 2358 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2367 "src/parse-gram.c" /* yacc.c:1648 */ break; case 28: @@ -2374,19 +2383,19 @@ yyreduce: insert_after(0, ""); insert_before(0, ""); } -#line 2367 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2376 "src/parse-gram.c" /* yacc.c:1648 */ break; case 30: #line 482 "src/parse-gram.y" /* yacc.c:1648 */ { add_param (current_param, (yyvsp[0].code), (yylsp[0])); } -#line 2373 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2382 "src/parse-gram.c" /* yacc.c:1648 */ break; case 31: #line 483 "src/parse-gram.y" /* yacc.c:1648 */ { add_param (current_param, (yyvsp[0].code), (yylsp[0])); } -#line 2379 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2388 "src/parse-gram.c" /* yacc.c:1648 */ break; case 34: @@ -2398,7 +2407,7 @@ yyreduce: insert_before(1, ""); insert_before(0, ""); } -#line 2391 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2400 "src/parse-gram.c" /* yacc.c:1648 */ break; case 35: @@ -2423,7 +2432,7 @@ yyreduce: sprintf(gram_piece_temp, "", (yyvsp[-2].code_type)); insert_before(0, gram_piece_temp); } -#line 2416 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2425 "src/parse-gram.c" /* yacc.c:1648 */ break; case 36: @@ -2433,7 +2442,7 @@ yyreduce: insert_after(0, ""); insert_before(0, ""); } -#line 2426 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2435 "src/parse-gram.c" /* yacc.c:1648 */ break; case 37: @@ -2443,7 +2452,7 @@ yyreduce: insert_after(0, ""); insert_before(0, ""); } -#line 2436 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2445 "src/parse-gram.c" /* yacc.c:1648 */ break; case 38: @@ -2462,7 +2471,7 @@ yyreduce: insert_after(1, ""); insert_before(0, ""); } -#line 2455 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2464 "src/parse-gram.c" /* yacc.c:1648 */ break; case 39: @@ -2478,25 +2487,25 @@ yyreduce: insert_after(2, ""); insert_before(0, ""); } -#line 2471 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2480 "src/parse-gram.c" /* yacc.c:1648 */ break; case 40: #line 568 "src/parse-gram.y" /* yacc.c:1648 */ { (yyval.code_type) = destructor; } -#line 2477 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2486 "src/parse-gram.c" /* yacc.c:1648 */ break; case 41: #line 569 "src/parse-gram.y" /* yacc.c:1648 */ { (yyval.code_type) = printer; } -#line 2483 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2492 "src/parse-gram.c" /* yacc.c:1648 */ break; case 42: #line 579 "src/parse-gram.y" /* yacc.c:1648 */ { insert_before(0, ""); } -#line 2489 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2498 "src/parse-gram.c" /* yacc.c:1648 */ break; case 43: @@ -2504,7 +2513,7 @@ yyreduce: { muscle_percent_define_insert ("api.value.union.name", (yylsp[0]), muscle_keyword, (yyvsp[0].uniqstr), MUSCLE_PERCENT_DEFINE_GRAMMAR_FILE); } -#line 2497 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2506 "src/parse-gram.c" /* yacc.c:1648 */ break; case 44: @@ -2521,13 +2530,13 @@ yyreduce: insert_after(2, ""); insert_before(0, ""); } -#line 2514 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2523 "src/parse-gram.c" /* yacc.c:1648 */ break; case 45: #line 605 "src/parse-gram.y" /* yacc.c:1648 */ { current_class = nterm_sym; } -#line 2520 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2529 "src/parse-gram.c" /* yacc.c:1648 */ break; case 46: @@ -2538,13 +2547,13 @@ yyreduce: insert_after(2, ""); insert_before(0, ""); } -#line 2531 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2540 "src/parse-gram.c" /* yacc.c:1648 */ break; case 47: #line 612 "src/parse-gram.y" /* yacc.c:1648 */ { current_class = token_sym; } -#line 2537 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2546 "src/parse-gram.c" /* yacc.c:1648 */ break; case 48: @@ -2555,7 +2564,7 @@ yyreduce: insert_after(2, ""); insert_before(0, ""); } -#line 2548 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2557 "src/parse-gram.c" /* yacc.c:1648 */ break; case 49: @@ -2569,7 +2578,7 @@ yyreduce: insert_after(2, ""); insert_before(0, ""); } -#line 2562 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2571 "src/parse-gram.c" /* yacc.c:1648 */ break; case 50: @@ -2588,55 +2597,55 @@ yyreduce: sprintf(gram_piece_temp, "", ((yyvsp[-2].assoc) & 3) - 1); /* -1 precedence, 0 right, 1 left, 2 nonassoc */ insert_before(0, gram_piece_temp); } -#line 2581 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2590 "src/parse-gram.c" /* yacc.c:1648 */ break; case 51: #line 650 "src/parse-gram.y" /* yacc.c:1648 */ { (yyval.assoc) = left_assoc; } -#line 2587 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2596 "src/parse-gram.c" /* yacc.c:1648 */ break; case 52: #line 651 "src/parse-gram.y" /* yacc.c:1648 */ { (yyval.assoc) = right_assoc; } -#line 2593 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2602 "src/parse-gram.c" /* yacc.c:1648 */ break; case 53: #line 652 "src/parse-gram.y" /* yacc.c:1648 */ { (yyval.assoc) = non_assoc; } -#line 2599 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2608 "src/parse-gram.c" /* yacc.c:1648 */ break; case 54: #line 653 "src/parse-gram.y" /* yacc.c:1648 */ { (yyval.assoc) = precedence_assoc; } -#line 2605 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2614 "src/parse-gram.c" /* yacc.c:1648 */ break; case 55: #line 657 "src/parse-gram.y" /* yacc.c:1648 */ { current_type = NULL; } -#line 2611 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2620 "src/parse-gram.c" /* yacc.c:1648 */ break; case 56: #line 658 "src/parse-gram.y" /* yacc.c:1648 */ { current_type = (yyvsp[0].uniqstr); tag_seen = true; } -#line 2617 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2626 "src/parse-gram.c" /* yacc.c:1648 */ break; case 57: #line 664 "src/parse-gram.y" /* yacc.c:1648 */ { (yyval.list) = symbol_list_sym_new ((yyvsp[0].symbol), (yylsp[0])); } -#line 2623 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2632 "src/parse-gram.c" /* yacc.c:1648 */ break; case 58: #line 666 "src/parse-gram.y" /* yacc.c:1648 */ { (yyval.list) = symbol_list_append ((yyvsp[-1].list), symbol_list_sym_new ((yyvsp[0].symbol), (yylsp[0]))); } -#line 2629 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2638 "src/parse-gram.c" /* yacc.c:1648 */ break; case 59: @@ -2647,7 +2656,7 @@ yyreduce: insert_after(0, ""); insert_before(0, ""); } -#line 2640 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2649 "src/parse-gram.c" /* yacc.c:1648 */ break; case 60: @@ -2660,7 +2669,7 @@ yyreduce: sprintf(gram_piece_temp, "", (yyvsp[0].integer)); insert_before(0, gram_piece_temp); } -#line 2653 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2662 "src/parse-gram.c" /* yacc.c:1648 */ break; case 61: @@ -2669,7 +2678,7 @@ yyreduce: insert_after(0, ""); insert_before(0, ""); } -#line 2662 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2671 "src/parse-gram.c" /* yacc.c:1648 */ break; case 62: @@ -2678,19 +2687,19 @@ yyreduce: insert_after(1, ""); insert_before(1, ""); } -#line 2671 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2680 "src/parse-gram.c" /* yacc.c:1648 */ break; case 63: #line 703 "src/parse-gram.y" /* yacc.c:1648 */ { (yyval.list) = (yyvsp[0].list); } -#line 2677 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2686 "src/parse-gram.c" /* yacc.c:1648 */ break; case 64: #line 704 "src/parse-gram.y" /* yacc.c:1648 */ { (yyval.list) = symbol_list_append ((yyvsp[-1].list), (yyvsp[0].list)); } -#line 2683 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2692 "src/parse-gram.c" /* yacc.c:1648 */ break; case 65: @@ -2699,25 +2708,25 @@ yyreduce: insert_after(0, ""); insert_before(0, ""); } -#line 2692 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2701 "src/parse-gram.c" /* yacc.c:1648 */ break; case 66: #line 712 "src/parse-gram.y" /* yacc.c:1648 */ { (yyval.list) = symbol_list_type_new ((yyvsp[0].uniqstr), (yylsp[0])); } -#line 2698 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2707 "src/parse-gram.c" /* yacc.c:1648 */ break; case 68: #line 717 "src/parse-gram.y" /* yacc.c:1648 */ { (yyval.uniqstr) = uniqstr_new ("*"); } -#line 2704 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2713 "src/parse-gram.c" /* yacc.c:1648 */ break; case 69: #line 718 "src/parse-gram.y" /* yacc.c:1648 */ { (yyval.uniqstr) = uniqstr_new (""); } -#line 2710 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2719 "src/parse-gram.c" /* yacc.c:1648 */ break; case 70: @@ -2726,7 +2735,7 @@ yyreduce: current_type = (yyvsp[0].uniqstr); tag_seen = true; } -#line 2719 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2728 "src/parse-gram.c" /* yacc.c:1648 */ break; case 71: @@ -2737,7 +2746,7 @@ yyreduce: insert_after(0, ""); insert_before(0, ""); } -#line 2730 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2739 "src/parse-gram.c" /* yacc.c:1648 */ break; case 72: @@ -2750,7 +2759,7 @@ yyreduce: sprintf(gram_piece_temp, "", (yyvsp[0].integer)); insert_before(0, gram_piece_temp); } -#line 2743 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2752 "src/parse-gram.c" /* yacc.c:1648 */ break; case 73: @@ -2762,7 +2771,7 @@ yyreduce: insert_after(1, ""); insert_before(0, ""); } -#line 2755 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2764 "src/parse-gram.c" /* yacc.c:1648 */ break; case 74: @@ -2776,7 +2785,7 @@ yyreduce: sprintf(gram_piece_temp, "", (yyvsp[-1].integer)); insert_before(0, gram_piece_temp); } -#line 2769 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2778 "src/parse-gram.c" /* yacc.c:1648 */ break; case 81: @@ -2784,13 +2793,13 @@ yyreduce: { yyerrok; } -#line 2777 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2786 "src/parse-gram.c" /* yacc.c:1648 */ break; case 82: #line 792 "src/parse-gram.y" /* yacc.c:1648 */ { current_lhs ((yyvsp[-1].symbol), (yylsp[-1]), (yyvsp[0].named_ref)); } -#line 2783 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2792 "src/parse-gram.c" /* yacc.c:1648 */ break; case 83: @@ -2804,7 +2813,7 @@ yyreduce: insert_before(0, ""); insert_before(0, ""); } -#line 2797 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2806 "src/parse-gram.c" /* yacc.c:1648 */ break; case 84: @@ -2813,7 +2822,7 @@ yyreduce: insert_after(0, ""); insert_before(0, ""); } -#line 2806 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2815 "src/parse-gram.c" /* yacc.c:1648 */ break; case 85: @@ -2822,11 +2831,11 @@ yyreduce: insert_after(2, ""); insert_before(2, ""); } -#line 2815 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2824 "src/parse-gram.c" /* yacc.c:1648 */ break; case 87: -#line 819 "src/parse-gram.y" /* yacc.c:1648 */ +#line 821 "src/parse-gram.y" /* yacc.c:1648 */ { /* Nick extra rules for element groups */ if (nested_rhs) @@ -2843,21 +2852,21 @@ yyreduce: gram_piece[gram_piece2] = gram_piece[gram_piece2 - 1]; /* empty */ gram_piece[gram_piece2 - 1] = temp; } -#line 2836 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2845 "src/parse-gram.c" /* yacc.c:1648 */ break; case 88: -#line 836 "src/parse-gram.y" /* yacc.c:1648 */ +#line 838 "src/parse-gram.y" /* yacc.c:1648 */ { grammar_current_rule_symbol_append ((yyvsp[-1].symbol), (yylsp[-1]), (yyvsp[0].named_ref)); /*}*/ insert_after(2, ""); insert_after(1, ""); insert_before(1, ""); } -#line 2846 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2855 "src/parse-gram.c" /* yacc.c:1648 */ break; case 89: -#line 842 "src/parse-gram.y" /* yacc.c:1648 */ +#line 844 "src/parse-gram.y" /* yacc.c:1648 */ { /* should be BracedCode, but too hard to put AST_Text inside braces */ code_piece_append(""); grammar_current_rule_action_append ((yyvsp[-1].code), (yylsp[-1]), (yyvsp[0].named_ref), false); /*}*/ code_piece_append(""); code_piece_pack(); @@ -2866,144 +2875,153 @@ yyreduce: insert_after(2, ""); insert_before(1, ""); } -#line 2859 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2868 "src/parse-gram.c" /* yacc.c:1648 */ break; case 90: -#line 851 "src/parse-gram.y" /* yacc.c:1648 */ +#line 853 "src/parse-gram.y" /* yacc.c:1648 */ { grammar_current_rule_action_append ((yyvsp[0].code), (yylsp[0]), NULL, true); } -#line 2865 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2874 "src/parse-gram.c" /* yacc.c:1648 */ break; case 91: -#line 853 "src/parse-gram.y" /* yacc.c:1648 */ +#line 855 "src/parse-gram.y" /* yacc.c:1648 */ { grammar_current_rule_empty_set ((yylsp[0])); /*}*/ insert_after(1, ""); insert_before(1, ""); } -#line 2874 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2883 "src/parse-gram.c" /* yacc.c:1648 */ break; case 92: -#line 858 "src/parse-gram.y" /* yacc.c:1648 */ +#line 860 "src/parse-gram.y" /* yacc.c:1648 */ { grammar_current_rule_prec_set ((yyvsp[0].symbol), (yylsp[0])); /*}*/ insert_after(2, ""); insert_after(2, ""); insert_before(2, ""); insert_before(1, ""); } -#line 2885 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2894 "src/parse-gram.c" /* yacc.c:1648 */ break; case 93: -#line 865 "src/parse-gram.y" /* yacc.c:1648 */ +#line 867 "src/parse-gram.y" /* yacc.c:1648 */ { grammar_current_rule_dprec_set ((yyvsp[0].integer), (yylsp[0])); /*}*/ insert_after(2, ""); sprintf(gram_piece_temp, "", (yyvsp[0].integer)); insert_before(1, gram_piece_temp); } -#line 2895 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2904 "src/parse-gram.c" /* yacc.c:1648 */ break; case 94: -#line 871 "src/parse-gram.y" /* yacc.c:1648 */ +#line 873 "src/parse-gram.y" /* yacc.c:1648 */ { grammar_current_rule_merge_set ((yyvsp[0].uniqstr), (yylsp[0])); /*}*/ insert_after(2, ""); insert_before(1, ""); } -#line 2904 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2913 "src/parse-gram.c" /* yacc.c:1648 */ break; case 95: -#line 876 "src/parse-gram.y" /* yacc.c:1648 */ +#line 878 "src/parse-gram.y" /* yacc.c:1648 */ { ++nested_rhs; } -#line 2910 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2919 "src/parse-gram.c" /* yacc.c:1648 */ break; case 96: -#line 876 "src/parse-gram.y" /* yacc.c:1648 */ +#line 878 "src/parse-gram.y" /* yacc.c:1648 */ { insert_after(3, ""); insert_before(1, ""); } -#line 2919 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2928 "src/parse-gram.c" /* yacc.c:1648 */ break; case 97: #line 883 "src/parse-gram.y" /* yacc.c:1648 */ - { (yyval.named_ref) = 0; } -#line 2925 "src/parse-gram.c" /* yacc.c:1648 */ + { + insert_after(1, ""); + insert_before(1, ""); + } +#line 2937 "src/parse-gram.c" /* yacc.c:1648 */ break; case 98: -#line 884 "src/parse-gram.y" /* yacc.c:1648 */ +#line 890 "src/parse-gram.y" /* yacc.c:1648 */ + { (yyval.named_ref) = 0; } +#line 2943 "src/parse-gram.c" /* yacc.c:1648 */ + break; + + case 99: +#line 891 "src/parse-gram.y" /* yacc.c:1648 */ { (yyval.named_ref) = named_ref_new ((yyvsp[0].uniqstr), (yylsp[0])); } -#line 2931 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2949 "src/parse-gram.c" /* yacc.c:1648 */ break; - case 100: -#line 895 "src/parse-gram.y" /* yacc.c:1648 */ + case 101: +#line 902 "src/parse-gram.y" /* yacc.c:1648 */ { (yyval.uniqstr) = uniqstr_new ((yyvsp[0].code)); } -#line 2937 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2955 "src/parse-gram.c" /* yacc.c:1648 */ break; - case 101: -#line 920 "src/parse-gram.y" /* yacc.c:1648 */ + case 102: +#line 927 "src/parse-gram.y" /* yacc.c:1648 */ { (yyval.value).kind = muscle_keyword; (yyval.value).chars = ""; } -#line 2943 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2961 "src/parse-gram.c" /* yacc.c:1648 */ break; - case 102: -#line 921 "src/parse-gram.y" /* yacc.c:1648 */ + case 103: +#line 928 "src/parse-gram.y" /* yacc.c:1648 */ { (yyval.value).kind = muscle_keyword; (yyval.value).chars = (yyvsp[0].uniqstr); } -#line 2949 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2967 "src/parse-gram.c" /* yacc.c:1648 */ break; - case 103: -#line 922 "src/parse-gram.y" /* yacc.c:1648 */ + case 104: +#line 929 "src/parse-gram.y" /* yacc.c:1648 */ { (yyval.value).kind = muscle_string; (yyval.value).chars = (yyvsp[0].code); } -#line 2955 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2973 "src/parse-gram.c" /* yacc.c:1648 */ break; - case 104: -#line 923 "src/parse-gram.y" /* yacc.c:1648 */ + case 105: +#line 930 "src/parse-gram.y" /* yacc.c:1648 */ { (yyval.value).kind = muscle_code; (yyval.value).chars = strip_braces ((yyvsp[0].code)); } -#line 2961 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2979 "src/parse-gram.c" /* yacc.c:1648 */ break; - case 105: -#line 936 "src/parse-gram.y" /* yacc.c:1648 */ + case 106: +#line 943 "src/parse-gram.y" /* yacc.c:1648 */ { (yyval.symbol) = symbol_from_uniqstr ((yyvsp[0].uniqstr), (yylsp[0])); } -#line 2967 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2985 "src/parse-gram.c" /* yacc.c:1648 */ break; - case 106: -#line 938 "src/parse-gram.y" /* yacc.c:1648 */ + case 107: +#line 945 "src/parse-gram.y" /* yacc.c:1648 */ { (yyval.symbol) = symbol_get (char_name ((yyvsp[0].character)), (yylsp[0])); symbol_class_set ((yyval.symbol), token_sym, (yylsp[0]), false); symbol_user_token_number_set ((yyval.symbol), (yyvsp[0].character), (yylsp[0])); } -#line 2977 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2995 "src/parse-gram.c" /* yacc.c:1648 */ break; - case 107: -#line 946 "src/parse-gram.y" /* yacc.c:1648 */ + case 108: +#line 953 "src/parse-gram.y" /* yacc.c:1648 */ { (yyval.symbol) = symbol_from_uniqstr ((yyvsp[0].uniqstr), (yylsp[0])); } -#line 2983 "src/parse-gram.c" /* yacc.c:1648 */ +#line 3001 "src/parse-gram.c" /* yacc.c:1648 */ break; - case 110: -#line 958 "src/parse-gram.y" /* yacc.c:1648 */ + case 111: +#line 965 "src/parse-gram.y" /* yacc.c:1648 */ { (yyval.symbol) = symbol_get (quotearg_style (c_quoting_style, (yyvsp[0].code)), (yylsp[0])); symbol_class_set ((yyval.symbol), token_sym, (yylsp[0]), false); } -#line 2992 "src/parse-gram.c" /* yacc.c:1648 */ +#line 3010 "src/parse-gram.c" /* yacc.c:1648 */ break; - case 112: -#line 967 "src/parse-gram.y" /* yacc.c:1648 */ + case 113: +#line 974 "src/parse-gram.y" /* yacc.c:1648 */ { #if 0 int gram_piece0_save = gram_piece0, gram_piece1_save = gram_piece1; @@ -3024,11 +3042,11 @@ yyreduce: insert_after(1, ""); insert_after(0, ""); } -#line 3017 "src/parse-gram.c" /* yacc.c:1648 */ +#line 3035 "src/parse-gram.c" /* yacc.c:1648 */ break; -#line 3021 "src/parse-gram.c" /* yacc.c:1648 */ +#line 3039 "src/parse-gram.c" /* yacc.c:1648 */ default: break; } if (yychar_backup != yychar) @@ -3291,7 +3309,7 @@ yyreturn: #endif return yyresult; } -#line 989 "src/parse-gram.y" /* yacc.c:1907 */ +#line 996 "src/parse-gram.y" /* yacc.c:1907 */ /* Return the location of the left-hand side of a rule whose diff --git a/src/parse-gram.h b/src/parse-gram.h index 3677998..0fec12b 100644 --- a/src/parse-gram.h +++ b/src/parse-gram.h @@ -61,7 +61,7 @@ extern int gram_debug; param_parse = 1 << 1, param_both = param_lex | param_parse } param_type; -#line 899 "src/parse-gram.y" /* yacc.c:1910 */ +#line 906 "src/parse-gram.y" /* yacc.c:1910 */ #include "muscle-tab.h" #line 68 "src/parse-gram.h" /* yacc.c:1910 */ @@ -126,7 +126,8 @@ extern int gram_debug; INT = 309, PERCENT_PARAM = 310, PERCENT_UNION = 311, - PERCENT_EMPTY = 312 + PERCENT_EMPTY = 312, + PERCENT_SPACE = 313 }; #endif @@ -155,7 +156,7 @@ named_ref *named_ref; param_type param; #line 565 "src/parse-gram.y" /* yacc.c:1910 */ code_props_type code_type; -#line 901 "src/parse-gram.y" /* yacc.c:1910 */ +#line 908 "src/parse-gram.y" /* yacc.c:1910 */ struct { @@ -163,7 +164,7 @@ code_props_type code_type; muscle_kind kind; } value; -#line 167 "src/parse-gram.h" /* yacc.c:1910 */ +#line 168 "src/parse-gram.h" /* yacc.c:1910 */ }; typedef union GRAM_STYPE GRAM_STYPE; diff --git a/src/parse-gram.y b/src/parse-gram.y index c9cb7c1..162143d 100644 --- a/src/parse-gram.y +++ b/src/parse-gram.y @@ -814,6 +814,8 @@ rhses.1: ; %token PERCENT_EMPTY "%empty"; +/* Nick added %space */ +%token PERCENT_SPACE "%space"; rhs: %empty { @@ -877,6 +879,11 @@ rhs: insert_after(3, ""); insert_before(1, ""); } +/* Nick added %space */ +| rhs "%space" { + insert_after(1, ""); + insert_before(1, ""); + } ; named_ref.opt: diff --git a/src/scan-gram.c b/src/scan-gram.c index c66f7e5..35255d8 100644 --- a/src/scan-gram.c +++ b/src/scan-gram.c @@ -482,8 +482,8 @@ static void yy_fatal_error (yyconst char msg[] ); (yy_c_buf_p) = yy_cp; /* %% [4.0] data tables for the DFA and the user's section 1 definitions go here */ -#define YY_NUM_RULES 133 -#define YY_END_OF_BUFFER 134 +#define YY_NUM_RULES 134 +#define YY_END_OF_BUFFER 135 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -491,72 +491,72 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[587] = +static yyconst flex_int16_t yy_accept[591] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 95, 95, 115, 115, 115, 115, 0, 0, - 0, 0, 0, 0, 134, 82, 2, 2, 71, 82, - 70, 82, 76, 82, 1, 66, 82, 67, 67, 65, - 79, 63, 66, 81, 73, 64, 82, 92, 92, 131, - 97, 96, 131, 83, 99, 98, 86, 2, 1, 86, - 85, 84, 86, 101, 101, 102, 100, 83, 132, 121, - 131, 120, 131, 131, 131, 124, 127, 128, 131, 94, - 131, 119, 118, 131, 117, 116, 89, 2, 1, 87, - - 89, 89, 88, 89, 90, 2, 1, 90, 90, 129, - 82, 80, 62, 0, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 72, 82, 66, 66, 4, 3, 69, 67, - 69, 0, 78, 0, 91, 114, 112, 103, 114, 105, - 106, 107, 108, 109, 110, 114, 111, 114, 101, 101, - 102, 130, 122, 123, 0, 125, 0, 124, 126, 0, - 93, 0, 0, 95, 115, 115, 115, 115, 89, 87, - 62, 0, 74, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 0, 3, 69, 68, 77, 0, - 103, 0, 0, 104, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 75, 0, 103, 0, 0, - 62, 7, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 23, 62, 62, 62, 62, - - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 36, 62, 62, 62, 62, 62, 62, 44, 62, 47, - 62, 62, 50, 0, 0, 0, 62, 8, 62, 62, - 62, 13, 14, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 26, 62, 62, 62, 62, 62, 62, 62, - 62, 32, 62, 34, 62, 62, 62, 62, 62, 62, - 41, 62, 43, 45, 48, 62, 0, 0, 113, 6, - 62, 10, 62, 62, 62, 16, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 33, 62, 62, 62, 62, 62, 62, 62, - - 62, 62, 62, 0, 62, 11, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 0, 59, 62, - 62, 38, 62, 62, 40, 62, 62, 62, 49, 5, - 0, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 22, 62, 62, 62, 62, 62, 29, - 62, 58, 30, 62, 62, 62, 62, 62, 42, 62, - 62, 0, 62, 62, 62, 62, 62, 17, 53, 62, - 62, 62, 62, 62, 24, 25, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 0, 0, 62, - - 62, 12, 62, 62, 62, 62, 62, 21, 62, 62, - 62, 62, 62, 62, 62, 37, 62, 62, 62, 62, - 62, 62, 62, 62, 18, 62, 62, 62, 27, 56, - 62, 62, 62, 35, 39, 60, 46, 61, 9, 51, - 62, 62, 0, 54, 62, 62, 62, 0, 56, 62, - 62, 62, 15, 52, 62, 62, 62, 62, 62, 62, - 62, 62, 20, 62, 62, 62, 62, 62, 28, 57, - 62, 62, 62, 62, 62, 62, 62, 19, 55, 62, - 62, 62, 62, 62, 31, 0 + 0, 0, 96, 96, 116, 116, 116, 116, 0, 0, + 0, 0, 0, 0, 135, 83, 2, 2, 72, 83, + 71, 83, 77, 83, 1, 67, 83, 68, 68, 66, + 80, 64, 67, 82, 74, 65, 83, 93, 93, 132, + 98, 97, 132, 84, 100, 99, 87, 2, 1, 87, + 86, 85, 87, 102, 102, 103, 101, 84, 133, 122, + 132, 121, 132, 132, 132, 125, 128, 129, 132, 95, + 132, 120, 119, 132, 118, 117, 90, 2, 1, 88, + + 90, 90, 89, 90, 91, 2, 1, 91, 91, 130, + 83, 81, 63, 0, 63, 63, 63, 63, 63, 63, + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, + 63, 63, 73, 83, 67, 67, 4, 3, 70, 68, + 70, 0, 79, 0, 92, 115, 113, 104, 115, 106, + 107, 108, 109, 110, 111, 115, 112, 115, 102, 102, + 103, 131, 123, 124, 0, 126, 0, 125, 127, 0, + 94, 0, 0, 96, 116, 116, 116, 116, 90, 88, + 63, 0, 75, 63, 63, 63, 63, 63, 63, 63, + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, + + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, + 63, 63, 63, 63, 63, 0, 3, 70, 69, 78, + 0, 104, 0, 0, 105, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 63, 63, + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, + 63, 63, 63, 63, 63, 63, 63, 76, 0, 104, + 0, 0, 63, 7, 63, 63, 63, 63, 63, 63, + 63, 63, 63, 63, 63, 63, 63, 23, 63, 63, + + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, + 63, 63, 36, 63, 63, 63, 63, 63, 63, 63, + 45, 63, 48, 63, 63, 51, 0, 0, 0, 63, + 8, 63, 63, 63, 13, 14, 63, 63, 63, 63, + 63, 63, 63, 63, 63, 26, 63, 63, 63, 63, + 63, 63, 63, 63, 32, 63, 34, 63, 63, 63, + 63, 63, 63, 41, 63, 43, 44, 46, 49, 63, + 0, 0, 114, 6, 63, 10, 63, 63, 63, 16, + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, + 63, 63, 63, 63, 63, 63, 33, 63, 63, 63, + + 63, 63, 63, 63, 63, 63, 63, 0, 63, 11, + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, + 63, 0, 60, 63, 63, 38, 63, 63, 40, 63, + 63, 63, 50, 5, 0, 63, 63, 63, 63, 63, + 63, 63, 63, 63, 63, 63, 63, 22, 63, 63, + 63, 63, 63, 29, 63, 59, 30, 63, 63, 63, + 63, 63, 42, 63, 63, 0, 63, 63, 63, 63, + 63, 17, 54, 63, 63, 63, 63, 63, 24, 25, + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, + + 63, 0, 0, 63, 63, 12, 63, 63, 63, 63, + 63, 21, 63, 63, 63, 63, 63, 63, 63, 37, + 63, 63, 63, 63, 63, 63, 63, 63, 18, 63, + 63, 63, 27, 57, 63, 63, 63, 35, 39, 61, + 47, 62, 9, 52, 63, 63, 0, 55, 63, 63, + 63, 0, 57, 63, 63, 63, 15, 53, 63, 63, + 63, 63, 63, 63, 63, 63, 20, 63, 63, 63, + 63, 63, 28, 58, 63, 63, 63, 63, 63, 63, + 63, 19, 56, 63, 63, 63, 63, 63, 31, 0 } ; static yyconst flex_int32_t yy_ec[256] = @@ -602,151 +602,151 @@ static yyconst flex_int32_t yy_meta[62] = 1 } ; -static yyconst flex_int16_t yy_base[613] = +static yyconst flex_int16_t yy_base[617] = { 0, - 0, 1034, 1028, 1027, 59, 60, 61, 64, 66, 82, + 0, 1038, 1032, 1031, 59, 60, 61, 64, 66, 82, 66, 85, 102, 120, 129, 141, 149, 150, 161, 170, - 69, 71, 72, 74, 109, 111, 130, 139, 230, 1031, - 191, 195, 289, 293, 1037, 0, 1042, 1042, 1042, 346, - 1042, 1011, 0, 1042, 1042, 404, 118, 289, 163, 1042, - 107, 1042, 465, 1042, 1042, 1042, 990, 1042, 1018, 1042, - 1042, 1042, 521, 1042, 1042, 1042, 1042, 1042, 1042, 156, - 1042, 1042, 988, 1018, 160, 1009, 1042, 1016, 1042, 1042, - 969, 1042, 193, 92, 153, 1042, 1042, 1042, 62, 1042, - 98, 1042, 1042, 311, 1042, 1042, 0, 1042, 0, 0, - - 179, 1042, 1042, 983, 1042, 1042, 1042, 194, 982, 1042, - 0, 1042, 0, 319, 983, 977, 164, 166, 981, 978, - 975, 179, 982, 275, 966, 282, 177, 171, 255, 972, - 979, 982, 1042, 989, 577, 0, 1042, 0, 0, 308, - 622, 991, 1042, 971, 1042, 1042, 1042, 312, 0, 1042, - 1042, 1042, 1042, 1042, 1042, 0, 1042, 0, 999, 317, - 990, 1042, 1042, 1042, 332, 1042, 337, 1042, 1042, 353, - 1042, 357, 361, 979, 1042, 365, 978, 404, 0, 0, - 0, 420, 1042, 962, 970, 376, 956, 957, 954, 955, - 248, 952, 959, 954, 292, 963, 948, 952, 396, 958, - - 943, 944, 307, 943, 943, 951, 952, 955, 938, 944, - 938, 943, 934, 947, 925, 0, 0, 0, 1042, 935, - 361, 0, 0, 0, 429, 401, 436, 320, 442, 418, - 446, 426, 450, 454, 458, 465, 432, 946, 941, 925, - 322, 925, 938, 923, 927, 935, 934, 933, 957, 917, - 928, 915, 953, 931, 924, 925, 382, 435, 188, 912, - 913, 419, 924, 913, 920, 904, 915, 911, 904, 908, - 914, 913, 903, 914, 912, 1042, 909, 1042, 0, 0, - 896, 0, 905, 891, 897, 892, 905, 884, 889, 902, - 924, 899, 887, 892, 880, 0, 884, 879, 892, 126, - - 891, 886, 889, 884, 874, 886, 878, 869, 876, 882, - 881, 866, 286, 875, 864, 877, 862, 0, 867, 0, - 866, 864, 0, 906, 0, 0, 853, 0, 864, 869, - 853, 0, 0, 304, 853, 856, 448, 869, 868, 867, - 866, 857, 0, 850, 849, 857, 849, 855, 847, 841, - 839, 0, 838, 0, 876, 851, 849, 838, 837, 834, - 0, 831, 0, 460, 0, 831, 469, 0, 1042, 0, - 829, 829, 843, 824, 823, 465, 826, 828, 827, 823, - 828, 831, 820, 822, 818, 817, 832, 827, 830, 825, - 815, 823, 498, 812, 821, 808, 823, 822, 817, 807, - - 801, 800, 813, 488, 470, 0, 798, 811, 810, 797, - 796, 807, 791, 790, 791, 828, 802, 805, 792, 799, - 798, 782, 783, 780, 781, 795, 780, 506, 1042, 795, - 782, 0, 777, 776, 0, 779, 790, 789, 0, 1042, - 817, 773, 764, 761, 746, 742, 737, 732, 741, 727, - 724, 737, 727, 0, 696, 686, 696, 692, 686, 0, - 685, 0, 0, 681, 675, 688, 672, 669, 0, 684, - 683, 650, 604, 603, 602, 616, 615, 0, 0, 607, - 598, 597, 594, 607, 0, 0, 600, 599, 584, 583, - 592, 599, 594, 593, 592, 585, 584, 622, 486, 588, - - 587, 0, 577, 576, 567, 568, 567, 0, 567, 562, - 561, 481, 482, 569, 569, 0, 562, 561, 572, 569, - 570, 569, 553, 552, 520, 550, 537, 546, 529, 560, - 537, 536, 539, 0, 0, 0, 0, 0, 0, 0, - 541, 540, 591, 1042, 503, 506, 525, 596, 1042, 520, - 519, 517, 0, 0, 527, 526, 513, 520, 519, 502, - 511, 508, 0, 512, 511, 504, 500, 499, 0, 0, - 505, 502, 497, 521, 476, 467, 469, 0, 0, 479, - 462, 460, 444, 430, 0, 1042, 662, 673, 684, 695, - 706, 717, 728, 734, 743, 754, 765, 774, 780, 785, - - 794, 801, 470, 439, 414, 362, 222, 183, 181, 147, - 69, 810 + 69, 71, 72, 74, 109, 111, 130, 139, 230, 1035, + 191, 195, 289, 293, 1041, 0, 1046, 1046, 1046, 346, + 1046, 1015, 0, 1046, 1046, 404, 118, 289, 163, 1046, + 107, 1046, 465, 1046, 1046, 1046, 994, 1046, 1022, 1046, + 1046, 1046, 521, 1046, 1046, 1046, 1046, 1046, 1046, 156, + 1046, 1046, 992, 1022, 160, 1013, 1046, 1020, 1046, 1046, + 973, 1046, 193, 92, 153, 1046, 1046, 1046, 62, 1046, + 98, 1046, 1046, 311, 1046, 1046, 0, 1046, 0, 0, + + 179, 1046, 1046, 987, 1046, 1046, 1046, 194, 986, 1046, + 0, 1046, 0, 319, 987, 981, 164, 166, 985, 982, + 979, 179, 986, 275, 970, 282, 177, 276, 255, 976, + 983, 986, 1046, 993, 577, 0, 1046, 0, 0, 313, + 622, 995, 1046, 975, 1046, 1046, 1046, 206, 0, 1046, + 1046, 1046, 1046, 1046, 1046, 0, 1046, 0, 1003, 313, + 994, 1046, 1046, 1046, 336, 1046, 353, 1046, 1046, 357, + 1046, 361, 365, 983, 1046, 404, 982, 418, 0, 0, + 0, 423, 1046, 966, 974, 391, 960, 961, 958, 959, + 170, 956, 963, 958, 278, 967, 952, 956, 398, 962, + + 947, 948, 261, 947, 947, 955, 956, 959, 958, 941, + 947, 941, 946, 937, 950, 928, 0, 0, 0, 1046, + 938, 361, 0, 0, 0, 436, 401, 444, 316, 448, + 408, 452, 310, 456, 465, 475, 481, 431, 949, 944, + 928, 309, 928, 941, 926, 930, 938, 937, 936, 960, + 920, 931, 918, 956, 934, 927, 928, 312, 397, 436, + 915, 916, 421, 927, 916, 923, 907, 918, 914, 921, + 906, 910, 916, 915, 905, 916, 914, 1046, 911, 1046, + 0, 0, 898, 0, 907, 893, 899, 894, 907, 886, + 891, 904, 926, 901, 889, 894, 882, 0, 886, 881, + + 894, 126, 893, 888, 891, 886, 876, 888, 880, 871, + 878, 884, 883, 868, 430, 877, 866, 879, 878, 863, + 0, 868, 0, 867, 865, 0, 907, 0, 0, 854, + 0, 865, 870, 854, 0, 0, 448, 854, 857, 465, + 870, 869, 868, 867, 858, 0, 851, 850, 858, 850, + 856, 848, 842, 840, 0, 839, 0, 877, 852, 850, + 839, 838, 835, 0, 832, 0, 0, 473, 0, 832, + 474, 0, 1046, 0, 830, 830, 844, 825, 824, 474, + 827, 829, 828, 824, 829, 832, 821, 823, 819, 818, + 833, 828, 831, 826, 816, 824, 498, 813, 822, 809, + + 824, 823, 818, 808, 802, 801, 814, 501, 475, 0, + 799, 812, 811, 798, 797, 808, 792, 791, 792, 829, + 803, 806, 793, 800, 799, 783, 784, 781, 782, 796, + 781, 508, 1046, 796, 783, 0, 778, 777, 0, 780, + 791, 790, 0, 1046, 818, 774, 773, 765, 758, 746, + 742, 737, 743, 728, 727, 738, 741, 0, 716, 690, + 698, 696, 687, 0, 686, 0, 0, 684, 676, 689, + 673, 672, 0, 685, 684, 713, 605, 604, 603, 617, + 616, 0, 0, 608, 601, 598, 595, 608, 0, 0, + 601, 600, 589, 584, 593, 600, 595, 594, 593, 586, + + 585, 623, 511, 589, 588, 0, 578, 577, 568, 569, + 568, 0, 568, 564, 562, 481, 482, 570, 570, 0, + 564, 562, 573, 572, 571, 570, 554, 553, 520, 551, + 550, 547, 531, 560, 540, 537, 542, 0, 0, 0, + 0, 0, 0, 0, 543, 541, 591, 1046, 514, 515, + 531, 596, 1046, 522, 520, 518, 0, 0, 529, 527, + 519, 521, 520, 505, 512, 509, 0, 514, 510, 502, + 499, 497, 0, 0, 504, 501, 498, 518, 453, 442, + 411, 0, 0, 417, 397, 370, 371, 318, 0, 1046, + 662, 673, 684, 695, 706, 717, 728, 734, 743, 754, + + 765, 774, 780, 785, 794, 801, 358, 339, 328, 286, + 222, 183, 181, 147, 69, 810 } ; -static yyconst flex_int16_t yy_def[613] = +static yyconst flex_int16_t yy_def[617] = { 0, - 586, 1, 587, 587, 588, 588, 588, 588, 589, 589, - 590, 590, 588, 588, 588, 588, 588, 588, 588, 588, - 588, 588, 588, 588, 588, 588, 588, 588, 586, 29, - 591, 591, 588, 588, 586, 592, 586, 586, 586, 586, - 586, 592, 592, 586, 586, 593, 586, 594, 594, 586, - 586, 586, 593, 586, 586, 586, 592, 586, 586, 586, - 586, 586, 595, 586, 586, 586, 586, 586, 586, 586, - 586, 586, 586, 596, 596, 586, 586, 596, 586, 586, - 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, - 586, 586, 586, 597, 586, 586, 598, 586, 598, 599, - - 586, 586, 586, 598, 586, 586, 586, 586, 586, 586, - 592, 586, 600, 586, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 586, 592, 593, 53, 586, 601, 602, 594, - 602, 586, 586, 586, 586, 586, 586, 586, 603, 586, - 586, 586, 586, 586, 586, 604, 586, 605, 596, 596, - 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, - 586, 586, 586, 586, 586, 586, 586, 586, 598, 599, - 600, 586, 586, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, - - 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 586, 601, 602, 141, 586, 586, - 586, 606, 607, 605, 586, 586, 586, 586, 586, 586, - 586, 586, 586, 586, 586, 586, 597, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 586, 586, 586, 608, 609, - 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, - - 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 586, 610, 611, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 586, 604, 586, 600, - 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, - - 600, 600, 600, 586, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 586, 586, 600, - 600, 600, 600, 600, 600, 600, 600, 600, 600, 586, - 586, 600, 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, - 600, 612, 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 612, 612, 600, - - 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 586, 586, 600, 600, 600, 586, 586, 600, - 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 0, 586, 586, 586, 586, - 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, - - 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, - 586, 586 + 590, 1, 591, 591, 592, 592, 592, 592, 593, 593, + 594, 594, 592, 592, 592, 592, 592, 592, 592, 592, + 592, 592, 592, 592, 592, 592, 592, 592, 590, 29, + 595, 595, 592, 592, 590, 596, 590, 590, 590, 590, + 590, 596, 596, 590, 590, 597, 590, 598, 598, 590, + 590, 590, 597, 590, 590, 590, 596, 590, 590, 590, + 590, 590, 599, 590, 590, 590, 590, 590, 590, 590, + 590, 590, 590, 600, 600, 590, 590, 600, 590, 590, + 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, + 590, 590, 590, 601, 590, 590, 602, 590, 602, 603, + + 590, 590, 590, 602, 590, 590, 590, 590, 590, 590, + 596, 590, 604, 590, 604, 604, 604, 604, 604, 604, + 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, + 604, 604, 590, 596, 597, 53, 590, 605, 606, 598, + 606, 590, 590, 590, 590, 590, 590, 590, 607, 590, + 590, 590, 590, 590, 590, 608, 590, 609, 600, 600, + 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, + 590, 590, 590, 590, 590, 590, 590, 590, 602, 603, + 604, 590, 590, 604, 604, 604, 604, 604, 604, 604, + 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, + + 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, + 604, 604, 604, 604, 604, 590, 605, 606, 141, 590, + 590, 590, 610, 611, 609, 590, 590, 590, 590, 590, + 590, 590, 590, 590, 590, 590, 590, 601, 604, 604, + 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, + 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, + 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, + 604, 604, 604, 604, 604, 604, 604, 590, 590, 590, + 612, 613, 604, 604, 604, 604, 604, 604, 604, 604, + 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, + + 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, + 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, + 604, 604, 604, 604, 604, 604, 590, 614, 615, 604, + 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, + 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, + 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, + 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, + 590, 608, 590, 604, 604, 604, 604, 604, 604, 604, + 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, + 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, + + 604, 604, 604, 604, 604, 604, 604, 590, 604, 604, + 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, + 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, + 604, 590, 590, 604, 604, 604, 604, 604, 604, 604, + 604, 604, 604, 590, 590, 604, 604, 604, 604, 604, + 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, + 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, + 604, 604, 604, 604, 604, 616, 604, 604, 604, 604, + 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, + 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, + + 604, 616, 616, 604, 604, 604, 604, 604, 604, 604, + 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, + 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, + 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, + 604, 604, 604, 604, 604, 604, 590, 590, 604, 604, + 604, 590, 590, 604, 604, 604, 604, 604, 604, 604, + 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, + 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, + 604, 604, 604, 604, 604, 604, 604, 604, 604, 0, + 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, + + 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, + 590, 590, 590, 590, 590, 590 } ; -static yyconst flex_int16_t yy_nxt[1104] = +static yyconst flex_int16_t yy_nxt[1108] = { 0, 36, 37, 38, 36, 37, 39, 36, 40, 41, 42, 43, 44, 45, 36, 46, 47, 48, 49, 49, 36, @@ -755,124 +755,124 @@ static yyconst flex_int16_t yy_nxt[1104] = 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 55, 56, 44, 36, 61, 61, 65, 62, 62, 65, 68, 38, 66, - 68, 79, 66, 79, 90, 369, 90, 171, 69, 75, + 68, 79, 66, 79, 90, 373, 90, 171, 69, 75, 89, 70, 89, 68, 38, 71, 68, 76, 73, 77, 63, 63, 63, 172, 69, 63, 72, 70, 75, 173, 174, 71, 173, 91, 79, 91, 76, 80, 77, 81, 82, 92, 72, 92, 93, 166, 93, 83, 142, 64, 64, 64, 79, 167, 64, 80, 78, 81, 82, 137, - 143, 79, 95, 138, 80, 83, 84, 82, 96, 344, + 143, 79, 95, 138, 80, 83, 84, 82, 96, 347, 94, 95, 94, 79, 83, 78, 80, 96, 84, 82, - 85, 79, 79, 368, 80, 80, 83, 82, 82, 345, + 85, 79, 79, 372, 80, 80, 83, 82, 82, 348, 168, 94, 85, 79, 83, 83, 80, 137, 84, 82, 94, 138, 79, 160, 169, 80, 83, 84, 82, 140, - 140, 140, 85, 159, 170, 83, 86, 326, 87, 325, + 140, 140, 85, 159, 170, 83, 86, 329, 87, 328, 137, 85, 106, 38, 138, 106, 106, 38, 86, 106, 87, 109, 186, 107, 163, 137, 108, 107, 164, 138, - 108, 188, 187, 194, 207, 205, 189, 195, 86, 206, - 88, 190, 305, 208, 165, 306, 196, 86, 280, 88, + 108, 188, 187, 194, 248, 205, 189, 195, 86, 206, + 88, 190, 222, 222, 165, 249, 196, 86, 282, 88, 97, 98, 38, 97, 98, 97, 97, 97, 97, 97, 97, 97, 99, 97, 100, 101, 102, 102, 102, 97, 97, 97, 97, 97, 97, 100, 100, 100, 100, 100, 97, 97, 103, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 97, 97, 97, - 97, 79, 247, 209, 80, 79, 84, 82, 80, 358, - - 84, 82, 210, 248, 83, 140, 140, 140, 83, 198, - 85, 211, 176, 177, 85, 176, 202, 374, 141, 359, - 182, 182, 199, 182, 140, 140, 140, 200, 221, 221, - 160, 252, 203, 225, 226, 204, 225, 375, 227, 228, - 159, 227, 178, 166, 141, 263, 86, 253, 110, 264, - 86, 167, 110, 112, 229, 230, 284, 229, 231, 232, - 113, 231, 173, 174, 285, 173, 234, 177, 279, 234, - 114, 113, 113, 113, 113, 113, 183, 278, 278, 113, + 97, 79, 281, 210, 80, 79, 84, 82, 80, 264, + + 84, 82, 211, 265, 83, 140, 140, 140, 83, 198, + 85, 212, 176, 177, 85, 176, 202, 253, 141, 207, + 182, 182, 199, 182, 208, 171, 160, 200, 209, 140, + 140, 140, 203, 254, 225, 204, 159, 226, 227, 166, + 226, 172, 178, 286, 141, 224, 86, 167, 110, 303, + 86, 287, 110, 112, 228, 229, 304, 228, 230, 231, + 113, 230, 232, 233, 223, 232, 173, 174, 589, 173, + 114, 113, 113, 113, 113, 113, 183, 280, 280, 113, 113, 115, 116, 117, 118, 119, 120, 113, 121, 113, 122, 123, 124, 125, 126, 113, 127, 128, 129, 130, - 131, 113, 132, 133, 111, 236, 237, 111, 236, 257, - 111, 240, 163, 111, 111, 241, 164, 135, 135, 301, - 224, 182, 182, 111, 182, 168, 302, 242, 111, 258, - 225, 226, 165, 225, 586, 111, 111, 227, 228, 169, - 227, 171, 259, 229, 230, 223, 229, 231, 232, 170, - 231, 173, 174, 309, 173, 234, 177, 172, 234, 234, - 177, 378, 234, 178, 111, 586, 236, 237, 586, 236, - 310, 586, 303, 401, 586, 586, 222, 183, 410, 304, - 585, 379, 584, 442, 586, 404, 404, 404, 440, 586, - 440, 499, 441, 402, 531, 532, 586, 586, 411, 428, - - 428, 428, 428, 443, 404, 404, 404, 428, 428, 428, - 428, 583, 582, 581, 532, 532, 555, 580, 579, 556, - 429, 543, 543, 543, 543, 586, 147, 578, 429, 147, - 548, 548, 548, 548, 577, 576, 556, 148, 148, 556, - 575, 574, 544, 573, 572, 147, 571, 570, 569, 149, - 568, 549, 147, 567, 566, 150, 151, 565, 564, 563, - 152, 548, 548, 548, 548, 562, 561, 153, 560, 559, - 558, 154, 557, 155, 156, 157, 158, 111, 554, 553, - 111, 552, 549, 111, 551, 550, 111, 111, 547, 546, - 135, 135, 543, 543, 543, 543, 111, 548, 548, 548, - - 548, 111, 545, 542, 541, 540, 539, 538, 111, 111, - 537, 536, 535, 544, 534, 533, 530, 529, 549, 528, - 527, 526, 525, 524, 523, 522, 521, 499, 520, 519, - 518, 517, 516, 515, 514, 513, 512, 111, 218, 218, - 218, 511, 510, 509, 508, 507, 506, 218, 218, 505, - 504, 503, 502, 501, 500, 499, 218, 218, 218, 218, - 218, 218, 58, 58, 58, 58, 58, 58, 58, 58, + 131, 113, 132, 133, 111, 235, 177, 111, 235, 588, + 111, 258, 163, 111, 111, 168, 164, 135, 135, 237, + 238, 587, 237, 111, 182, 182, 241, 182, 111, 169, + 242, 259, 165, 590, 305, 111, 111, 226, 227, 170, + 226, 306, 243, 361, 260, 228, 229, 586, 228, 230, + 231, 585, 230, 232, 233, 311, 232, 173, 174, 584, + 173, 378, 178, 362, 111, 590, 235, 177, 590, 235, + 307, 590, 312, 308, 590, 590, 235, 177, 382, 235, + 183, 379, 237, 238, 590, 237, 405, 414, 446, 590, + 408, 408, 408, 583, 535, 536, 590, 590, 383, 432, + + 432, 432, 432, 444, 582, 445, 406, 415, 447, 432, + 432, 432, 432, 444, 536, 536, 503, 408, 408, 408, + 433, 547, 547, 547, 547, 590, 147, 559, 560, 147, + 433, 581, 552, 552, 552, 552, 580, 148, 148, 579, + 578, 577, 548, 576, 575, 147, 574, 560, 560, 149, + 573, 572, 147, 553, 571, 150, 151, 570, 569, 568, + 152, 552, 552, 552, 552, 567, 566, 153, 565, 564, + 563, 154, 562, 155, 156, 157, 158, 111, 561, 558, + 111, 557, 553, 111, 556, 555, 111, 111, 554, 551, + 135, 135, 547, 547, 547, 547, 111, 552, 552, 552, + + 552, 111, 550, 549, 546, 545, 544, 543, 111, 111, + 542, 541, 540, 548, 539, 538, 537, 534, 553, 533, + 532, 531, 530, 529, 528, 527, 526, 525, 503, 524, + 523, 522, 521, 520, 519, 518, 517, 111, 219, 219, + 219, 516, 515, 514, 513, 512, 511, 219, 219, 510, + 509, 508, 507, 506, 505, 504, 219, 219, 219, 219, + 219, 219, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 105, 105, 111, 497, 496, - 495, 111, 111, 494, 493, 492, 491, 111, 136, 490, - 489, 488, 136, 136, 136, 487, 136, 486, 136, 139, - 139, 485, 139, 146, 146, 146, 146, 146, 146, 146, + 105, 105, 105, 105, 105, 105, 105, 111, 503, 501, + 500, 111, 111, 499, 498, 497, 496, 111, 136, 495, + 494, 493, 136, 136, 136, 492, 136, 491, 136, 139, + 139, 490, 139, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 159, 159, 159, 159, 159, 159, - 159, 484, 159, 159, 159, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 179, 483, 482, 179, 179, 481, - 480, 179, 479, 179, 180, 180, 180, 478, 180, 181, - 181, 181, 477, 181, 216, 216, 476, 216, 216, 216, - - 216, 216, 216, 216, 216, 217, 217, 217, 475, 217, - 498, 498, 474, 498, 498, 498, 498, 498, 498, 498, - 498, 473, 472, 471, 470, 469, 468, 467, 466, 465, - 464, 463, 462, 461, 460, 459, 458, 457, 456, 455, - 454, 453, 452, 451, 450, 449, 448, 447, 446, 445, - 444, 439, 438, 437, 436, 435, 434, 433, 432, 431, - 430, 427, 426, 425, 424, 423, 422, 421, 420, 419, - 418, 417, 416, 415, 414, 413, 412, 409, 408, 407, - 406, 405, 403, 400, 399, 398, 397, 396, 395, 394, - 393, 392, 391, 390, 389, 388, 387, 386, 385, 384, - - 383, 382, 381, 380, 377, 376, 373, 372, 371, 370, - 367, 366, 365, 364, 363, 362, 361, 360, 357, 356, - 355, 354, 353, 352, 351, 350, 349, 348, 347, 346, - 343, 342, 341, 340, 339, 338, 337, 336, 335, 334, - 333, 332, 331, 330, 329, 328, 327, 324, 323, 322, - 321, 320, 319, 318, 317, 316, 315, 314, 313, 312, - 311, 308, 307, 300, 299, 298, 297, 296, 295, 294, - 293, 292, 291, 290, 289, 288, 287, 286, 283, 282, - 281, 277, 276, 275, 274, 273, 272, 271, 270, 269, - 268, 267, 266, 265, 262, 261, 260, 256, 255, 254, - - 251, 250, 249, 246, 245, 244, 243, 239, 238, 235, - 233, 161, 160, 220, 219, 215, 214, 213, 212, 201, - 197, 193, 192, 191, 185, 184, 144, 144, 162, 160, - 161, 160, 144, 145, 144, 134, 586, 104, 59, 59, - 57, 35, 586, 586, 586, 586, 586, 586, 586, 586, - 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, - 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, - 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, - 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, - 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, - - 586, 586, 586 + 159, 489, 159, 159, 159, 175, 175, 175, 175, 175, + 175, 175, 175, 175, 179, 488, 487, 179, 179, 486, + 485, 179, 484, 179, 180, 180, 180, 483, 180, 181, + 181, 181, 482, 181, 217, 217, 481, 217, 217, 217, + + 217, 217, 217, 217, 217, 218, 218, 218, 480, 218, + 502, 502, 479, 502, 502, 502, 502, 502, 502, 502, + 502, 478, 477, 476, 475, 474, 473, 472, 471, 470, + 469, 468, 467, 466, 465, 464, 463, 462, 461, 460, + 459, 458, 457, 456, 455, 454, 453, 452, 451, 450, + 449, 448, 443, 442, 441, 440, 439, 438, 437, 436, + 435, 434, 431, 430, 429, 428, 427, 426, 425, 424, + 423, 422, 421, 420, 419, 418, 417, 416, 413, 412, + 411, 410, 409, 407, 404, 403, 402, 401, 400, 399, + 398, 397, 396, 395, 394, 393, 392, 391, 390, 389, + + 388, 387, 386, 385, 384, 381, 380, 377, 376, 375, + 374, 371, 370, 369, 368, 367, 366, 365, 364, 363, + 360, 359, 358, 357, 356, 355, 354, 353, 352, 351, + 350, 349, 346, 345, 344, 343, 342, 341, 340, 339, + 338, 337, 336, 335, 334, 333, 332, 331, 330, 327, + 326, 325, 324, 323, 322, 321, 320, 319, 318, 317, + 316, 315, 314, 313, 310, 309, 302, 301, 300, 299, + 298, 297, 296, 295, 294, 293, 292, 291, 290, 289, + 288, 285, 284, 283, 279, 278, 277, 276, 275, 274, + 273, 272, 271, 270, 269, 268, 267, 266, 263, 262, + + 261, 257, 256, 255, 252, 251, 250, 247, 246, 245, + 244, 240, 239, 236, 234, 161, 160, 221, 220, 216, + 215, 214, 213, 201, 197, 193, 192, 191, 185, 184, + 144, 144, 162, 160, 161, 160, 144, 145, 144, 134, + 590, 104, 59, 59, 57, 35, 590, 590, 590, 590, + 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, + 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, + 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, + 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, + 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, + + 590, 590, 590, 590, 590, 590, 590 } ; -static yyconst flex_int16_t yy_chk[1104] = +static yyconst flex_int16_t yy_chk[1108] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -881,121 +881,121 @@ static yyconst flex_int16_t yy_chk[1104] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 7, 5, 6, 8, 9, 9, 7, - 9, 21, 8, 22, 23, 611, 24, 89, 9, 11, + 9, 21, 8, 22, 23, 615, 24, 89, 9, 11, 21, 9, 22, 10, 10, 9, 10, 11, 10, 11, 5, 6, 7, 89, 10, 8, 9, 10, 12, 91, 91, 10, 91, 23, 13, 24, 12, 13, 12, 13, 13, 25, 10, 26, 25, 84, 26, 13, 51, 5, 6, 7, 14, 84, 8, 14, 11, 14, 14, 47, - 51, 15, 27, 47, 15, 14, 15, 15, 27, 300, + 51, 15, 27, 47, 15, 14, 15, 15, 27, 302, 25, 28, 26, 16, 15, 12, 16, 28, 16, 16, - 15, 17, 18, 610, 17, 18, 16, 17, 18, 300, + 15, 17, 18, 614, 17, 18, 16, 17, 18, 302, 85, 27, 16, 19, 17, 18, 19, 70, 19, 19, 28, 70, 20, 75, 85, 20, 19, 20, 20, 49, - 49, 49, 19, 75, 85, 20, 15, 609, 15, 608, + 49, 49, 19, 75, 85, 20, 15, 613, 15, 612, 101, 20, 31, 31, 101, 31, 32, 32, 16, 32, 16, 32, 117, 31, 83, 108, 31, 32, 83, 108, - 32, 118, 117, 122, 128, 127, 118, 122, 19, 127, - 19, 118, 259, 128, 83, 259, 122, 20, 607, 20, + 32, 118, 117, 122, 191, 127, 118, 122, 19, 127, + 19, 118, 148, 148, 83, 191, 122, 20, 611, 20, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, - 29, 33, 191, 129, 33, 34, 33, 33, 34, 313, - - 34, 34, 129, 191, 33, 48, 48, 48, 34, 124, - 33, 129, 94, 94, 34, 94, 126, 334, 48, 313, - 114, 114, 124, 114, 140, 140, 140, 124, 148, 148, - 160, 195, 126, 165, 165, 126, 165, 334, 167, 167, - 160, 167, 94, 228, 48, 203, 33, 195, 33, 203, - 34, 228, 34, 40, 170, 170, 241, 170, 172, 172, - 40, 172, 173, 173, 241, 173, 176, 176, 606, 176, - 40, 40, 40, 40, 40, 40, 114, 221, 221, 40, + 29, 33, 610, 129, 33, 34, 33, 33, 34, 203, + + 34, 34, 129, 203, 33, 48, 48, 48, 34, 124, + 33, 129, 94, 94, 34, 94, 126, 195, 48, 128, + 114, 114, 124, 114, 128, 233, 160, 124, 128, 140, + 140, 140, 126, 195, 609, 126, 160, 165, 165, 229, + 165, 233, 94, 242, 48, 608, 33, 229, 33, 258, + 34, 242, 34, 40, 167, 167, 258, 167, 170, 170, + 40, 170, 172, 172, 607, 172, 173, 173, 588, 173, + 40, 40, 40, 40, 40, 40, 114, 222, 222, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 46, 178, 178, 46, 178, 199, - 46, 186, 226, 46, 46, 186, 226, 46, 46, 257, - 605, 182, 182, 46, 182, 230, 257, 186, 46, 199, - 225, 225, 226, 225, 237, 46, 46, 227, 227, 230, - 227, 232, 199, 229, 229, 604, 229, 231, 231, 230, - 231, 233, 233, 262, 233, 234, 234, 232, 234, 235, - 235, 337, 235, 237, 46, 53, 236, 236, 53, 236, - 262, 53, 258, 364, 53, 53, 603, 182, 376, 258, - 584, 337, 583, 405, 53, 367, 367, 367, 499, 53, - 404, 499, 404, 364, 512, 513, 53, 53, 376, 393, - - 393, 393, 393, 405, 404, 404, 404, 428, 428, 428, - 428, 582, 581, 580, 512, 513, 545, 577, 576, 546, - 393, 525, 525, 525, 525, 53, 63, 575, 428, 63, - 529, 529, 529, 529, 574, 573, 545, 63, 63, 546, - 572, 571, 525, 568, 567, 63, 566, 565, 564, 63, - 562, 529, 63, 561, 560, 63, 63, 559, 558, 557, - 63, 530, 530, 530, 530, 556, 555, 63, 552, 551, - 550, 63, 547, 63, 63, 63, 63, 135, 542, 541, - 135, 533, 530, 135, 532, 531, 135, 135, 528, 527, - 135, 135, 543, 543, 543, 543, 135, 548, 548, 548, - - 548, 135, 526, 524, 523, 522, 521, 520, 135, 135, - 519, 518, 517, 543, 515, 514, 511, 510, 548, 509, - 507, 506, 505, 504, 503, 501, 500, 498, 497, 496, - 495, 494, 493, 492, 491, 490, 489, 135, 141, 141, - 141, 488, 487, 484, 483, 482, 481, 141, 141, 480, - 477, 476, 475, 474, 473, 472, 141, 141, 141, 141, - 141, 141, 587, 587, 587, 587, 587, 587, 587, 587, - 587, 587, 587, 588, 588, 588, 588, 588, 588, 588, - 588, 588, 588, 588, 589, 589, 589, 589, 589, 589, - 589, 589, 589, 589, 589, 590, 590, 590, 590, 590, - - 590, 590, 590, 590, 590, 590, 591, 591, 591, 591, - 591, 591, 591, 591, 591, 591, 591, 592, 471, 470, - 468, 592, 592, 467, 466, 465, 464, 592, 593, 461, - 459, 458, 593, 593, 593, 457, 593, 456, 593, 594, - 594, 455, 594, 595, 595, 595, 595, 595, 595, 595, - 595, 595, 595, 595, 596, 596, 596, 596, 596, 596, - 596, 453, 596, 596, 596, 597, 597, 597, 597, 597, - 597, 597, 597, 597, 598, 452, 451, 598, 598, 450, - 449, 598, 448, 598, 599, 599, 599, 447, 599, 600, - 600, 600, 446, 600, 601, 601, 445, 601, 601, 601, - - 601, 601, 601, 601, 601, 602, 602, 602, 444, 602, - 612, 612, 443, 612, 612, 612, 612, 612, 612, 612, - 612, 442, 441, 438, 437, 436, 434, 433, 431, 430, - 427, 426, 425, 424, 423, 422, 421, 420, 419, 418, - 417, 416, 415, 414, 413, 412, 411, 410, 409, 408, - 407, 403, 402, 401, 400, 399, 398, 397, 396, 395, - 394, 392, 391, 390, 389, 388, 387, 386, 385, 384, - 383, 382, 381, 380, 379, 378, 377, 375, 374, 373, - 372, 371, 366, 362, 360, 359, 358, 357, 356, 355, - 353, 351, 350, 349, 348, 347, 346, 345, 344, 342, - - 341, 340, 339, 338, 336, 335, 331, 330, 329, 327, - 324, 322, 321, 319, 317, 316, 315, 314, 312, 311, - 310, 309, 308, 307, 306, 305, 304, 303, 302, 301, - 299, 298, 297, 295, 294, 293, 292, 291, 290, 289, - 288, 287, 286, 285, 284, 283, 281, 277, 275, 274, - 273, 272, 271, 270, 269, 268, 267, 266, 265, 264, - 263, 261, 260, 256, 255, 254, 253, 252, 251, 250, - 249, 248, 247, 246, 245, 244, 243, 242, 240, 239, - 238, 220, 215, 214, 213, 212, 211, 210, 209, 208, - 207, 206, 205, 204, 202, 201, 200, 198, 197, 196, - - 194, 193, 192, 190, 189, 188, 187, 185, 184, 177, - 174, 161, 159, 144, 142, 134, 132, 131, 130, 125, - 123, 121, 120, 119, 116, 115, 109, 104, 81, 78, - 76, 74, 73, 59, 57, 42, 35, 30, 4, 3, - 2, 586, 586, 586, 586, 586, 586, 586, 586, 586, - 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, - 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, - 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, - 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, - 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, - - 586, 586, 586 + 40, 40, 40, 40, 46, 176, 176, 46, 176, 587, + 46, 199, 227, 46, 46, 231, 227, 46, 46, 178, + 178, 586, 178, 46, 182, 182, 186, 182, 46, 231, + 186, 199, 227, 238, 259, 46, 46, 226, 226, 231, + 226, 259, 186, 315, 199, 228, 228, 585, 228, 230, + 230, 584, 230, 232, 232, 263, 232, 234, 234, 581, + 234, 337, 238, 315, 46, 53, 235, 235, 53, 235, + 260, 53, 263, 260, 53, 53, 236, 236, 340, 236, + 182, 337, 237, 237, 53, 237, 368, 380, 409, 53, + 371, 371, 371, 580, 516, 517, 53, 53, 340, 397, + + 397, 397, 397, 408, 579, 408, 368, 380, 409, 432, + 432, 432, 432, 503, 516, 517, 503, 408, 408, 408, + 397, 529, 529, 529, 529, 53, 63, 549, 550, 63, + 432, 578, 533, 533, 533, 533, 577, 63, 63, 576, + 575, 572, 529, 571, 570, 63, 569, 549, 550, 63, + 568, 566, 63, 533, 565, 63, 63, 564, 563, 562, + 63, 534, 534, 534, 534, 561, 560, 63, 559, 556, + 555, 63, 554, 63, 63, 63, 63, 135, 551, 546, + 135, 545, 534, 135, 537, 536, 135, 135, 535, 532, + 135, 135, 547, 547, 547, 547, 135, 552, 552, 552, + + 552, 135, 531, 530, 528, 527, 526, 525, 135, 135, + 524, 523, 522, 547, 521, 519, 518, 515, 552, 514, + 513, 511, 510, 509, 508, 507, 505, 504, 502, 501, + 500, 499, 498, 497, 496, 495, 494, 135, 141, 141, + 141, 493, 492, 491, 488, 487, 486, 141, 141, 485, + 484, 481, 480, 479, 478, 477, 141, 141, 141, 141, + 141, 141, 591, 591, 591, 591, 591, 591, 591, 591, + 591, 591, 591, 592, 592, 592, 592, 592, 592, 592, + 592, 592, 592, 592, 593, 593, 593, 593, 593, 593, + 593, 593, 593, 593, 593, 594, 594, 594, 594, 594, + + 594, 594, 594, 594, 594, 594, 595, 595, 595, 595, + 595, 595, 595, 595, 595, 595, 595, 596, 476, 475, + 474, 596, 596, 472, 471, 470, 469, 596, 597, 468, + 465, 463, 597, 597, 597, 462, 597, 461, 597, 598, + 598, 460, 598, 599, 599, 599, 599, 599, 599, 599, + 599, 599, 599, 599, 600, 600, 600, 600, 600, 600, + 600, 459, 600, 600, 600, 601, 601, 601, 601, 601, + 601, 601, 601, 601, 602, 457, 456, 602, 602, 455, + 454, 602, 453, 602, 603, 603, 603, 452, 603, 604, + 604, 604, 451, 604, 605, 605, 450, 605, 605, 605, + + 605, 605, 605, 605, 605, 606, 606, 606, 449, 606, + 616, 616, 448, 616, 616, 616, 616, 616, 616, 616, + 616, 447, 446, 445, 442, 441, 440, 438, 437, 435, + 434, 431, 430, 429, 428, 427, 426, 425, 424, 423, + 422, 421, 420, 419, 418, 417, 416, 415, 414, 413, + 412, 411, 407, 406, 405, 404, 403, 402, 401, 400, + 399, 398, 396, 395, 394, 393, 392, 391, 390, 389, + 388, 387, 386, 385, 384, 383, 382, 381, 379, 378, + 377, 376, 375, 370, 365, 363, 362, 361, 360, 359, + 358, 356, 354, 353, 352, 351, 350, 349, 348, 347, + + 345, 344, 343, 342, 341, 339, 338, 334, 333, 332, + 330, 327, 325, 324, 322, 320, 319, 318, 317, 316, + 314, 313, 312, 311, 310, 309, 308, 307, 306, 305, + 304, 303, 301, 300, 299, 297, 296, 295, 294, 293, + 292, 291, 290, 289, 288, 287, 286, 285, 283, 279, + 277, 276, 275, 274, 273, 272, 271, 270, 269, 268, + 267, 266, 265, 264, 262, 261, 257, 256, 255, 254, + 253, 252, 251, 250, 249, 248, 247, 246, 245, 244, + 243, 241, 240, 239, 221, 216, 215, 214, 213, 212, + 211, 210, 209, 208, 207, 206, 205, 204, 202, 201, + + 200, 198, 197, 196, 194, 193, 192, 190, 189, 188, + 187, 185, 184, 177, 174, 161, 159, 144, 142, 134, + 132, 131, 130, 125, 123, 121, 120, 119, 116, 115, + 109, 104, 81, 78, 76, 74, 73, 59, 57, 42, + 35, 30, 4, 3, 2, 590, 590, 590, 590, 590, + 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, + 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, + 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, + 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, + 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, + + 590, 590, 590, 590, 590, 590, 590 } ; static yy_state_type yy_last_accepting_state; @@ -1004,23 +1004,23 @@ static char *yy_last_accepting_cpos; extern int gram__flex_debug; int gram__flex_debug = 1; -static yyconst flex_int16_t yy_rule_linenum[133] = +static yyconst flex_int16_t yy_rule_linenum[134] = { 0, 201, 204, 205, 206, 214, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, - 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 291, 295, 296, 297, 299, 311, 325, 342, 347, - 350, 353, 356, 368, 379, 388, 393, 394, 395, 405, - 419, 426, 446, 456, 471, 481, 508, 521, 537, 552, - 569, 570, 581, 592, 593, 605, 621, 631, 658, 670, - - 692, 693, 704, 719, 735, 736, 737, 738, 739, 740, - 741, 744, 746, 760, 778, 783, 784, 790, 791, 803, - 809, 815, 821, 838, 839, 843, 850, 875, 901, 929, - 976, 978 + 267, 268, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 293, 297, 298, 299, 301, 313, 327, 344, + 349, 352, 355, 358, 370, 381, 390, 395, 396, 397, + 407, 421, 428, 448, 458, 473, 483, 510, 523, 539, + 554, 571, 572, 583, 594, 595, 607, 623, 633, 660, + + 672, 694, 695, 706, 721, 737, 738, 739, 740, 741, + 742, 743, 746, 748, 762, 780, 785, 786, 792, 793, + 805, 811, 817, 823, 840, 841, 845, 852, 877, 903, + 931, 978, 980 } ; /* The intent behind this definition is that it'll catch @@ -1549,13 +1549,13 @@ yy_match: while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 587 ) + if ( yy_current_state >= 591 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } - while ( yy_current_state != 586 ); + while ( yy_current_state != 590 ); yy_cp = (yy_last_accepting_cpos); yy_current_state = (yy_last_accepting_state); @@ -1574,13 +1574,13 @@ do_action: /* This label is used only to access EOF actions. */ { if ( yy_act == 0 ) fprintf( stderr, "--scanner backing up\n" ); - else if ( yy_act < 133 ) + else if ( yy_act < 134 ) fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n", (long)yy_rule_linenum[yy_act], gram_text ); - else if ( yy_act == 133 ) + else if ( yy_act == 134 ) fprintf( stderr, "--accepting default rule (\"%s\")\n", gram_text ); - else if ( yy_act == 134 ) + else if ( yy_act == 135 ) fprintf( stderr, "--(end of buffer or a NUL)\n" ); else fprintf( stderr, "--EOF (start condition %d)\n", YY_START ); @@ -1828,130 +1828,136 @@ YY_RULE_SETUP #line 268 "src/scan-gram.l" return PERCENT_SKELETON; YY_BREAK +/* Nick added %space */ case 43: YY_RULE_SETUP -#line 269 "src/scan-gram.l" -return PERCENT_START; +#line 270 "src/scan-gram.l" +return PERCENT_SPACE; YY_BREAK case 44: YY_RULE_SETUP -#line 270 "src/scan-gram.l" -return PERCENT_TOKEN; +#line 271 "src/scan-gram.l" +return PERCENT_START; YY_BREAK case 45: YY_RULE_SETUP -#line 271 "src/scan-gram.l" +#line 272 "src/scan-gram.l" return PERCENT_TOKEN; YY_BREAK case 46: YY_RULE_SETUP -#line 272 "src/scan-gram.l" -return PERCENT_TOKEN_TABLE; +#line 273 "src/scan-gram.l" +return PERCENT_TOKEN; YY_BREAK case 47: YY_RULE_SETUP -#line 273 "src/scan-gram.l" -return PERCENT_TYPE; +#line 274 "src/scan-gram.l" +return PERCENT_TOKEN_TABLE; YY_BREAK case 48: YY_RULE_SETUP -#line 274 "src/scan-gram.l" -return PERCENT_UNION; +#line 275 "src/scan-gram.l" +return PERCENT_TYPE; YY_BREAK case 49: YY_RULE_SETUP -#line 275 "src/scan-gram.l" -return PERCENT_VERBOSE; +#line 276 "src/scan-gram.l" +return PERCENT_UNION; YY_BREAK case 50: YY_RULE_SETUP -#line 276 "src/scan-gram.l" -return PERCENT_YACC; +#line 277 "src/scan-gram.l" +return PERCENT_VERBOSE; YY_BREAK -/* deprecated */ case 51: YY_RULE_SETUP -#line 279 "src/scan-gram.l" -DEPRECATED("%default-prec"); +#line 278 "src/scan-gram.l" +return PERCENT_YACC; YY_BREAK +/* deprecated */ case 52: YY_RULE_SETUP -#line 280 "src/scan-gram.l" -DEPRECATED("%define parse.error verbose"); +#line 281 "src/scan-gram.l" +DEPRECATED("%default-prec"); YY_BREAK case 53: YY_RULE_SETUP -#line 281 "src/scan-gram.l" -DEPRECATED("%expect-rr"); +#line 282 "src/scan-gram.l" +DEPRECATED("%define parse.error verbose"); YY_BREAK case 54: -/* rule 54 can match eol */ YY_RULE_SETUP -#line 282 "src/scan-gram.l" -DEPRECATED("%file-prefix"); +#line 283 "src/scan-gram.l" +DEPRECATED("%expect-rr"); YY_BREAK case 55: +/* rule 55 can match eol */ YY_RULE_SETUP -#line 283 "src/scan-gram.l" -DEPRECATED("%fixed-output-files"); +#line 284 "src/scan-gram.l" +DEPRECATED("%file-prefix"); YY_BREAK case 56: -/* rule 56 can match eol */ YY_RULE_SETUP -#line 284 "src/scan-gram.l" -DEPRECATED("%name-prefix"); +#line 285 "src/scan-gram.l" +DEPRECATED("%fixed-output-files"); YY_BREAK case 57: +/* rule 57 can match eol */ YY_RULE_SETUP -#line 285 "src/scan-gram.l" -DEPRECATED("%no-default-prec"); +#line 286 "src/scan-gram.l" +DEPRECATED("%name-prefix"); YY_BREAK case 58: YY_RULE_SETUP -#line 286 "src/scan-gram.l" -DEPRECATED("%no-lines"); +#line 287 "src/scan-gram.l" +DEPRECATED("%no-default-prec"); YY_BREAK case 59: -/* rule 59 can match eol */ YY_RULE_SETUP -#line 287 "src/scan-gram.l" -DEPRECATED("%output"); +#line 288 "src/scan-gram.l" +DEPRECATED("%no-lines"); YY_BREAK case 60: +/* rule 60 can match eol */ YY_RULE_SETUP -#line 288 "src/scan-gram.l" -DEPRECATED("%pure-parser"); +#line 289 "src/scan-gram.l" +DEPRECATED("%output"); YY_BREAK case 61: YY_RULE_SETUP -#line 289 "src/scan-gram.l" -DEPRECATED("%token-table"); +#line 290 "src/scan-gram.l" +DEPRECATED("%pure-parser"); YY_BREAK case 62: YY_RULE_SETUP #line 291 "src/scan-gram.l" +DEPRECATED("%token-table"); + YY_BREAK +case 63: +YY_RULE_SETUP +#line 293 "src/scan-gram.l" { complain (loc, complaint, _("invalid directive: %s"), quote (gram_text)); } YY_BREAK -case 63: +case 64: YY_RULE_SETUP -#line 295 "src/scan-gram.l" +#line 297 "src/scan-gram.l" return EQUAL; YY_BREAK -case 64: +case 65: YY_RULE_SETUP -#line 296 "src/scan-gram.l" +#line 298 "src/scan-gram.l" return PIPE; YY_BREAK -case 65: +case 66: YY_RULE_SETUP -#line 297 "src/scan-gram.l" +#line 299 "src/scan-gram.l" return SEMICOLON; YY_BREAK -case 66: +case 67: YY_RULE_SETUP -#line 299 "src/scan-gram.l" +#line 301 "src/scan-gram.l" { val->uniqstr = uniqstr_new (gram_text); id_loc = *loc; @@ -1964,9 +1970,9 @@ YY_RULE_SETUP gram_piece_pack(); } YY_BREAK -case 67: +case 68: YY_RULE_SETUP -#line 311 "src/scan-gram.l" +#line 313 "src/scan-gram.l" { val->integer = scan_integer (gram_text, 10, *loc); #if 0 @@ -1982,9 +1988,9 @@ YY_RULE_SETUP #endif } YY_BREAK -case 68: +case 69: YY_RULE_SETUP -#line 325 "src/scan-gram.l" +#line 327 "src/scan-gram.l" { val->integer = scan_integer (gram_text, 16, *loc); #if 0 @@ -2002,35 +2008,35 @@ YY_RULE_SETUP YY_BREAK /* Identifiers may not start with a digit. Yet, don't silently accept "1FOO" as "1 FOO". */ -case 69: +case 70: YY_RULE_SETUP -#line 342 "src/scan-gram.l" +#line 344 "src/scan-gram.l" { complain (loc, complaint, _("invalid identifier: %s"), quote (gram_text)); } YY_BREAK /* Characters. */ -case 70: +case 71: YY_RULE_SETUP -#line 347 "src/scan-gram.l" +#line 349 "src/scan-gram.l" token_start = loc->start; BEGIN SC_ESCAPED_CHARACTER; gram_piece_pack(); gram_piece_append(""); gram_piece_flush(strlen(gram_text)); gram_piece_append(""); YY_BREAK /* Strings. */ -case 71: +case 72: YY_RULE_SETUP -#line 350 "src/scan-gram.l" +#line 352 "src/scan-gram.l" token_start = loc->start; BEGIN SC_ESCAPED_STRING; gram_piece_pack(); gram_piece_append(""); gram_piece_flush(strlen(gram_text)); gram_piece_append(""); YY_BREAK /* Prologue. */ -case 72: +case 73: YY_RULE_SETUP -#line 353 "src/scan-gram.l" +#line 355 "src/scan-gram.l" code_start = loc->start; BEGIN SC_PROLOGUE; gram_piece_pack(); gram_piece_append(""); gram_piece_flush(strlen(gram_text)); gram_piece_append(""); YY_BREAK /* Code in between braces. */ -case 73: +case 74: YY_RULE_SETUP -#line 356 "src/scan-gram.l" +#line 358 "src/scan-gram.l" { STRING_GROW; nesting = 0; @@ -2043,10 +2049,10 @@ YY_RULE_SETUP } YY_BREAK /* Semantic predicate. */ -case 74: -/* rule 74 can match eol */ +case 75: +/* rule 75 can match eol */ YY_RULE_SETUP -#line 368 "src/scan-gram.l" +#line 370 "src/scan-gram.l" { nesting = 0; code_start = loc->start; @@ -2058,9 +2064,9 @@ YY_RULE_SETUP } YY_BREAK /* Nick extra rules for element groups */ -case 75: +case 76: YY_RULE_SETUP -#line 379 "src/scan-gram.l" +#line 381 "src/scan-gram.l" { STRING_GROW; nesting = 0; @@ -2071,27 +2077,27 @@ YY_RULE_SETUP gram_piece_append(""); } YY_BREAK -case 76: +case 77: YY_RULE_SETUP -#line 388 "src/scan-gram.l" +#line 390 "src/scan-gram.l" { return ')'; } YY_BREAK /* A type. */ -case 77: +case 78: YY_RULE_SETUP -#line 393 "src/scan-gram.l" +#line 395 "src/scan-gram.l" gram_piece_pack(); gram_piece_append("<*>"); return ~TAG_ANY; /*return TAG_ANY;*/ YY_BREAK -case 78: +case 79: YY_RULE_SETUP -#line 394 "src/scan-gram.l" +#line 396 "src/scan-gram.l" gram_piece_pack(); gram_piece_append("<>"); return ~TAG_NONE; /*return TAG_NONE;*/ YY_BREAK -case 79: +case 80: YY_RULE_SETUP -#line 395 "src/scan-gram.l" +#line 397 "src/scan-gram.l" { nesting = 0; token_start = loc->start; @@ -2102,9 +2108,9 @@ YY_RULE_SETUP gram_piece_append(""); } YY_BREAK -case 80: +case 81: YY_RULE_SETUP -#line 405 "src/scan-gram.l" +#line 407 "src/scan-gram.l" { static int percent_percent_count; if (++percent_percent_count == 2) @@ -2119,9 +2125,9 @@ YY_RULE_SETUP return PERCENT_PERCENT; } YY_BREAK -case 81: +case 82: YY_RULE_SETUP -#line 419 "src/scan-gram.l" +#line 421 "src/scan-gram.l" { bracketed_id_str = NULL; bracketed_id_start = loc->start; @@ -2129,9 +2135,9 @@ YY_RULE_SETUP BEGIN SC_BRACKETED_ID; } YY_BREAK -case 82: +case 83: YY_RULE_SETUP -#line 426 "src/scan-gram.l" +#line 428 "src/scan-gram.l" { complain (loc, complaint, "%s: %s", ngettext ("invalid character", "invalid characters", gram_leng), @@ -2139,7 +2145,7 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(INITIAL): -#line 432 "src/scan-gram.l" +#line 434 "src/scan-gram.l" { loc->start = loc->end = scanner_cursor; yyterminate (); @@ -2152,9 +2158,9 @@ case YY_STATE_EOF(INITIAL): `--------------------------------------------------------------*/ -case 83: +case 84: YY_RULE_SETUP -#line 446 "src/scan-gram.l" +#line 448 "src/scan-gram.l" complain (loc, complaint, _("invalid null character")); YY_BREAK @@ -2163,9 +2169,9 @@ complain (loc, complaint, _("invalid null character")); `-----------------------------------------------------------------*/ -case 84: +case 85: YY_RULE_SETUP -#line 456 "src/scan-gram.l" +#line 458 "src/scan-gram.l" { if (bracketed_id_str) { @@ -2182,9 +2188,9 @@ YY_RULE_SETUP } } YY_BREAK -case 85: +case 86: YY_RULE_SETUP -#line 471 "src/scan-gram.l" +#line 473 "src/scan-gram.l" { BEGIN (bracketed_id_str ? SC_RETURN_BRACKETED_ID : INITIAL); *loc = id_loc; @@ -2196,9 +2202,9 @@ YY_RULE_SETUP #endif } YY_BREAK -case 86: +case 87: YY_RULE_SETUP -#line 481 "src/scan-gram.l" +#line 483 "src/scan-gram.l" { ROLLBACK_CURRENT_TOKEN; BEGIN (bracketed_id_str ? SC_RETURN_BRACKETED_ID : INITIAL); @@ -2211,7 +2217,7 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(SC_AFTER_IDENTIFIER): -#line 491 "src/scan-gram.l" +#line 493 "src/scan-gram.l" { BEGIN (bracketed_id_str ? SC_RETURN_BRACKETED_ID : INITIAL); *loc = id_loc; @@ -2228,9 +2234,9 @@ case YY_STATE_EOF(SC_AFTER_IDENTIFIER): `--------------------------------*/ -case 87: +case 88: YY_RULE_SETUP -#line 508 "src/scan-gram.l" +#line 510 "src/scan-gram.l" { if (bracketed_id_str) { @@ -2245,9 +2251,9 @@ YY_RULE_SETUP } } YY_BREAK -case 88: +case 89: YY_RULE_SETUP -#line 521 "src/scan-gram.l" +#line 523 "src/scan-gram.l" { BEGIN bracketed_id_context_state; if (bracketed_id_str) @@ -2264,9 +2270,9 @@ YY_RULE_SETUP complain (loc, complaint, _("an identifier expected")); } YY_BREAK -case 89: +case 90: YY_RULE_SETUP -#line 537 "src/scan-gram.l" +#line 539 "src/scan-gram.l" { complain (loc, complaint, "%s: %s", ngettext ("invalid character in bracketed name", @@ -2275,7 +2281,7 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(SC_BRACKETED_ID): -#line 544 "src/scan-gram.l" +#line 546 "src/scan-gram.l" { BEGIN bracketed_id_context_state; unexpected_eof (bracketed_id_start, "]"); @@ -2284,9 +2290,9 @@ case YY_STATE_EOF(SC_BRACKETED_ID): -case 90: +case 91: YY_RULE_SETUP -#line 552 "src/scan-gram.l" +#line 554 "src/scan-gram.l" { ROLLBACK_CURRENT_TOKEN; val->uniqstr = bracketed_id_str; @@ -2302,19 +2308,19 @@ YY_RULE_SETUP `---------------------------------------------------------------*/ -case 91: +case 92: YY_RULE_SETUP -#line 569 "src/scan-gram.l" +#line 571 "src/scan-gram.l" BEGIN context_state; YY_BREAK -case 92: -/* rule 92 can match eol */ +case 93: +/* rule 93 can match eol */ YY_RULE_SETUP -#line 570 "src/scan-gram.l" +#line 572 "src/scan-gram.l" continue; YY_BREAK case YY_STATE_EOF(SC_YACC_COMMENT): -#line 571 "src/scan-gram.l" +#line 573 "src/scan-gram.l" unexpected_eof (token_start, "*/"); BEGIN context_state; YY_BREAK @@ -2323,14 +2329,14 @@ unexpected_eof (token_start, "*/"); BEGIN context_state; `------------------------------------------------------------*/ -case 93: -/* rule 93 can match eol */ +case 94: +/* rule 94 can match eol */ YY_RULE_SETUP -#line 581 "src/scan-gram.l" +#line 583 "src/scan-gram.l" STRING_GROW; BEGIN context_state; YY_BREAK case YY_STATE_EOF(SC_COMMENT): -#line 582 "src/scan-gram.l" +#line 584 "src/scan-gram.l" unexpected_eof (token_start, "*/"); BEGIN context_state; YY_BREAK @@ -2339,20 +2345,20 @@ unexpected_eof (token_start, "*/"); BEGIN context_state; `--------------------------------------------------------------*/ -case 94: -/* rule 94 can match eol */ +case 95: +/* rule 95 can match eol */ YY_RULE_SETUP -#line 592 "src/scan-gram.l" +#line 594 "src/scan-gram.l" STRING_GROW; BEGIN context_state; YY_BREAK -case 95: -/* rule 95 can match eol */ +case 96: +/* rule 96 can match eol */ YY_RULE_SETUP -#line 593 "src/scan-gram.l" +#line 595 "src/scan-gram.l" STRING_GROW; YY_BREAK case YY_STATE_EOF(SC_LINE_COMMENT): -#line 594 "src/scan-gram.l" +#line 596 "src/scan-gram.l" BEGIN context_state; YY_BREAK @@ -2362,9 +2368,9 @@ BEGIN context_state; `------------------------------------------------*/ -case 96: +case 97: YY_RULE_SETUP -#line 605 "src/scan-gram.l" +#line 607 "src/scan-gram.l" { STRING_FINISH; loc->start = token_start; @@ -2382,13 +2388,13 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(SC_ESCAPED_STRING): -#line 620 "src/scan-gram.l" +#line 622 "src/scan-gram.l" unexpected_eof (token_start, "\""); YY_BREAK -case 97: -/* rule 97 can match eol */ +case 98: +/* rule 98 can match eol */ YY_RULE_SETUP -#line 621 "src/scan-gram.l" +#line 623 "src/scan-gram.l" unexpected_newline (token_start, "\""); YY_BREAK @@ -2398,9 +2404,9 @@ unexpected_newline (token_start, "\""); `----------------------------------------------------------*/ -case 98: +case 99: YY_RULE_SETUP -#line 631 "src/scan-gram.l" +#line 633 "src/scan-gram.l" { STRING_FINISH; loc->start = token_start; @@ -2429,14 +2435,14 @@ YY_RULE_SETUP #endif } YY_BREAK -case 99: -/* rule 99 can match eol */ +case 100: +/* rule 100 can match eol */ YY_RULE_SETUP -#line 658 "src/scan-gram.l" +#line 660 "src/scan-gram.l" unexpected_newline (token_start, "'"); YY_BREAK case YY_STATE_EOF(SC_ESCAPED_CHARACTER): -#line 659 "src/scan-gram.l" +#line 661 "src/scan-gram.l" unexpected_eof (token_start, "'"); YY_BREAK @@ -2445,9 +2451,9 @@ unexpected_eof (token_start, "'"); `--------------------------------------------------------------*/ -case 100: +case 101: YY_RULE_SETUP -#line 670 "src/scan-gram.l" +#line 672 "src/scan-gram.l" { --nesting; if (nesting < 0) @@ -2470,19 +2476,19 @@ YY_RULE_SETUP STRING_GROW; } YY_BREAK -case 101: -/* rule 101 can match eol */ +case 102: +/* rule 102 can match eol */ YY_RULE_SETUP -#line 692 "src/scan-gram.l" +#line 694 "src/scan-gram.l" STRING_GROW; YY_BREAK -case 102: +case 103: YY_RULE_SETUP -#line 693 "src/scan-gram.l" +#line 695 "src/scan-gram.l" STRING_GROW; nesting += gram_leng; YY_BREAK case YY_STATE_EOF(SC_TAG): -#line 695 "src/scan-gram.l" +#line 697 "src/scan-gram.l" unexpected_eof (token_start, ">"); YY_BREAK @@ -2491,9 +2497,9 @@ unexpected_eof (token_start, ">"); `----------------------------*/ -case 103: +case 104: YY_RULE_SETUP -#line 704 "src/scan-gram.l" +#line 706 "src/scan-gram.l" { unsigned long int c = strtoul (gram_text + 1, NULL, 8); if (!c || UCHAR_MAX < c) @@ -2509,9 +2515,9 @@ YY_RULE_SETUP } } YY_BREAK -case 104: +case 105: YY_RULE_SETUP -#line 719 "src/scan-gram.l" +#line 721 "src/scan-gram.l" { verify (UCHAR_MAX < ULONG_MAX); unsigned long int c = strtoul (gram_text + 2, NULL, 16); @@ -2528,50 +2534,50 @@ YY_RULE_SETUP } } YY_BREAK -case 105: +case 106: YY_RULE_SETUP -#line 735 "src/scan-gram.l" +#line 737 "src/scan-gram.l" obstack_1grow (&obstack_for_string, '\a'); gram_piece_append(""); gram_piece_flush(strlen(gram_text)); gram_piece_append(""); YY_BREAK -case 106: +case 107: YY_RULE_SETUP -#line 736 "src/scan-gram.l" +#line 738 "src/scan-gram.l" obstack_1grow (&obstack_for_string, '\b'); gram_piece_append(""); gram_piece_flush(strlen(gram_text)); gram_piece_append(""); YY_BREAK -case 107: +case 108: YY_RULE_SETUP -#line 737 "src/scan-gram.l" +#line 739 "src/scan-gram.l" obstack_1grow (&obstack_for_string, '\f'); gram_piece_append(""); gram_piece_flush(strlen(gram_text)); gram_piece_append(""); YY_BREAK -case 108: +case 109: YY_RULE_SETUP -#line 738 "src/scan-gram.l" +#line 740 "src/scan-gram.l" obstack_1grow (&obstack_for_string, '\n'); gram_piece_append(""); gram_piece_flush(strlen(gram_text)); gram_piece_append(""); YY_BREAK -case 109: +case 110: YY_RULE_SETUP -#line 739 "src/scan-gram.l" +#line 741 "src/scan-gram.l" obstack_1grow (&obstack_for_string, '\r'); gram_piece_append(""); gram_piece_flush(strlen(gram_text)); gram_piece_append(""); YY_BREAK -case 110: +case 111: YY_RULE_SETUP -#line 740 "src/scan-gram.l" +#line 742 "src/scan-gram.l" obstack_1grow (&obstack_for_string, '\t'); gram_piece_append(""); gram_piece_flush(strlen(gram_text)); gram_piece_append(""); YY_BREAK -case 111: +case 112: YY_RULE_SETUP -#line 741 "src/scan-gram.l" +#line 743 "src/scan-gram.l" obstack_1grow (&obstack_for_string, '\v'); gram_piece_append(""); gram_piece_flush(strlen(gram_text)); gram_piece_append(""); YY_BREAK /* \\[\"\'?\\] would be shorter, but it confuses xgettext. */ -case 112: +case 113: YY_RULE_SETUP -#line 744 "src/scan-gram.l" +#line 746 "src/scan-gram.l" obstack_1grow (&obstack_for_string, gram_text[1]); sprintf(gram_piece_temp, "", gram_text[1]); gram_piece_append(gram_piece_temp); gram_piece_flush(strlen(gram_text)); gram_piece_append(""); YY_BREAK -case 113: +case 114: YY_RULE_SETUP -#line 746 "src/scan-gram.l" +#line 748 "src/scan-gram.l" { int c = convert_ucn_to_byte (gram_text); if (c <= 0) @@ -2587,10 +2593,10 @@ YY_RULE_SETUP } } YY_BREAK -case 114: -/* rule 114 can match eol */ +case 115: +/* rule 115 can match eol */ YY_RULE_SETUP -#line 760 "src/scan-gram.l" +#line 762 "src/scan-gram.l" { char const *p = gram_text + 1; /* Quote only if escaping won't make the character visible. */ @@ -2608,46 +2614,46 @@ YY_RULE_SETUP `--------------------------------------------*/ -case 115: -/* rule 115 can match eol */ +case 116: +/* rule 116 can match eol */ YY_RULE_SETUP -#line 778 "src/scan-gram.l" +#line 780 "src/scan-gram.l" STRING_GROW; YY_BREAK -case 116: +case 117: YY_RULE_SETUP -#line 783 "src/scan-gram.l" +#line 785 "src/scan-gram.l" STRING_GROW; BEGIN context_state; YY_BREAK -case 117: -/* rule 117 can match eol */ +case 118: +/* rule 118 can match eol */ YY_RULE_SETUP -#line 784 "src/scan-gram.l" +#line 786 "src/scan-gram.l" unexpected_newline (token_start, "'"); YY_BREAK case YY_STATE_EOF(SC_CHARACTER): -#line 785 "src/scan-gram.l" +#line 787 "src/scan-gram.l" unexpected_eof (token_start, "'"); YY_BREAK -case 118: +case 119: YY_RULE_SETUP -#line 790 "src/scan-gram.l" +#line 792 "src/scan-gram.l" STRING_GROW; BEGIN context_state; YY_BREAK -case 119: -/* rule 119 can match eol */ +case 120: +/* rule 120 can match eol */ YY_RULE_SETUP -#line 791 "src/scan-gram.l" +#line 793 "src/scan-gram.l" unexpected_newline (token_start, "\""); YY_BREAK case YY_STATE_EOF(SC_STRING): -#line 792 "src/scan-gram.l" +#line 794 "src/scan-gram.l" unexpected_eof (token_start, "\""); YY_BREAK @@ -2657,9 +2663,9 @@ unexpected_eof (token_start, "\""); /* Nick added: SC_ELEMENT_GROUP */ -case 120: +case 121: YY_RULE_SETUP -#line 803 "src/scan-gram.l" +#line 805 "src/scan-gram.l" { STRING_GROW; context_state = YY_START; @@ -2667,9 +2673,9 @@ YY_RULE_SETUP BEGIN SC_CHARACTER; } YY_BREAK -case 121: +case 122: YY_RULE_SETUP -#line 809 "src/scan-gram.l" +#line 811 "src/scan-gram.l" { STRING_GROW; context_state = YY_START; @@ -2677,10 +2683,10 @@ YY_RULE_SETUP BEGIN SC_STRING; } YY_BREAK -case 122: -/* rule 122 can match eol */ +case 123: +/* rule 123 can match eol */ YY_RULE_SETUP -#line 815 "src/scan-gram.l" +#line 817 "src/scan-gram.l" { STRING_GROW; context_state = YY_START; @@ -2688,10 +2694,10 @@ YY_RULE_SETUP BEGIN SC_COMMENT; } YY_BREAK -case 123: -/* rule 123 can match eol */ +case 124: +/* rule 124 can match eol */ YY_RULE_SETUP -#line 821 "src/scan-gram.l" +#line 823 "src/scan-gram.l" { STRING_GROW; context_state = YY_START; @@ -2706,38 +2712,38 @@ YY_RULE_SETUP /* Nick added: SC_ELEMENT_GROUP */ -case 124: -/* rule 124 can match eol */ +case 125: +/* rule 125 can match eol */ YY_RULE_SETUP -#line 838 "src/scan-gram.l" +#line 840 "src/scan-gram.l" STRING_GROW; nesting++; YY_BREAK -case 125: -/* rule 125 can match eol */ +case 126: +/* rule 126 can match eol */ YY_RULE_SETUP -#line 839 "src/scan-gram.l" +#line 841 "src/scan-gram.l" STRING_GROW; nesting--; YY_BREAK /* Tokenize '<<%' correctly (as '<<' '%') rather than incorrrectly (as '<' '<%'). */ -case 126: -/* rule 126 can match eol */ +case 127: +/* rule 127 can match eol */ YY_RULE_SETUP -#line 843 "src/scan-gram.l" +#line 845 "src/scan-gram.l" STRING_GROW; YY_BREAK case YY_STATE_EOF(SC_BRACED_CODE): case YY_STATE_EOF(SC_PREDICATE): case YY_STATE_EOF(SC_ELEMENT_GROUP): -#line 845 "src/scan-gram.l" +#line 847 "src/scan-gram.l" unexpected_eof (code_start, "}"); YY_BREAK -case 127: +case 128: YY_RULE_SETUP -#line 850 "src/scan-gram.l" +#line 852 "src/scan-gram.l" { obstack_1grow (&obstack_for_string, '}'); @@ -2763,9 +2769,9 @@ YY_RULE_SETUP -case 128: +case 129: YY_RULE_SETUP -#line 875 "src/scan-gram.l" +#line 877 "src/scan-gram.l" { --nesting; if (nesting < 0) @@ -2792,9 +2798,9 @@ YY_RULE_SETUP /* Nick extra rules for element groups */ -case 129: +case 130: YY_RULE_SETUP -#line 901 "src/scan-gram.l" +#line 903 "src/scan-gram.l" { obstack_1grow (&obstack_for_string, '}'); @@ -2822,9 +2828,9 @@ YY_RULE_SETUP `--------------------------------------------------------------*/ -case 130: +case 131: YY_RULE_SETUP -#line 929 "src/scan-gram.l" +#line 931 "src/scan-gram.l" { STRING_FINISH; loc->start = code_start; @@ -2842,7 +2848,7 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(SC_PROLOGUE): -#line 945 "src/scan-gram.l" +#line 947 "src/scan-gram.l" unexpected_eof (code_start, "%}"); YY_BREAK @@ -2853,7 +2859,7 @@ unexpected_eof (code_start, "%}"); case YY_STATE_EOF(SC_EPILOGUE): -#line 956 "src/scan-gram.l" +#line 958 "src/scan-gram.l" { STRING_FINISH; loc->start = code_start; @@ -2872,21 +2878,21 @@ case YY_STATE_EOF(SC_EPILOGUE): | By default, grow the string obstack with the input. | `-----------------------------------------------------*/ /* Nick added: SC_ELEMENT_GROUP */ -case 131: -#line 977 "src/scan-gram.l" -/* Nick added: SC_ELEMENT_GROUP */ case 132: -/* rule 132 can match eol */ +#line 979 "src/scan-gram.l" +/* Nick added: SC_ELEMENT_GROUP */ +case 133: +/* rule 133 can match eol */ YY_RULE_SETUP -#line 978 "src/scan-gram.l" +#line 980 "src/scan-gram.l" STRING_GROW; YY_BREAK -case 133: +case 134: YY_RULE_SETUP -#line 981 "src/scan-gram.l" +#line 983 "src/scan-gram.l" YY_FATAL_ERROR( "flex scanner jammed" ); YY_BREAK -#line 2876 "src/scan-gram.c" +#line 2882 "src/scan-gram.c" case YY_STATE_EOF(SC_RETURN_BRACKETED_ID): yyterminate(); @@ -3201,7 +3207,7 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 587 ) + if ( yy_current_state >= 591 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -3234,11 +3240,11 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 587 ) + if ( yy_current_state >= 591 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - yy_is_jam = (yy_current_state == 586); + yy_is_jam = (yy_current_state == 590); return yy_is_jam ? 0 : yy_current_state; } @@ -4020,7 +4026,7 @@ void gram_free (void * ptr ) /* %ok-for-header */ -#line 981 "src/scan-gram.l" +#line 983 "src/scan-gram.l" diff --git a/src/scan-gram.l b/src/scan-gram.l index f215d9d..c98901a 100644 --- a/src/scan-gram.l +++ b/src/scan-gram.l @@ -266,6 +266,8 @@ eqopt ([[:space:]]*=)? "%require" return PERCENT_REQUIRE; "%right" return PERCENT_RIGHT; "%skeleton" return PERCENT_SKELETON; + /* Nick added %space */ + "%space" return PERCENT_SPACE; "%start" return PERCENT_START; "%term" return PERCENT_TOKEN; "%token" return PERCENT_TOKEN; -- 2.34.1