Create ambiguity nodes when joining stack heads

This commit is contained in:
Max Brunsfeld 2015-05-28 15:06:39 -07:00
parent 1ca5f4ab15
commit 381f89f8ba
13 changed files with 130 additions and 72 deletions

View file

@ -69,6 +69,7 @@ class ParseTableBuilder {
parse_table.symbols.insert(rules::ERROR());
parse_table.symbols.insert(rules::DOCUMENT());
parse_table.symbols.insert(rules::AMBIGUITY());
return { parse_table, nullptr };
}

View file

@ -315,8 +315,12 @@ class CCodeGenerator {
return "ts_builtin_sym_error";
else if (symbol == rules::END_OF_INPUT())
return "ts_builtin_sym_end";
else
else if (symbol == rules::DOCUMENT())
return "ts_builtin_sym_document";
else if (symbol == rules::AMBIGUITY())
return "ts_builtin_sym_ambiguity";
else
return "";
} else {
string name = sanitize_name(rule_name(symbol));
if (symbol.is_auxiliary())

View file

@ -7,6 +7,7 @@ Symbol END_OF_INPUT() { return Symbol(-1, SymbolOptionToken); }
Symbol ERROR() { return Symbol(-2, SymbolOptionToken); }
Symbol START() { return Symbol(-3); }
Symbol DOCUMENT() { return Symbol(-4); }
Symbol AMBIGUITY() { return Symbol(-5); }
} // namespace rules
} // namespace tree_sitter

View file

@ -10,6 +10,7 @@ Symbol ERROR();
Symbol START();
Symbol END_OF_INPUT();
Symbol DOCUMENT();
Symbol AMBIGUITY();
} // namespace rules
} // namespace tree_sitter