X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/66c209cf435b5bfc5cf982d8df9cc3ef05b4546b..02879b4e811b0404736a706cba8cf09ecffa03c3:/src/parse-gram.y?ds=sidebyside diff --git a/src/parse-gram.y b/src/parse-gram.y index e889eb5e..4e887e81 100644 --- a/src/parse-gram.y +++ b/src/parse-gram.y @@ -274,7 +274,7 @@ input: `------------------------------------*/ prologue_declarations: - /* Nothing */ + %empty | prologue_declarations prologue_declaration ; @@ -430,8 +430,8 @@ code_props_type: %token PERCENT_UNION "%union"; union_name: - /* Nothing. */ {} -| ID { muscle_code_grow ("union_name", $1, @1); } + %empty {} +| ID { muscle_code_grow ("union_name", $1, @1); } ; grammar_declaration: @@ -490,8 +490,8 @@ precedence_declarator: ; tag.opt: - /* Nothing. */ { current_type = NULL; } -| TAG { current_type = $1; tag_seen = true; } + %empty { current_type = NULL; } +| TAG { current_type = $1; tag_seen = true; } ; /* Just like symbols.1 but accept INT for the sake of POSIX. */ @@ -605,8 +605,9 @@ rhses.1: | rhses.1 ";" ; +%token PERCENT_EMPTY "%empty"; rhs: - /* Nothing. */ + %empty { grammar_current_rule_begin (current_lhs_symbol, current_lhs_location, current_lhs_named_ref); } | rhs symbol named_ref.opt @@ -615,6 +616,8 @@ rhs: { grammar_current_rule_action_append ($2, @2, $3, false); } | rhs "%?{...}" { grammar_current_rule_action_append ($2, @2, NULL, true); } +| rhs "%empty" + { grammar_current_rule_empty_set (@2); } | rhs "%prec" symbol { grammar_current_rule_prec_set ($3, @3); } | rhs "%dprec" INT @@ -624,9 +627,8 @@ rhs: ; named_ref.opt: - /* Nothing. */ { $$ = 0; } -| - BRACKETED_ID { $$ = named_ref_new ($1, @1); } + %empty { $$ = 0; } +| BRACKETED_ID { $$ = named_ref_new($1, @1); } ; /*---------------------------. @@ -634,7 +636,7 @@ named_ref.opt: `---------------------------*/ /* The STRING form of variable is deprecated and is not M4-friendly. - For example, M4 fails for `%define "[" "value"'. */ + For example, M4 fails for '%define "[" "value"'. */ variable: ID | STRING { $$ = uniqstr_new ($1); } @@ -642,9 +644,9 @@ variable: /* Some content or empty by default. */ content.opt: - /* Nothing. */ { $$ = ""; } -| ID { $$ = $1; } -| STRING + %empty { $$ = ""; } +| ID { $$ = $1; } +| STRING { $$ = $1; } ; @@ -703,7 +705,7 @@ string_as_id: ; epilogue.opt: - /* Nothing. */ + %empty | "%%" EPILOGUE { code_props plain_code;