我正在为 Clite 实现一个语法分析器作为编程语言类分配。我正在使用带有 match() 函数的递归下降解析器,该函数将来自输入扫描器的字符串作为参数并检查它是否是预期的令牌,否则它会返回错误消息。
我一直在尝试为字母表声明一个集合,这样我就不必匹配字母表中的每个字母。像这样的东西:
void letter(){
if(currentToken==LETTER){
match(LETTER);
}
else
error();
}
我尝试使用#define,但意识到它不起作用
#define LETTER "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q" "r" "s" "t" "u" "v" "w" "x" "y" "z"
也尝试使用 union 或 typedef 但做不到。有任何想法吗?