Handle external tokens in apply_transitive_closure

This commit is contained in:
Max Brunsfeld 2016-12-04 10:40:32 -08:00
parent 0f8e130687
commit d72b49316b
2 changed files with 39 additions and 24 deletions

View file

@ -31,6 +31,11 @@ ParseItemSetBuilder::ParseItemSetBuilder(const SyntaxGrammar &grammar,
first_sets.insert({symbol, LookaheadSet({ symbol })});
}
for (size_t i = 0, n = grammar.external_tokens.size(); i < n; i++) {
Symbol symbol(i, Symbol::External);
first_sets.insert({symbol, LookaheadSet({ symbol })});
}
for (size_t i = 0, n = grammar.variables.size(); i < n; i++) {
Symbol symbol(i, Symbol::NonTerminal);
LookaheadSet first_set;