abstract-syntax-tree - 仅使用 Xtext 中的动作的对象对具体和抽象语法有什么影响?
问题描述
我目前正在研究其他人的 Xtext 源代码。有一个对象,它只使用动作,没有别的。让对象的名称为“空”。源代码的相关部分如下。
grammar ...
import "myUri" as MyImport
...
SomeOtherObject returns MyImport::SomeOtherObject:
"someKeyword" AnotherObject empty += Empty
;
// The most relevant part:
Empty returns MyImport::Empty:
{MyImport::Empty}
;
...
我想知道这个对象是否对具体语法有影响?此外,空对象是什么样子的?由于 line empty += Empty
,可能有多个 Empty 实例,但我想知道解析器如何决定创建多少个实例?
解决方案
+=
不适用于解析器。它用于元模型推理。所以empty
将是一个列表。empty+=Empty+
或者empty+=Empty+
在运行工作流时会导致错误