Avoid unnecessary suffixes on external symbol identifiers

This commit is contained in:
Max Brunsfeld 2018-08-01 16:11:21 -07:00
parent e21b4505c8
commit 126f84aa73

View file

@ -176,11 +176,14 @@ class CCodeGenerator {
}
for (size_t i = 0; i < syntax_grammar.external_tokens.size(); i++) {
const ExternalToken &external_token = syntax_grammar.external_tokens[i];
if (external_token.corresponding_internal_token == rules::NONE()) {
assign_symbol_id(Symbol::external(i), &symbol_id_values);
} else {
symbol_ids[Symbol::external(i)] = symbol_ids[external_token.corresponding_internal_token];
Symbol symbol = Symbol::external(i);
if (!symbol_ids.count(symbol)) {
const ExternalToken &external_token = syntax_grammar.external_tokens[i];
if (external_token.corresponding_internal_token == rules::NONE()) {
assign_symbol_id(Symbol::external(i), &symbol_id_values);
} else {
symbol_ids[Symbol::external(i)] = symbol_ids[external_token.corresponding_internal_token];
}
}
}