Zie*_*iem 4 c pascal code-translation flex-lexer
我正在编写将 Pascal 转换为 C 的程序,需要一些帮助。我从扫描仪生成器 Flex 开始。我定义了一些规则并创建了或多或少工作正常的扫描仪。它将 Pascal 语法分解为标记,目前它只打印它发现的内容。但我不知道接下来该怎么做。有没有涉及这个主题的文章或书籍?你下一步怎么做?
为什么要做这样的Pascal to C转换器?
如果您只想运行一些 Pascal 程序,使用(或改进)现有的编译器(例如gpc或 Pascal 到 C 的翻译器,例如p2c)会更简单
如果您想将手写的 Pascal 代码转换为人类可读(和可改进)的 C 代码,则任务要困难得多;特别是,您可能希望转换缩进、注释、尽可能保持相同的名称 - 但避免与系统名称冲突 - 等等!
你总是想解析一些抽象的语法树,但这些树的确切性质是不同的。也许flex+bison甚至ANTLR可能足够,也可能不够(你总是可以写一个手写的解析器)。此外,错误恢复对您来说可能重要也可能不重要(在第一个语法错误上中止很容易;试图理解一个写得不好的语法错误的 Pascal 源是非常困难的)。
如果你想构建一个玩具 Pascal 编译器,可以考虑使用LLVM(甚至GCC中后端)
| 归档时间: |
|
| 查看次数: |
14662 次 |
| 最近记录: |