Add forward move states for each terminal symbol

This commit is contained in:
Max Brunsfeld 2016-02-12 23:44:05 -08:00
parent dee1f697c1
commit b4f2407a49
6 changed files with 81 additions and 25 deletions

View file

@ -167,6 +167,11 @@ ParseAction &ParseTable::add_action(ParseStateId id, Symbol symbol,
symbols[symbol];
else
symbols[symbol].structural = true;
for (ParseAction &existing_action : states[id].actions[symbol])
if (existing_action == action)
return existing_action;
states[id].actions[symbol].push_back(action);
return *states[id].actions[symbol].rbegin();
}