xtext - 扩展 XFeatureCall 范围
问题描述
这让我困惑了一段时间……我做了研究,尝试了很多东西,但惨遭失败。到了这里问的时候了。
我的语法有这个规则来定义类型:
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 也是如此(在编译器中,我将添加一个“新”前缀来调用类构造函数)。但是,很自然地,XFeatureClass 在其默认范围内不包括 Java 类。
所以问题是,如何改变这种行为?我需要在 XFeatureClass 范围内包含 MyTypeDeclaration 实例(或更一般地说,将 MySupertype 作为超类的 Java 类)。我查看了类型计算机、getLinkingCandidates 等,但它看起来对我来说太神秘了。
我使用 2.15 版本,因为我需要 GWT ......
请帮忙,因为我真的被困在这一点上......
谢谢,
马丁
解决方案
推荐阅读
- java - 无法使用域/用户名和密码登录 Outlook
- android - 我的 android studio 中没有“Generate Signed Bundle”菜单选项
- javascript - Codemirror 装订线标记更改问题
- ios - 用 AsyncDisplayKit 包装嵌套的 ASStackLayoutSpec
- jquery - 如何多次运行可放置函数
- c# - C#如何返回当前文件夹以及要通过每个处理的子文件夹
- dns - 主机宕机时绑定自动删除dns记录
- java - ImageView.getX() 在 onWindowFocusChanged 中返回 0
- r - 无法解决 r 中的 foreach、“替换长度为零”以及其他有关 Windows 中并行的问题
- node.js - mongoose pre save - 检查用户名是否被占用