扫描、解析和编译 ABAP 源的过程?

Process of scanning, parsing and compiling ABAP sources?

这是一个关于编译过程的技术性问题 ABAP代码。

我知道实际上有 ABAP 解析器和扫描器 类 调用 C 内核函数来完成真正的工作。然后是代码补全 returns 事务的功能并将程序的 AST(抽象源代码树)打印为 ABAP 列表或 XML.

现在我的问题是:是否可以 'skip' ABAP 源 代码并通过编写然后执行一个以外的其他方式直接生成这样的 AST SE80左右的ABAP程序,给它一些编译和编译的函数 执行它就好像它是用 ABAP 代码编写和解析的一样?

也就是能不能跳过源码的扫描解析,直接给 编译器的 AST?如果是这样,以什么格式? ABAP列表看起来更多 打印格式,不像例如Lisp 列表用括号括起来。

遗憾的是,ABAP 编译器不使用 AST 生成 VM 代码。 ABAP 编译器按顺序工作并将每个语句(即两个“.”之间的所有内容)转换为一个或多个虚拟机操作码。

如果您好奇,可以查看显示编译器输出的事务 SYNT。您还可以查看报告 RSLOAD00,其中显示了为程序生成的 ABAP VM 代码。

AST 仅建立在顶部以允许代码完成或高级分析。

如果要调用 ABAP 编译器,则需要生成文本 ABAP 源代码。