为了学习目的,我正在创建自己的脚本语言。我一直在阅读“龙书”,对于符号表,以及构成标识符的字符串的实际驻留位置和所有权,我有些不清楚。我认为大部分的混乱是由于这本书使用了较旧的技术,而我则希望使用C++11。SymbolTable将是某种类型的hash_map,使用_lexeme_s作为密钥。即string类型。也就是说,SymbolTable中的一个条目可以是<SYMBOL_TYPE::VARIABLE,3>,这意味着索引3处的Variables数组将使用这个变量type + value + a
我在C源文件(file1.c)中声明了一个全局变量,并在C++源文件(file2.cpp)中定义的方法中使用了该变量。两个文件中包含的标题将变量声明为extern。项目属性C\C++ -> Advanced -> compile as设置为defualt,根据文档,这意味着编译器使用文件扩展名来推断文件类型。如果我将此选项设置为Compile as C code或Compile as C