From 6938b288a540233877cb747d381a85b9289df7b2 Mon Sep 17 00:00:00 2001 From: joshvera Date: Fri, 24 Mar 2017 14:51:37 -0400 Subject: [PATCH] Make external scanner symbol map unique --- src/compiler/generate_code/c_code.cc | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/compiler/generate_code/c_code.cc b/src/compiler/generate_code/c_code.cc index 76d82ce2..07e27baf 100644 --- a/src/compiler/generate_code/c_code.cc +++ b/src/compiler/generate_code/c_code.cc @@ -295,7 +295,10 @@ class CCodeGenerator { } void add_external_scanner_symbol_map() { - line("TSSymbol ts_external_scanner_symbol_map[EXTERNAL_TOKEN_COUNT] = {"); + string language_function_name = "tree_sitter_" + name; + string external_scanner_name = language_function_name + "_external_scanner"; + + line("TSSymbol " + external_scanner_name + "_symbol_map[EXTERNAL_TOKEN_COUNT] = {"); indent([&]() { for (size_t i = 0; i < syntax_grammar.external_tokens.size(); i++) { line("[" + external_token_id(i) + "] = " + symbol_id(Symbol::external(i)) + ","); @@ -381,7 +384,7 @@ class CCodeGenerator { } else { indent([&]() { line("(const bool *)ts_external_scanner_states,"); - line("ts_external_scanner_symbol_map,"); + line(external_scanner_name + "_symbol_map,"); line(external_scanner_name + "_create,"); line(external_scanner_name + "_destroy,"); line(external_scanner_name + "_reset,");