Generate comments to annotate reduce table entries
This commit is contained in:
parent
659de44c31
commit
839174a635
@ -712,17 +712,22 @@ const uint16_t r_<%= rule.name.gsub("$", "_") %><%= rule.id %>_node_field_index_
|
|||||||
/** Parser reduce table. */
|
/** Parser reduce table. */
|
||||||
static const reduce_t parser_reduce_table[] = {
|
static const reduce_t parser_reduce_table[] = {
|
||||||
<% @parser.reduce_table.each do |reduce| %>
|
<% @parser.reduce_table.each do |reduce| %>
|
||||||
{<%= reduce[:token_id] %>u, <%= reduce[:rule_id] %>u, <%= reduce[:rule_set_id] %>u, <%= reduce[:n_states] %>u
|
{
|
||||||
|
<%= reduce[:token_id] %>u, /* Token: <%= reduce[:token] ? reduce[:token].name : "(any)" %> */
|
||||||
|
<%= reduce[:rule_id] %>u, /* Rule ID */
|
||||||
|
<%= reduce[:rule_set_id] %>u, /* Rule set ID (<%= reduce[:rule].rule_set.name %>) */
|
||||||
<% if @grammar.ast %>
|
<% if @grammar.ast %>
|
||||||
|
<%= reduce[:n_states] %>u, /* Number of states */
|
||||||
<% if reduce[:rule].flat_rule_set_node_field_index_map? %>
|
<% if reduce[:rule].flat_rule_set_node_field_index_map? %>
|
||||||
, NULL
|
NULL, /* No rule set node field index map (flat map) */
|
||||||
<% else %>
|
<% else %>
|
||||||
, &r_<%= reduce[:rule].name.gsub("$", "_") %><%= reduce[:rule].id %>_node_field_index_map[0]
|
&r_<%= reduce[:rule].name.gsub("$", "_") %><%= reduce[:rule].id %>_node_field_index_map[0], /* Rule set node field index map */
|
||||||
<% end %>
|
<% end %>
|
||||||
, <%= reduce[:rule].rule_set.ast_fields.size %>
|
<%= reduce[:rule].rule_set.ast_fields.size %>, /* Number of AST fields */
|
||||||
, <%= reduce[:propagate_optional_target] %>
|
<%= reduce[:propagate_optional_target] %>}, /* Propagate optional target? */
|
||||||
|
<% else %>
|
||||||
|
<%= reduce[:n_states] %>u},
|
||||||
<% end %>
|
<% end %>
|
||||||
},
|
|
||||||
<% end %>
|
<% end %>
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -875,17 +875,22 @@ immutable ushort[<%= rule.rule_set_node_field_index_map.size %>] r_<%= rule.name
|
|||||||
/** Parser reduce table. */
|
/** Parser reduce table. */
|
||||||
private immutable reduce_t[] parser_reduce_table = [
|
private immutable reduce_t[] parser_reduce_table = [
|
||||||
<% @parser.reduce_table.each do |reduce| %>
|
<% @parser.reduce_table.each do |reduce| %>
|
||||||
reduce_t(<%= reduce[:token_id] %>u, <%= reduce[:rule_id] %>u, <%= reduce[:rule_set_id] %>u, <%= reduce[:n_states] %>u
|
reduce_t(
|
||||||
|
<%= reduce[:token_id] %>u, /* Token: <%= reduce[:token] ? reduce[:token].name : "(any)" %> */
|
||||||
|
<%= reduce[:rule_id] %>u, /* Rule ID */
|
||||||
|
<%= reduce[:rule_set_id] %>u, /* Rule set ID (<%= reduce[:rule].rule_set.name %>) */
|
||||||
<% if @grammar.ast %>
|
<% if @grammar.ast %>
|
||||||
|
<%= reduce[:n_states] %>u, /* Number of states */
|
||||||
<% if reduce[:rule].flat_rule_set_node_field_index_map? %>
|
<% if reduce[:rule].flat_rule_set_node_field_index_map? %>
|
||||||
, null
|
null, /* No rule set node field index map (flat map) */
|
||||||
<% else %>
|
<% else %>
|
||||||
, &r_<%= reduce[:rule].name.gsub("$", "_") %><%= reduce[:rule].id %>_node_field_index_map[0]
|
&r_<%= reduce[:rule].name.gsub("$", "_") %><%= reduce[:rule].id %>_node_field_index_map[0], /* Rule set node field index map */
|
||||||
<% end %>
|
<% end %>
|
||||||
, <%= reduce[:rule].rule_set.ast_fields.size %>
|
<%= reduce[:rule].rule_set.ast_fields.size %>, /* Number of AST fields */
|
||||||
, <%= reduce[:propagate_optional_target] %>
|
<%= reduce[:propagate_optional_target] %>), /* Propagate optional target? */
|
||||||
|
<% else %>
|
||||||
|
<%= reduce[:n_states] %>u), /* Number of states */
|
||||||
<% end %>
|
<% end %>
|
||||||
),
|
|
||||||
<% end %>
|
<% end %>
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|||||||
@ -92,7 +92,7 @@ class Propane
|
|||||||
propagate_optional_target: rule.optional? && rule.components.size == 1}]
|
propagate_optional_target: rule.optional? && rule.components.size == 1}]
|
||||||
elsif reduce_actions = item_set.reduce_actions
|
elsif reduce_actions = item_set.reduce_actions
|
||||||
reduce_actions.map do |token, rule|
|
reduce_actions.map do |token, rule|
|
||||||
{token_id: token.id, rule_id: rule.id, rule: rule,
|
{token: token, token_id: token.id, rule_id: rule.id, rule: rule,
|
||||||
rule_set_id: rule.rule_set.id, n_states: rule.components.size,
|
rule_set_id: rule.rule_set.id, n_states: rule.components.size,
|
||||||
propagate_optional_target: rule.optional? && rule.components.size == 1}
|
propagate_optional_target: rule.optional? && rule.components.size == 1}
|
||||||
end
|
end
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user