【发布时间】:2013-02-17 21:11:34
【问题描述】:
这是一个更笼统的问题,因为我真的不知道如何开始。基本上,我必须使用 Yacc 来解释/翻译一种叫做 CALC 的虚构语言,它可以对变量执行算术运算,然后将它们打印出来。我已经完成了解释工作,但我项目的第二部分是编写一个 C++ 文件,其中包含原始文件中的所有指令,已翻译。
我的问题是,我该怎么做?我是在语法规则的代码中写入文件,还是在 main 中写入?我一直在尝试在语法规则代码中执行此操作,但我发现数据正在向后写入文件(也就是说,如果我声明了四个变量,程序会打印出原始文件中声明的最后一个先编程,以此类推)。
【问题讨论】:
-
这个真的不清楚。如果你已经解决了 Yacc 部分,为什么还要问 Yacc?
-
还是和 Yacc 相关的。我已经解释了该语言,但我必须使用 Yacc 编写一个与给定程序执行相同操作的 C++ 文件。
-
@user1174511 如果您已经实现了解释,那么您已经拥有某种形式的包含代码的抽象数据结构(例如,AST 或 ASG)。您可以遍历这个结构并将其“序列化”为 C++。