<分区>
我正在编写将 Pascal 翻译成 C 的程序,需要一些帮助。我从扫描仪生成器 Flex 开始。我定义了一些规则并创建了或多或少工作正常的扫描仪。它将 Pascal 语法分解为标记,现在它只打印它找到的内容。但我不知道下一步该怎么做。有没有关于这个主题的文章或书籍?下一步是什么?
<分区>
我正在编写将 Pascal 翻译成 C 的程序,需要一些帮助。我从扫描仪生成器 Flex 开始。我定义了一些规则并创建了或多或少工作正常的扫描仪。它将 Pascal 语法分解为标记,现在它只打印它找到的内容。但我不知道下一步该怎么做。有没有关于这个主题的文章或书籍?下一步是什么?
最佳答案
为什么要做这样一个 Pascal 到 C 的转换器?
如果您只想运行一些 Pascal 程序,使用(或改进)现有的编译器(如 gpc)会更简单。 ,或 Pascal 到 C 的翻译器,例如p2c
如果您想将手写的 Pascal 代码转换为人类可读(且可改进)的 C 代码,则任务要困难得多;特别是,您可能想要转换缩进、注释、尽可能保持相同的名称 - 但避免与系统名称冲突 - 等等!
你总是想解析一些抽象的语法树,但这些树的精确性质是不同的。也许 flex
+ bison
甚至 ANTLR可能足够也可能不够(你总是可以编写一个手写的解析器)。此外,错误恢复对您来说可能重要也可能不重要(在出现第一个语法错误时中止非常容易;试图理解一个写得不好、语法不正确的 Pascal 源代码非常困难)。
关于c - 帕斯卡到 C 转换器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10373935/