【问题标题】:Xtext: Associating Different Root Elements with Different File ExtensionsXtext:将不同的根元素与不同的文件扩展名相关联
【发布时间】:2014-02-06 22:25:30
【问题描述】:

为了最好地说明我的要求,请考虑一种具有类和接口的类 java 语言。

这种语言要求所有类都位于扩展名为“.classdef”的文件中,并且所有接口都必须位于扩展名为“.intdef”的文件中。这些文件中的根语法元素会有所不同。

在接口文件中,它的根元素为Interface,其中可能包含AbstractMethodStaticConstant 的实例。

“.classdef”的语法根元素是Class,可以包含MethodDeclarationMemberVariableStaticConstant等实例。

xtext 是否可以根据文件扩展名从单个语法文件中具有不同的根语法元素?把它分成两个相关的语法对我来说没有意义。我不想要两个用于不同语法的 eclipse 插件/包。


以上只是一个说明。实际上,我有两种不同的文件类型...但是这两种文件类型之间支持的两组成员几乎完全重叠。

理论上,我可以在验证器中实现它,以防止您在其中一个文件中使用省略的类型。但是我还需要从内容助手等中过滤掉建议。

【问题讨论】:

    标签: xtext


    【解决方案1】:

    如果将多个 dsls/语言与继承结合起来,例如

    • baselang(无编辑贡献)
    • 类语言扩展了基础语言
    • interfacelang 扩展了baselang

    【讨论】:

    • 我可以用一个语法 / ui 项目做到这一点吗?我可以弄清楚如何通过单独的项目来做到这一点,但我真的宁愿避免这种开销!
    • 是的,您可以将多个语言部分添加到工作流程中,但我不知道这有多稳定
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-03
    • 1970-01-01
    • 1970-01-01
    • 2011-05-16
    相关资源
    最近更新 更多