From c2728e4c835c6ae7db4d23ef60e5df3b9be3061a Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Fri, 10 Apr 2015 22:51:51 +0200 Subject: output_slr: collapse duplicate case branches --- src/parse.cpp | 744 +++------------------------------------------------------- 1 file changed, 28 insertions(+), 716 deletions(-) (limited to 'src/parse.cpp') diff --git a/src/parse.cpp b/src/parse.cpp index 7c8b1f2..bca53dc 100644 --- a/src/parse.cpp +++ b/src/parse.cpp @@ -163,20 +163,8 @@ int parse_push(parse_context_t *parser, int token, const parse_token_value_t *va switch (parser->stack[parser->top].state) { case 0: switch (token) { - case 0: - parser->stack[++parser->top].state = 1; - break; - - case TOK_SYMBOL_LC: - parser->stack[++parser->top].state = 1; - break; - - case '%': - parser->stack[++parser->top].state = 1; - break; - default: - return -1; + parser->stack[++parser->top].state = 1; } break; @@ -202,48 +190,18 @@ int parse_push(parse_context_t *parser, int token, const parse_token_value_t *va case 2: switch (token) { - case 0: - parser->top -= 2; - parser->stack[++parser->top].state = 1; - break; - - case TOK_SYMBOL_LC: - parser->top -= 2; - parser->stack[++parser->top].state = 1; - break; - - case '%': + default: parser->top -= 2; parser->stack[++parser->top].state = 1; - break; - - default: - return -1; } break; case 3: switch (token) { - case 0: - parser->top -= 1; - parse_reduce_3(parser->stack[parser->top + 0].value.symbol_rule, grammar); - parser->stack[++parser->top].state = 2; - break; - - case TOK_SYMBOL_LC: - parser->top -= 1; - parse_reduce_3(parser->stack[parser->top + 0].value.symbol_rule, grammar); - parser->stack[++parser->top].state = 2; - break; - - case '%': + default: parser->top -= 1; parse_reduce_3(parser->stack[parser->top + 0].value.symbol_rule, grammar); parser->stack[++parser->top].state = 2; - break; - - default: - return -1; } break; @@ -348,38 +306,9 @@ int parse_push(parse_context_t *parser, int token, const parse_token_value_t *va case 11: switch (token) { - case TOK_BLOCK: - parser->stack[parser->top].value.symbol_rhs = parse_reduce_10(grammar); - parser->stack[++parser->top].state = 16; - break; - - case TOK_CHAR: - parser->stack[parser->top].value.symbol_rhs = parse_reduce_10(grammar); - parser->stack[++parser->top].state = 16; - break; - - case TOK_STRING: - parser->stack[parser->top].value.symbol_rhs = parse_reduce_10(grammar); - parser->stack[++parser->top].state = 16; - break; - - case TOK_SYMBOL_LC: - parser->stack[parser->top].value.symbol_rhs = parse_reduce_10(grammar); - parser->stack[++parser->top].state = 16; - break; - - case TOK_SYMBOL_UC: - parser->stack[parser->top].value.symbol_rhs = parse_reduce_10(grammar); - parser->stack[++parser->top].state = 16; - break; - - case ';': + default: parser->stack[parser->top].value.symbol_rhs = parse_reduce_10(grammar); parser->stack[++parser->top].state = 16; - break; - - default: - return -1; } break; @@ -518,461 +447,105 @@ int parse_push(parse_context_t *parser, int token, const parse_token_value_t *va case 21: switch (token) { - case 0: - parser->top -= 5; - parser->stack[parser->top].value.symbol_rule = parse_reduce_9(parser->stack[parser->top + 0].value.token.str, parser->stack[parser->top + 3].value.symbol_rhs, parser->stack[parser->top + 4].value.symbol_action, grammar); - parser->stack[++parser->top].state = 3; - break; - - case TOK_SYMBOL_LC: - parser->top -= 5; - parser->stack[parser->top].value.symbol_rule = parse_reduce_9(parser->stack[parser->top + 0].value.token.str, parser->stack[parser->top + 3].value.symbol_rhs, parser->stack[parser->top + 4].value.symbol_action, grammar); - parser->stack[++parser->top].state = 3; - break; - - case '%': + default: parser->top -= 5; parser->stack[parser->top].value.symbol_rule = parse_reduce_9(parser->stack[parser->top + 0].value.token.str, parser->stack[parser->top + 3].value.symbol_rhs, parser->stack[parser->top + 4].value.symbol_action, grammar); parser->stack[++parser->top].state = 3; - break; - - default: - return -1; } break; case 22: switch (token) { - case TOK_BLOCK: - parser->top -= 2; - parser->stack[parser->top].value.symbol_rhs = parse_reduce_11(parser->stack[parser->top + 0].value.symbol_rhs, parser->stack[parser->top + 1].value.symbol_symbol, grammar); - parser->stack[++parser->top].state = 16; - break; - - case TOK_CHAR: - parser->top -= 2; - parser->stack[parser->top].value.symbol_rhs = parse_reduce_11(parser->stack[parser->top + 0].value.symbol_rhs, parser->stack[parser->top + 1].value.symbol_symbol, grammar); - parser->stack[++parser->top].state = 16; - break; - - case TOK_STRING: - parser->top -= 2; - parser->stack[parser->top].value.symbol_rhs = parse_reduce_11(parser->stack[parser->top + 0].value.symbol_rhs, parser->stack[parser->top + 1].value.symbol_symbol, grammar); - parser->stack[++parser->top].state = 16; - break; - - case TOK_SYMBOL_LC: - parser->top -= 2; - parser->stack[parser->top].value.symbol_rhs = parse_reduce_11(parser->stack[parser->top + 0].value.symbol_rhs, parser->stack[parser->top + 1].value.symbol_symbol, grammar); - parser->stack[++parser->top].state = 16; - break; - - case TOK_SYMBOL_UC: - parser->top -= 2; - parser->stack[parser->top].value.symbol_rhs = parse_reduce_11(parser->stack[parser->top + 0].value.symbol_rhs, parser->stack[parser->top + 1].value.symbol_symbol, grammar); - parser->stack[++parser->top].state = 16; - break; - case '(': parser->stack[parser->top].value.token = *value; parser->stack[++parser->top].state = 34; return 1; - case ';': + default: parser->top -= 2; parser->stack[parser->top].value.symbol_rhs = parse_reduce_11(parser->stack[parser->top + 0].value.symbol_rhs, parser->stack[parser->top + 1].value.symbol_symbol, grammar); parser->stack[++parser->top].state = 16; - break; - - default: - return -1; } break; case 23: switch (token) { - case TOK_BLOCK: - parser->top -= 1; - parser->stack[parser->top].value.symbol_symbol = parse_reduce_16(parser->stack[parser->top + 0].value.symbol_term, grammar); - parser->stack[++parser->top].state = 22; - break; - - case TOK_CHAR: - parser->top -= 1; - parser->stack[parser->top].value.symbol_symbol = parse_reduce_16(parser->stack[parser->top + 0].value.symbol_term, grammar); - parser->stack[++parser->top].state = 22; - break; - - case TOK_STRING: - parser->top -= 1; - parser->stack[parser->top].value.symbol_symbol = parse_reduce_16(parser->stack[parser->top + 0].value.symbol_term, grammar); - parser->stack[++parser->top].state = 22; - break; - - case TOK_SYMBOL_LC: - parser->top -= 1; - parser->stack[parser->top].value.symbol_symbol = parse_reduce_16(parser->stack[parser->top + 0].value.symbol_term, grammar); - parser->stack[++parser->top].state = 22; - break; - - case TOK_SYMBOL_UC: - parser->top -= 1; - parser->stack[parser->top].value.symbol_symbol = parse_reduce_16(parser->stack[parser->top + 0].value.symbol_term, grammar); - parser->stack[++parser->top].state = 22; - break; - - case '(': - parser->top -= 1; - parser->stack[parser->top].value.symbol_symbol = parse_reduce_16(parser->stack[parser->top + 0].value.symbol_term, grammar); - parser->stack[++parser->top].state = 22; - break; - - case ';': + default: parser->top -= 1; parser->stack[parser->top].value.symbol_symbol = parse_reduce_16(parser->stack[parser->top + 0].value.symbol_term, grammar); parser->stack[++parser->top].state = 22; - break; - - default: - return -1; } break; case 24: switch (token) { - case 0: - parser->top -= 1; - parser->stack[parser->top].value.symbol_action = parse_reduce_15(parser->stack[parser->top + 0].value.token.str, grammar); - parser->stack[++parser->top].state = 21; - break; - - case TOK_SYMBOL_LC: - parser->top -= 1; - parser->stack[parser->top].value.symbol_action = parse_reduce_15(parser->stack[parser->top + 0].value.token.str, grammar); - parser->stack[++parser->top].state = 21; - break; - - case '%': + default: parser->top -= 1; parser->stack[parser->top].value.symbol_action = parse_reduce_15(parser->stack[parser->top + 0].value.token.str, grammar); parser->stack[++parser->top].state = 21; - break; - - default: - return -1; } break; case 25: switch (token) { - case TOK_BLOCK: - parser->top -= 1; - parser->stack[parser->top].value.symbol_term = parse_reduce_19(parser->stack[parser->top + 0].value.token.c, grammar); - switch (parser->stack[parser->top].state) { - case 16: - parser->stack[++parser->top].state = 23; - break; - case 33: - parser->stack[++parser->top].state = 38; - break; - } - break; - - case TOK_CHAR: - parser->top -= 1; - parser->stack[parser->top].value.symbol_term = parse_reduce_19(parser->stack[parser->top + 0].value.token.c, grammar); - switch (parser->stack[parser->top].state) { - case 16: - parser->stack[++parser->top].state = 23; - break; - case 33: - parser->stack[++parser->top].state = 38; - break; - } - break; - - case TOK_STRING: - parser->top -= 1; - parser->stack[parser->top].value.symbol_term = parse_reduce_19(parser->stack[parser->top + 0].value.token.c, grammar); - switch (parser->stack[parser->top].state) { - case 16: - parser->stack[++parser->top].state = 23; - break; - case 33: - parser->stack[++parser->top].state = 38; - break; - } - break; - - case TOK_SYMBOL_LC: + default: parser->top -= 1; parser->stack[parser->top].value.symbol_term = parse_reduce_19(parser->stack[parser->top + 0].value.token.c, grammar); switch (parser->stack[parser->top].state) { case 16: parser->stack[++parser->top].state = 23; break; - case 33: - parser->stack[++parser->top].state = 38; - break; - } - break; - case TOK_SYMBOL_UC: - parser->top -= 1; - parser->stack[parser->top].value.symbol_term = parse_reduce_19(parser->stack[parser->top + 0].value.token.c, grammar); - switch (parser->stack[parser->top].state) { - case 16: - parser->stack[++parser->top].state = 23; - break; case 33: parser->stack[++parser->top].state = 38; break; - } - break; - case '(': - parser->top -= 1; - parser->stack[parser->top].value.symbol_term = parse_reduce_19(parser->stack[parser->top + 0].value.token.c, grammar); - switch (parser->stack[parser->top].state) { - case 16: - parser->stack[++parser->top].state = 23; - break; - case 33: - parser->stack[++parser->top].state = 38; - break; } - break; - - case ';': - parser->top -= 1; - parser->stack[parser->top].value.symbol_term = parse_reduce_19(parser->stack[parser->top + 0].value.token.c, grammar); - switch (parser->stack[parser->top].state) { - case 16: - parser->stack[++parser->top].state = 23; - break; - case 33: - parser->stack[++parser->top].state = 38; - break; - } - break; - - default: - return -1; } break; case 26: switch (token) { - case TOK_BLOCK: - parser->top -= 2; - parser->stack[parser->top].value.symbol_rhs = parse_reduce_13(parser->stack[parser->top + 0].value.symbol_rhs, parser->stack[parser->top + 1].value.token.str, grammar); - parser->stack[++parser->top].state = 16; - break; - - case TOK_CHAR: - parser->top -= 2; - parser->stack[parser->top].value.symbol_rhs = parse_reduce_13(parser->stack[parser->top + 0].value.symbol_rhs, parser->stack[parser->top + 1].value.token.str, grammar); - parser->stack[++parser->top].state = 16; - break; - - case TOK_STRING: - parser->top -= 2; - parser->stack[parser->top].value.symbol_rhs = parse_reduce_13(parser->stack[parser->top + 0].value.symbol_rhs, parser->stack[parser->top + 1].value.token.str, grammar); - parser->stack[++parser->top].state = 16; - break; - - case TOK_SYMBOL_LC: - parser->top -= 2; - parser->stack[parser->top].value.symbol_rhs = parse_reduce_13(parser->stack[parser->top + 0].value.symbol_rhs, parser->stack[parser->top + 1].value.token.str, grammar); - parser->stack[++parser->top].state = 16; - break; - - case TOK_SYMBOL_UC: - parser->top -= 2; - parser->stack[parser->top].value.symbol_rhs = parse_reduce_13(parser->stack[parser->top + 0].value.symbol_rhs, parser->stack[parser->top + 1].value.token.str, grammar); - parser->stack[++parser->top].state = 16; - break; - - case ';': + default: parser->top -= 2; parser->stack[parser->top].value.symbol_rhs = parse_reduce_13(parser->stack[parser->top + 0].value.symbol_rhs, parser->stack[parser->top + 1].value.token.str, grammar); parser->stack[++parser->top].state = 16; - break; - - default: - return -1; } break; case 27: switch (token) { - case TOK_BLOCK: - parser->top -= 1; - parser->stack[parser->top].value.symbol_symbol = parse_reduce_17(parser->stack[parser->top + 0].value.token.str, grammar); - parser->stack[++parser->top].state = 22; - break; - - case TOK_CHAR: - parser->top -= 1; - parser->stack[parser->top].value.symbol_symbol = parse_reduce_17(parser->stack[parser->top + 0].value.token.str, grammar); - parser->stack[++parser->top].state = 22; - break; - - case TOK_STRING: - parser->top -= 1; - parser->stack[parser->top].value.symbol_symbol = parse_reduce_17(parser->stack[parser->top + 0].value.token.str, grammar); - parser->stack[++parser->top].state = 22; - break; - - case TOK_SYMBOL_LC: - parser->top -= 1; - parser->stack[parser->top].value.symbol_symbol = parse_reduce_17(parser->stack[parser->top + 0].value.token.str, grammar); - parser->stack[++parser->top].state = 22; - break; - - case TOK_SYMBOL_UC: - parser->top -= 1; - parser->stack[parser->top].value.symbol_symbol = parse_reduce_17(parser->stack[parser->top + 0].value.token.str, grammar); - parser->stack[++parser->top].state = 22; - break; - - case '(': - parser->top -= 1; - parser->stack[parser->top].value.symbol_symbol = parse_reduce_17(parser->stack[parser->top + 0].value.token.str, grammar); - parser->stack[++parser->top].state = 22; - break; - - case ';': + default: parser->top -= 1; parser->stack[parser->top].value.symbol_symbol = parse_reduce_17(parser->stack[parser->top + 0].value.token.str, grammar); parser->stack[++parser->top].state = 22; - break; - - default: - return -1; } break; case 28: switch (token) { - case TOK_BLOCK: - parser->top -= 1; - parser->stack[parser->top].value.symbol_term = parse_reduce_18(parser->stack[parser->top + 0].value.token.str, grammar); - switch (parser->stack[parser->top].state) { - case 16: - parser->stack[++parser->top].state = 23; - break; - case 33: - parser->stack[++parser->top].state = 38; - break; - } - break; - - case TOK_CHAR: - parser->top -= 1; - parser->stack[parser->top].value.symbol_term = parse_reduce_18(parser->stack[parser->top + 0].value.token.str, grammar); - switch (parser->stack[parser->top].state) { - case 16: - parser->stack[++parser->top].state = 23; - break; - case 33: - parser->stack[++parser->top].state = 38; - break; - } - break; - - case TOK_STRING: - parser->top -= 1; - parser->stack[parser->top].value.symbol_term = parse_reduce_18(parser->stack[parser->top + 0].value.token.str, grammar); - switch (parser->stack[parser->top].state) { - case 16: - parser->stack[++parser->top].state = 23; - break; - case 33: - parser->stack[++parser->top].state = 38; - break; - } - break; - - case TOK_SYMBOL_LC: - parser->top -= 1; - parser->stack[parser->top].value.symbol_term = parse_reduce_18(parser->stack[parser->top + 0].value.token.str, grammar); - switch (parser->stack[parser->top].state) { - case 16: - parser->stack[++parser->top].state = 23; - break; - case 33: - parser->stack[++parser->top].state = 38; - break; - } - break; - - case TOK_SYMBOL_UC: + default: parser->top -= 1; parser->stack[parser->top].value.symbol_term = parse_reduce_18(parser->stack[parser->top + 0].value.token.str, grammar); switch (parser->stack[parser->top].state) { case 16: parser->stack[++parser->top].state = 23; break; - case 33: - parser->stack[++parser->top].state = 38; - break; - } - break; - case '(': - parser->top -= 1; - parser->stack[parser->top].value.symbol_term = parse_reduce_18(parser->stack[parser->top + 0].value.token.str, grammar); - switch (parser->stack[parser->top].state) { - case 16: - parser->stack[++parser->top].state = 23; - break; case 33: parser->stack[++parser->top].state = 38; break; - } - break; - case ';': - parser->top -= 1; - parser->stack[parser->top].value.symbol_term = parse_reduce_18(parser->stack[parser->top + 0].value.token.str, grammar); - switch (parser->stack[parser->top].state) { - case 16: - parser->stack[++parser->top].state = 23; - break; - case 33: - parser->stack[++parser->top].state = 38; - break; } - break; - - default: - return -1; } break; case 29: switch (token) { - case 0: - parser->top -= 1; - parser->stack[parser->top].value.symbol_action = parse_reduce_14(grammar); - parser->stack[++parser->top].state = 21; - break; - - case TOK_SYMBOL_LC: - parser->top -= 1; - parser->stack[parser->top].value.symbol_action = parse_reduce_14(grammar); - parser->stack[++parser->top].state = 21; - break; - - case '%': - parser->top -= 1; - parser->stack[parser->top].value.symbol_action = parse_reduce_14(grammar); - parser->stack[++parser->top].state = 21; - break; - default: - return -1; + parser->top -= 1; + parser->stack[parser->top].value.symbol_action = parse_reduce_14(grammar); + parser->stack[++parser->top].state = 21; } break; @@ -1019,14 +592,14 @@ int parse_push(parse_context_t *parser, int token, const parse_token_value_t *va parser->stack[++parser->top].state = 25; return 1; - case TOK_SYMBOL_LC: + case TOK_SYMBOL_UC: parser->stack[parser->top].value.token = *value; - parser->stack[++parser->top].state = 39; + parser->stack[++parser->top].state = 28; return 1; - case TOK_SYMBOL_UC: + case TOK_SYMBOL_LC: parser->stack[parser->top].value.token = *value; - parser->stack[++parser->top].state = 28; + parser->stack[++parser->top].state = 39; return 1; default: @@ -1130,214 +703,67 @@ int parse_push(parse_context_t *parser, int token, const parse_token_value_t *va case 41: switch (token) { - case 0: + default: parser->top -= 1; parser->stack[parser->top].value.symbol_varname = parse_reduce_22(parser->stack[parser->top + 0].value.token.str, grammar); switch (parser->stack[parser->top].state) { case 34: parser->stack[++parser->top].state = 40; break; - case 47: - parser->stack[++parser->top].state = 53; - break; - case 56: - parser->stack[++parser->top].state = 57; - break; - } - break; - case TOK_SYMBOL_LC: - parser->top -= 1; - parser->stack[parser->top].value.symbol_varname = parse_reduce_22(parser->stack[parser->top + 0].value.token.str, grammar); - switch (parser->stack[parser->top].state) { - case 34: - parser->stack[++parser->top].state = 40; - break; case 47: parser->stack[++parser->top].state = 53; break; - case 56: - parser->stack[++parser->top].state = 57; - break; - } - break; - case '%': - parser->top -= 1; - parser->stack[parser->top].value.symbol_varname = parse_reduce_22(parser->stack[parser->top + 0].value.token.str, grammar); - switch (parser->stack[parser->top].state) { - case 34: - parser->stack[++parser->top].state = 40; - break; - case 47: - parser->stack[++parser->top].state = 53; - break; case 56: parser->stack[++parser->top].state = 57; break; - } - break; - case ')': - parser->top -= 1; - parser->stack[parser->top].value.symbol_varname = parse_reduce_22(parser->stack[parser->top + 0].value.token.str, grammar); - switch (parser->stack[parser->top].state) { - case 34: - parser->stack[++parser->top].state = 40; - break; - case 47: - parser->stack[++parser->top].state = 53; - break; - case 56: - parser->stack[++parser->top].state = 57; - break; } - break; - - default: - return -1; } break; case 42: switch (token) { - case 0: + default: parser->top -= 1; parser->stack[parser->top].value.symbol_varname = parse_reduce_20(parser->stack[parser->top + 0].value.token.str, grammar); switch (parser->stack[parser->top].state) { case 34: parser->stack[++parser->top].state = 40; break; - case 47: - parser->stack[++parser->top].state = 53; - break; - case 56: - parser->stack[++parser->top].state = 57; - break; - } - break; - case TOK_SYMBOL_LC: - parser->top -= 1; - parser->stack[parser->top].value.symbol_varname = parse_reduce_20(parser->stack[parser->top + 0].value.token.str, grammar); - switch (parser->stack[parser->top].state) { - case 34: - parser->stack[++parser->top].state = 40; - break; case 47: parser->stack[++parser->top].state = 53; break; - case 56: - parser->stack[++parser->top].state = 57; - break; - } - break; - case '%': - parser->top -= 1; - parser->stack[parser->top].value.symbol_varname = parse_reduce_20(parser->stack[parser->top + 0].value.token.str, grammar); - switch (parser->stack[parser->top].state) { - case 34: - parser->stack[++parser->top].state = 40; - break; - case 47: - parser->stack[++parser->top].state = 53; - break; case 56: parser->stack[++parser->top].state = 57; break; - } - break; - case ')': - parser->top -= 1; - parser->stack[parser->top].value.symbol_varname = parse_reduce_20(parser->stack[parser->top + 0].value.token.str, grammar); - switch (parser->stack[parser->top].state) { - case 34: - parser->stack[++parser->top].state = 40; - break; - case 47: - parser->stack[++parser->top].state = 53; - break; - case 56: - parser->stack[++parser->top].state = 57; - break; } - break; - - default: - return -1; } break; case 43: switch (token) { - case 0: + default: parser->top -= 1; parser->stack[parser->top].value.symbol_varname = parse_reduce_21(parser->stack[parser->top + 0].value.token.str, grammar); switch (parser->stack[parser->top].state) { case 34: parser->stack[++parser->top].state = 40; break; - case 47: - parser->stack[++parser->top].state = 53; - break; - case 56: - parser->stack[++parser->top].state = 57; - break; - } - break; - case TOK_SYMBOL_LC: - parser->top -= 1; - parser->stack[parser->top].value.symbol_varname = parse_reduce_21(parser->stack[parser->top + 0].value.token.str, grammar); - switch (parser->stack[parser->top].state) { - case 34: - parser->stack[++parser->top].state = 40; - break; case 47: parser->stack[++parser->top].state = 53; break; - case 56: - parser->stack[++parser->top].state = 57; - break; - } - break; - case '%': - parser->top -= 1; - parser->stack[parser->top].value.symbol_varname = parse_reduce_21(parser->stack[parser->top + 0].value.token.str, grammar); - switch (parser->stack[parser->top].state) { - case 34: - parser->stack[++parser->top].state = 40; - break; - case 47: - parser->stack[++parser->top].state = 53; - break; case 56: parser->stack[++parser->top].state = 57; break; - } - break; - case ')': - parser->top -= 1; - parser->stack[parser->top].value.symbol_varname = parse_reduce_21(parser->stack[parser->top + 0].value.token.str, grammar); - switch (parser->stack[parser->top].state) { - case 34: - parser->stack[++parser->top].state = 40; - break; - case 47: - parser->stack[++parser->top].state = 53; - break; - case 56: - parser->stack[++parser->top].state = 57; - break; } - break; - - default: - return -1; } break; @@ -1401,69 +827,19 @@ int parse_push(parse_context_t *parser, int token, const parse_token_value_t *va case 48: switch (token) { - case 0: - parser->top -= 7; - parse_reduce_4(parser->stack[parser->top + 5].value.token.str, parser->stack[parser->top + 6].value.token.str, grammar); - parser->stack[++parser->top].state = 2; - break; - - case TOK_SYMBOL_LC: - parser->top -= 7; - parse_reduce_4(parser->stack[parser->top + 5].value.token.str, parser->stack[parser->top + 6].value.token.str, grammar); - parser->stack[++parser->top].state = 2; - break; - - case '%': + default: parser->top -= 7; parse_reduce_4(parser->stack[parser->top + 5].value.token.str, parser->stack[parser->top + 6].value.token.str, grammar); parser->stack[++parser->top].state = 2; - break; - - default: - return -1; } break; case 49: switch (token) { - case TOK_BLOCK: - parser->top -= 5; - parser->stack[parser->top].value.symbol_rhs = parse_reduce_12(parser->stack[parser->top + 0].value.symbol_rhs, parser->stack[parser->top + 1].value.symbol_symbol, parser->stack[parser->top + 3].value.symbol_varname, grammar); - parser->stack[++parser->top].state = 16; - break; - - case TOK_CHAR: - parser->top -= 5; - parser->stack[parser->top].value.symbol_rhs = parse_reduce_12(parser->stack[parser->top + 0].value.symbol_rhs, parser->stack[parser->top + 1].value.symbol_symbol, parser->stack[parser->top + 3].value.symbol_varname, grammar); - parser->stack[++parser->top].state = 16; - break; - - case TOK_STRING: - parser->top -= 5; - parser->stack[parser->top].value.symbol_rhs = parse_reduce_12(parser->stack[parser->top + 0].value.symbol_rhs, parser->stack[parser->top + 1].value.symbol_symbol, parser->stack[parser->top + 3].value.symbol_varname, grammar); - parser->stack[++parser->top].state = 16; - break; - - case TOK_SYMBOL_LC: - parser->top -= 5; - parser->stack[parser->top].value.symbol_rhs = parse_reduce_12(parser->stack[parser->top + 0].value.symbol_rhs, parser->stack[parser->top + 1].value.symbol_symbol, parser->stack[parser->top + 3].value.symbol_varname, grammar); - parser->stack[++parser->top].state = 16; - break; - - case TOK_SYMBOL_UC: - parser->top -= 5; - parser->stack[parser->top].value.symbol_rhs = parse_reduce_12(parser->stack[parser->top + 0].value.symbol_rhs, parser->stack[parser->top + 1].value.symbol_symbol, parser->stack[parser->top + 3].value.symbol_varname, grammar); - parser->stack[++parser->top].state = 16; - break; - - case ';': + default: parser->top -= 5; parser->stack[parser->top].value.symbol_rhs = parse_reduce_12(parser->stack[parser->top + 0].value.symbol_rhs, parser->stack[parser->top + 1].value.symbol_symbol, parser->stack[parser->top + 3].value.symbol_varname, grammar); parser->stack[++parser->top].state = 16; - break; - - default: - return -1; } break; @@ -1481,76 +857,28 @@ int parse_push(parse_context_t *parser, int token, const parse_token_value_t *va case 51: switch (token) { - case 0: - parser->top -= 8; - parse_reduce_7(parser->stack[parser->top + 7].value.token.str, grammar); - parser->stack[++parser->top].state = 2; - break; - - case TOK_SYMBOL_LC: - parser->top -= 8; - parse_reduce_7(parser->stack[parser->top + 7].value.token.str, grammar); - parser->stack[++parser->top].state = 2; - break; - - case '%': + default: parser->top -= 8; parse_reduce_7(parser->stack[parser->top + 7].value.token.str, grammar); parser->stack[++parser->top].state = 2; - break; - - default: - return -1; } break; case 52: switch (token) { - case 0: - parser->top -= 8; - parse_reduce_6(parser->stack[parser->top + 7].value.token.str, grammar); - parser->stack[++parser->top].state = 2; - break; - - case TOK_SYMBOL_LC: - parser->top -= 8; - parse_reduce_6(parser->stack[parser->top + 7].value.token.str, grammar); - parser->stack[++parser->top].state = 2; - break; - - case '%': + default: parser->top -= 8; parse_reduce_6(parser->stack[parser->top + 7].value.token.str, grammar); parser->stack[++parser->top].state = 2; - break; - - default: - return -1; } break; case 53: switch (token) { - case 0: - parser->top -= 8; - parse_reduce_5(parser->stack[parser->top + 5].value.symbol_term, parser->stack[parser->top + 6].value.token.str, parser->stack[parser->top + 7].value.symbol_varname, grammar); - parser->stack[++parser->top].state = 2; - break; - - case TOK_SYMBOL_LC: - parser->top -= 8; - parse_reduce_5(parser->stack[parser->top + 5].value.symbol_term, parser->stack[parser->top + 6].value.token.str, parser->stack[parser->top + 7].value.symbol_varname, grammar); - parser->stack[++parser->top].state = 2; - break; - - case '%': + default: parser->top -= 8; parse_reduce_5(parser->stack[parser->top + 5].value.symbol_term, parser->stack[parser->top + 6].value.token.str, parser->stack[parser->top + 7].value.symbol_varname, grammar); parser->stack[++parser->top].state = 2; - break; - - default: - return -1; } break; @@ -1602,26 +930,10 @@ int parse_push(parse_context_t *parser, int token, const parse_token_value_t *va case 57: switch (token) { - case 0: - parser->top -= 12; - parse_reduce_8(parser->stack[parser->top + 10].value.token.str, parser->stack[parser->top + 11].value.symbol_varname, grammar); - parser->stack[++parser->top].state = 2; - break; - - case TOK_SYMBOL_LC: - parser->top -= 12; - parse_reduce_8(parser->stack[parser->top + 10].value.token.str, parser->stack[parser->top + 11].value.symbol_varname, grammar); - parser->stack[++parser->top].state = 2; - break; - - case '%': + default: parser->top -= 12; parse_reduce_8(parser->stack[parser->top + 10].value.token.str, parser->stack[parser->top + 11].value.symbol_varname, grammar); parser->stack[++parser->top].state = 2; - break; - - default: - return -1; } break; -- cgit v1.2.3