0

我希望可以正常使用数组,例如: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
;
4

0 回答 0