Fix segfault when grammar consists of a single token
This commit is contained in:
parent
df3613d511
commit
6a8addb84f
2 changed files with 26 additions and 1 deletions
|
|
@ -135,7 +135,10 @@ class ParseTableBuilder {
|
|||
conflict_manager(ParseConflictManager(grammar, lex_grammar)) {}
|
||||
|
||||
pair<ParseTable, vector<Conflict> > build() {
|
||||
ParseItem start_item(rules::START(), make_shared<Symbol>(0), 0);
|
||||
auto start_symbol = grammar.rules.empty() ?
|
||||
make_shared<Symbol>(0, rules::SymbolOptionToken) :
|
||||
make_shared<Symbol>(0);
|
||||
ParseItem start_item(rules::START(), start_symbol, 0);
|
||||
add_parse_state(
|
||||
item_set_closure(start_item, { rules::END_OF_INPUT() }, grammar));
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue