Delphi Coco/R能将解析后的文件转换成字节码吗?

Delphi Coco/R能将解析后的文件转换成字节码吗?,delphi,compiler-construction,cocor,Delphi,Compiler Construction,Cocor,我想用Delphi编写一个简单的编译器,用于教学目的。我已经阅读了有关Coco/R的内容,并发现此Delphi实现:。据我所知,这是Delphi2009语法的解析器 要将解析后的文件转换成字节码,我需要做什么?Coco/R可以这样做吗 我知道像FastScript或DWS这样的脚本语言,但我想尝试为自己的目的编写自己的脚本 请给我一些建议或澄清一些事情 要将解析后的文件转换成字节码,我需要做什么 首先,决定您想要哪种字节码:JVM?LLVM?MSIL?发明你自己的 Coco/R可以这样做吗 Co

我想用Delphi编写一个简单的编译器,用于教学目的。我已经阅读了有关Coco/R的内容,并发现此Delphi实现:。据我所知,这是Delphi2009语法的解析器

要将解析后的文件转换成字节码,我需要做什么?Coco/R可以这样做吗

我知道像FastScript或DWS这样的脚本语言,但我想尝试为自己的目的编写自己的脚本

请给我一些建议或澄清一些事情

要将解析后的文件转换成字节码,我需要做什么

首先,决定您想要哪种字节码:JVM?LLVM?MSIL?发明你自己的

Coco/R可以这样做吗


Coco/R是一个解析器生成器框架,它只为您定义的语言生成lexer解析器并提供给生成器。之后的步骤是你的责任。尽管可能有一些项目可以帮助生成ast/目标代码(但我还没有找到任何Coco/R项目)。

您阅读过Coco/R手册吗?我想从那里开始。我想简单地将我的脚本转换为可执行代码-x86 EXE非常好。我为Delphi()找到了一个LLVM解析器,但它似乎不生成字节码。我遗漏了什么吗?这个答案告诉你的是,你需要编写自己的代码生成器。@Pateman:这个项目是一个带有LLVM后端的Pascal编译器,而不是一个任意的可执行/字节码脚本。然而,不存在这样的事情。如果您想使用Coco/R文档,请阅读它,解析器生成什么,在确定您的目标arch之后,将解析器生成的内容映射到您的目标arch本地语言(即x86 asm、llvm ir等)@LeleDumbo哦,那么您是说我可以将项目“绑定”到llvm?我能用这种方式生成字节码吗?抱歉,如果我现在不知道,但这让我很困惑,这就是我要求澄清的原因。@Pateman你可以把Coco/R吐出来的东西(我假设是AST)拿出来运行,比如从它生成LLVM IR代码。如果您已将程序编译为LLVM IR,则需要一种方法来告诉LLVM库集,它们将获取此代码,对其进行优化,并将其传递到其x86后端以生成机器代码。