Skip to content

Commit 126f84a

Browse files
committed
Avoid unnecessary suffixes on external symbol identifiers
1 parent e21b450 commit 126f84a

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

src/compiler/generate_code/c_code.cc

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -176,11 +176,14 @@ class CCodeGenerator {
176176
}
177177

178178
for (size_t i = 0; i < syntax_grammar.external_tokens.size(); i++) {
179-
const ExternalToken &external_token = syntax_grammar.external_tokens[i];
180-
if (external_token.corresponding_internal_token == rules::NONE()) {
181-
assign_symbol_id(Symbol::external(i), &symbol_id_values);
182-
} else {
183-
symbol_ids[Symbol::external(i)] = symbol_ids[external_token.corresponding_internal_token];
179+
Symbol symbol = Symbol::external(i);
180+
if (!symbol_ids.count(symbol)) {
181+
const ExternalToken &external_token = syntax_grammar.external_tokens[i];
182+
if (external_token.corresponding_internal_token == rules::NONE()) {
183+
assign_symbol_id(Symbol::external(i), &symbol_id_values);
184+
} else {
185+
symbol_ids[Symbol::external(i)] = symbol_ids[external_token.corresponding_internal_token];
186+
}
184187
}
185188
}
186189

0 commit comments

Comments
 (0)