我希望可以正常使用数组,例如:a [1]。 xbase 似乎不支持数组语法,所以我自己定义了这个。但是这个任务压倒了我的头脑。谢谢。
错误(211):../org.eclipse.xtext.example.domainmodel/src-gen/org/eclipse/xtext/example/domainmodel/parser/antlr/internal/InternalDomainmodel.g:576:2:[致命]规则由于可从 alts 2,3 访问递归规则调用,ruleXExpressionOrVarDeclaration 具有非 LL(*) 决策。通过左分解或使用句法谓词或使用 backtrack=true 选项来解决。
generate domainmodel "http://www.xtext.org/example/Domainmodel"
import "http://www.eclipse.org/xtext/xbase/Xbase" as xbase
DomainModel:
importSection=XImportSection?
elements+=AbstractElement*;
AbstractElement:
PackageDeclaration | Entity;
PackageDeclaration:
'package' name=QualifiedName '{'
elements+=AbstractElement*
'}';
Entity:
'script' name=ValidID ('extends' superType=JvmParameterizedTypeReference)? '{'
features+=Feature*
'}';
Feature:
Property | Operation;
Property:
name=ValidID ':' type=JvmTypeReference;
Operation:
'def' name=ValidID '(' (params+=FullJvmFormalParameter (',' params+=FullJvmFormalParameter)*)? ')' (':' type=JvmTypeReference)?
body=XBlockExpression;
@Override
XExpressionOrVarDeclaration returns xbase::XExpression:
XVariableDeclaration | NpExpression | XExpression;
NpExpression returns xbase::XExpression:
XExpression '[' INT ']'
;
NpSlice:
{IntConstant} value=INT
;