我不太确定我是否了解范围界定过程在 xText 中的工作原理,以及使用多个模型文件。在一个文件中引用工作正常,只需指定一个规则ref=[referencedObject | ID]
,我可以让自动完成工作开箱即用;但是,我似乎无法访问EObject
另一个文件中的任何内容。我找到的信息对那个案例不是很明确,我真的不明白我应该做什么才能让它工作......
我尝试通过 引用QualifiedName
,但我根本不知道我应该在哪里进行引用 - 我的单独文件如何相互访问。
编辑:代码
File returns File:
UIRule | EventRule
;
QualifiedName:
ID ('.' ID)*
;
/* First file */
UIRule returns Ui:
{Ui}
"ui"
(screens+=ScreenRule (screens+=ScreenRule)*)?
;
ScreenRule returns Screen:
name=ID "as" "screen"
'{'
(elements+=GUIElementRule )*
'}'
;
GUIElementRule returns Button:
name=ID "as" "element"
;
/* Second file */
EventRule returns Event:
{Event}
"event"
rules+=RuleRule*
;
RuleRule returns Rule:
"on" "{" on=ButtonPressRule "}"
"do" "{" do=ActionRule "}"
;
ButtonPressRule returns Pressed:
"press" "[" source=[GUIElement | QualifiedName] "]"
;
ActionRule returns Open:
"open" "[" screen=[Screen | QualifiedName] "]"
;