这是关于
ABAP代码。

我知道实际上有ABAP解析器和扫描器类
调用C内核函数来完成实际工作。然后有代码完成
事务的功能,该事务以ABAP列表或XML的形式返回并打印程序的AST(抽象源树)。

现在我的问题是:是否可以“跳过” ABAP源
代码并通过其他方式直接生成此类AST,而不是编写然后执行
SE80左右的ABAP程序,并将其提供给一些可编译和
像将其写入ABAP代码中并从ABAP代码中进行解析一样执行它?

也就是说,我可以跳过源代码的扫描和解析,直接给出
AST编译器?如果可以,采用什么格式? ABAP列表看起来更多
列印格式,例如Lisp列表用括号括起来。

最佳答案

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

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

AST仅构建在最上面,以允许代码完成或高级分析。

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

10-07 16:43