Improve type-safety of ItemSet transitions methods

This commit is contained in:
Max Brunsfeld 2013-12-22 00:19:55 -08:00
parent 9667b3fd6c
commit 323184f981
8 changed files with 42 additions and 46 deletions

View file

@ -23,9 +23,10 @@ namespace tree_sitter {
void add_shift_actions(const ItemSet &item_set, size_t state_index) {
for (auto transition : item_set.sym_transitions(grammar)) {
auto symbol = static_pointer_cast<const rules::Symbol>(transition.first);
size_t new_state_index = add_item_set(*transition.second);
table.add_action(state_index, symbol->name, ParseAction::Shift(new_state_index));
rules::Symbol symbol = *transition.first;
ItemSet item_set = *transition.second;
size_t new_state_index = add_item_set(item_set);
table.add_action(state_index, symbol.name, ParseAction::Shift(new_state_index));
}
}