【发布时间】:2020-10-15 05:05:45
【问题描述】:
我为状态机创建了一个 ecore 元模型。一台状态机有 0..* 状态、1..1 初始状态、1..1 最终状态和 1..* 转换。当我生成 XText 语法时,我会得到这样的结果
StateMachine:
'{'
('states' '{' states+=State ( "," states+=State)* '}' )?
'transitions' '{' transitions+=Transitions ( "," transitions+=Transitions)* '}'
'initialstate' initialstate=InitialState
'finalstate' finalstate=FinalState
'}';
既然状态有 0..* 关系,它们不应该只有 * 运算符,意思是 0 或更多吗?为什么他们也有“?”运算符表示 0 还是 1?此外,转换具有 1..* 关系,它们不应该使用“+”运算符而不是 * 吗?
【问题讨论】:
标签: eclipse eclipse-plugin dsl xtext