【问题标题】:Xtend/Xtext DatatypesXtend/Xtext 数据类型
【发布时间】:2012-12-10 08:45:27
【问题描述】:

我在 Xtext 中创建的数据类型有问题。问题在于这个函数:

    «FOR e: bla.EAllAttributes»
      «e.EType.name» «e.name»;
    «ENDFOR»

这个 for 循环只为 e.EType.name 返回 EInt 或 EString。但我需要在我的 DSL 中创建的终端规则/数据类型,如 double、boolean 等。似乎每个带有字符串表达式的终端规则都作为 EString 返回,而只有数字的规则作为 EInt 返回。但是枚举会正确返回...

提前感谢您的帮助。

【问题讨论】:

    标签: code-generation xtext xtend


    【解决方案1】:

    手册中有一节解释了您的问题。请参阅“参考文档”、“语法语言”、“语法”、“规则”、“终端规则”、“返回类型”:

    每个终端规则都返回一个原子值(Ecore EDataType)。默认情况下,假定应该返回 ecore::EString) 的一个实例。但是,如果您想提供不同的类型,您可以指定它。

    该部分还概述了您必须提供的值转换器的语法更改和注册。

    还有另一个部分“数据类型规则”,基本上说它与“终端规则”情况相同,并将您转发到“值转换器”部分。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多