Some refactoring before a more important change that follows. This is a 'diff -w', to avoid useless diffs in the indentation changes because of the new braces in scan-code.l.
commit e40db8976c9448ee99a6c01d780bcda2e046478c Author: Akim Demaille <[email protected]> Date: Sun Dec 2 08:32:01 2018 +0100 style: comment and formatting changes * data/bison.m4, data/c++.m4, data/glr.c, data/java.m4, data/lalr1.cc, * data/yacc.c, src/scan-code.l: Fix comments. Prefer POS to denote the position of a symbol in a rule, since NUM is also used to denote symbol numbers. diff --git a/data/bison.m4 b/data/bison.m4 index d2db2c86..4be8e696 100644 --- a/data/bison.m4 +++ b/data/bison.m4 @@ -391,7 +391,7 @@ b4_define_flag_if([yacc]) # Whether POSIX Yacc is emulated. # If has_id, the id. Guaranteed to be usable as a C identifier. # Prefixed by api.token.prefix if defined. # - tag: string. -# A representat of the symbol. Can be 'foo', 'foo.id', '"foo"' etc. +# A representation of the symbol. Can be 'foo', 'foo.id', '"foo"' etc. # - user_number: integer # The assigned (external) number as used by yylex. # - is_token: 0 or 1 @@ -497,7 +497,7 @@ m4_define([b4_symbol_actions], m4_ifval(m4_defn([b4_actions_]), [switch (m4_default([$2], [yytype])) { - m4_defn([b4_actions_]) +m4_defn([b4_actions_])[]dnl default: break; }dnl @@ -569,7 +569,7 @@ m4_define([b4_token_format], # Run actions for the symbol NUMS that all have the same type-name. # Skip NUMS that have no type-name. # -# To specify the action to run, define b4_dollar_dollar(NUMBER, +# To specify the action to run, define b4_dollar_dollar(SYMBOL-NUM, # TAG, TYPE). m4_define([_b4_type_action], [b4_symbol_if([$1], [has_type], diff --git a/data/c++.m4 b/data/c++.m4 index 3701525a..e3993edc 100644 --- a/data/c++.m4 +++ b/data/c++.m4 @@ -528,10 +528,11 @@ m4_define([b4_lhs_value], [b4_symbol_value([yyval], [$1])]) -# b4_rhs_value(RULE-LENGTH, NUM, [TYPE]) +# b4_rhs_value(RULE-LENGTH, POS, [TYPE]) # -------------------------------------- -# Expansion of $<TYPE>NUM, where the current rule has RULE-LENGTH +# Expansion of $<TYPE>POS, where the current rule has RULE-LENGTH # symbols on RHS. +# FIXME: Dead code. m4_define([b4_rhs_value], [b4_symbol_value([yysemantic_stack_@{($1) - ($2)@}], [$3])]) @@ -543,9 +544,9 @@ m4_define([b4_lhs_location], [(yyloc)]) -# b4_rhs_location(RULE-LENGTH, NUM) +# b4_rhs_location(RULE-LENGTH, POS) # --------------------------------- -# Expansion of @NUM, where the current rule has RULE-LENGTH symbols +# Expansion of @POS, where the current rule has RULE-LENGTH symbols # on RHS. m4_define([b4_rhs_location], [(yylocation_stack_@{($1) - ($2)@})]) diff --git a/data/glr.c b/data/glr.c index 437677d8..4c0c0165 100644 --- a/data/glr.c +++ b/data/glr.c @@ -119,10 +119,10 @@ m4_define([b4_lhs_value], [b4_symbol_value([(*yyvalp)], [$1])]) -# b4_rhs_data(RULE-LENGTH, NUM) +# b4_rhs_data(RULE-LENGTH, POS) # ----------------------------- # Expand to the semantic stack place that contains value and location -# of symbol number NUM in a rule of length RULE-LENGTH. +# of symbol number POS in a rule of length RULE-LENGTH. m4_define([b4_rhs_data], [((yyGLRStackItem const *)yyvsp)@{YYFILL (b4_subtract([$2], [$1]))@}.yystate]) diff --git a/data/java.m4 b/data/java.m4 index 5ac145c4..12491fd4 100644 --- a/data/java.m4 +++ b/data/java.m4 @@ -242,9 +242,9 @@ m4_define([b4_lhs_location], [(yyloc)]) -# b4_rhs_location(RULE-LENGTH, NUM) +# b4_rhs_location(RULE-LENGTH, POS) # --------------------------------- -# Expansion of @NUM, where the current rule has RULE-LENGTH symbols +# Expansion of @POS, where the current rule has RULE-LENGTH symbols # on RHS. m4_define([b4_rhs_location], [yystack.locationAt ($1-($2))]) diff --git a/data/lalr1.cc b/data/lalr1.cc index 322971bf..b66846b4 100644 --- a/data/lalr1.cc +++ b/data/lalr1.cc @@ -64,17 +64,17 @@ m4_define([b4_lhs_location], [yylhs.location]) -# b4_rhs_data(RULE-LENGTH, NUM) +# b4_rhs_data(RULE-LENGTH, POS) # ----------------------------- -# Return the data corresponding to the symbol #NUM, where the current +# Return the data corresponding to the symbol #POS, where the current # rule has RULE-LENGTH symbols on RHS. m4_define([b4_rhs_data], [yystack_@{b4_subtract($@)@}]) -# b4_rhs_state(RULE-LENGTH, NUM) +# b4_rhs_state(RULE-LENGTH, POS) # ------------------------------ -# The state corresponding to the symbol #NUM, where the current +# The state corresponding to the symbol #POS, where the current # rule has RULE-LENGTH symbols on RHS. m4_define([b4_rhs_state], [b4_rhs_data([$1], [$2]).state]) @@ -93,9 +93,9 @@ m4_define([b4_rhs_value], [_b4_rhs_value($@)])]) -# b4_rhs_location(RULE-LENGTH, NUM) +# b4_rhs_location(RULE-LENGTH, POS) # --------------------------------- -# Expansion of @NUM, where the current rule has RULE-LENGTH symbols +# Expansion of @POS, where the current rule has RULE-LENGTH symbols # on RHS. m4_define([b4_rhs_location], [b4_rhs_data([$1], [$2]).location]) diff --git a/data/yacc.c b/data/yacc.c index ee0acd5b..ff023e88 100644 --- a/data/yacc.c +++ b/data/yacc.c @@ -154,9 +154,9 @@ m4_define([b4_lhs_location], [(yyloc)]) -# b4_rhs_location(RULE-LENGTH, NUM) +# b4_rhs_location(RULE-LENGTH, POS) # --------------------------------- -# Expansion of @NUM, where the current rule has RULE-LENGTH symbols +# Expansion of @POS, where the current rule has RULE-LENGTH symbols # on RHS. m4_define([b4_rhs_location], [(yylsp@{b4_subtract([$2], [$1])@})]) diff --git a/src/scan-code.l b/src/scan-code.l index ed21d547..a58ab4be 100644 --- a/src/scan-code.l +++ b/src/scan-code.l @@ -611,14 +611,12 @@ handle_action_dollar (symbol_list *rule, char *text, location dollar_loc) effective_rule_length = symbol_list_length (rule->next); } - /* Get the type name if explicit. */ + /* The type name if explicit, otherwise left null. */ char const *type_name = NULL; char *cp = fetch_type_name (text + 1, &type_name, dollar_loc); - int n = parse_ref (cp, effective_rule, effective_rule_length, rule->midrule_parent_rhs_index, text, dollar_loc, '$'); - - /* End type_name. */ + /* End type_name. Don't do it ealier: parse_ref depends on TEXT. */ if (type_name) cp[-1] = '\0'; @@ -628,6 +626,7 @@ handle_action_dollar (symbol_list *rule, char *text, location dollar_loc) break; case LHS_REF: + { if (!type_name) type_name = symbol_list_n_type_name_get (rule, 0); @@ -654,9 +653,12 @@ handle_action_dollar (symbol_list *rule, char *text, location dollar_loc) obstack_quote (&obstack_for_string, type_name); obstack_sgrow (&obstack_for_string, ")["); rule->action_props.is_value_used = true; + } break; + /* Reference to a RHS symbol. */ default: + { if (max_left_semantic_context < 1 - n) max_left_semantic_context = 1 - n; if (!type_name && 0 < n) @@ -685,6 +687,7 @@ handle_action_dollar (symbol_list *rule, char *text, location dollar_loc) n); sym->action_props.is_value_used = true; } + } break; } }
