我可以像使用简单的计算器一样使用bison和flex进行简单的扫描和解析,例如我可以输入(编译lex.yy.c和y.tab.c后生成的exe),3 + 4 * 5,exe会将结果显示为23.但我不知道如何执行以下操作:
x = 0;
while (x < 3) {
print x;
x = x + 1;
}
使用flex和bison。 我希望生成的exe打印x,直到while循环条件失败。我怎么做? 提前谢谢。
答案 0 :(得分:1)
您似乎正在尝试构建解释器。您需要的是1)实现符号表和2)定义从公共基类派生的解释器节点。每个节点将具有例如&#34;执行&#34;方法
您使用Bison / Yacc解析器构建节点树。然后&#34;执行&#34;树的根。