扩展XFeatureCall范围

时间:2019-05-14 21:29:57

标签: xtext

这已经让我感到困惑了……我已经进行了研究,尝试了很多事情,但是失败了。是时候在这里问了。

我的语法有以下规则来定义类型:

MyTypeDeclaration returns XExpression:
    =>({MyTypeDeclaration} type=JvmTypeReference name=ValidID '(')
    (params+=FullJvmFormalParameter (',' params+=FullJvmFormalParameter)*)?
  ')' block=XBlockExpression
;

当然,在推断器中,我将其映射到一个类(具有父类MySupertype以便与其他Java类区分开)

    members += f.toClass(f.fullyQualifiedName) [
      superTypes += typeRef(MySupertype)
      ...

      members += f.toConstructor [
        for (p : f.params)
          parameters += p.toParameter(p.name, p.parameterType)
        body = f.block
      ]
      ...
    ]

我需要将此类作为函数调用,例如使用XFeatureCall。 XFeatureCall :: feature是一个JvmIdentifiableElement,映射时也是MyTypeDeclaration(在编译器中,我将添加“ new”前缀以调用类构造函数)。但是,自然地,XFeatureClass在其默认范围内不包括Java类。

问题是,如何更改此行为?我需要在XFeatureClass范围内包括MyTypeDeclaration实例(或更一般地说,将MySupertype作为超类的Java类)。我看着类型计算机,getLinkingCandidates和al,但对我来说似乎太不可思议了。

我使用2.15版本是因为我需要GWT ...

请帮忙,因为我现在真的被困住了...

谢谢

马丁

0 个答案:

没有答案
相关问题