- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Xtext 和 XBase 语法。
在每个生成的 java 类中,我需要在我的模型推断器中初始化类变量。此变量未在我的模型中定义,但这没有任何区别。
我已经可以通过函数生成这个变量了
element.toField("isSomethingSet", newTypeRef("boolean"))
,但我无法初始化它。我确定我应该使用带有名为 initializer 的附加参数的 toField 函数,但由于这是 Procedure1 类型,我不知道如何使用它。
这是我从 Xtext 文档中提取的略有改动的示例。语法:
grammar org.xtext.example.mydsl.MyDsl with org.eclipse.xtext.xbase.Xbase
generate myDsl "http://www.xtext.org/example/mydsl/MyDsl"
Domainmodel:
(elements += AbstractElement)*;
AbstractElement:
Entity;
Entity:
'entity' name = ID ('extends' superType = JvmTypeReference)?
'{'
(features += Feature)*
'}';
Feature:
name = ID ':' type = JvmTypeReference;
ModelInferrer.xtend
import com.google.inject.Inject
import org.eclipse.xtext.naming.IQualifiedNameProvider
import org.eclipse.xtext.xbase.jvmmodel.AbstractModelInferrer
import org.eclipse.xtext.xbase.jvmmodel.IJvmDeclaredTypeAcceptor
import org.eclipse.xtext.xbase.jvmmodel.JvmTypesBuilder
import org.xtext.example.mydsl.myDsl.Entity
class MyDslJvmModelInferrer extends AbstractModelInferrer {
@Inject extension JvmTypesBuilder
@Inject extension IQualifiedNameProvider
def dispatch void infer(Entity element, IJvmDeclaredTypeAcceptor acceptor,
boolean isPrelinkingPhase) {
acceptor.accept(element.toClass(element.fullyQualifiedName)).initializeLater [
documentation = element.documentation
members += element.toField("isSomethingSet", newTypeRef("boolean"))
for (feature : element.features) {
members += feature.toField(feature.name, feature.type)
members += feature.toSetter(feature.name, feature.type)
members += feature.toGetter(feature.name, feature.type)
}
]
}
}
最佳答案
该过程封装了配置字段所需的代码,例如设置可见性、静态标志、文档或字段初始值设定项:
element.toField("isSomethingSet", newTypeRef("boolean")) [
initializer = '''false''' // with Xtext 2.5 or
initializer = [ append('false') ] // prior to 2.5
]
关于dsl - XText w/XBase - 初始化生成的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22223959/
本文整理了Java中org.eclipse.xtext.xbase.XFeatureCall类的一些代码示例,展示了XFeatureCall类的具体用法。这些代码示例主要来源于Github/Stack
本文整理了Java中org.eclipse.xtext.xbase.XExpression类的一些代码示例,展示了XExpression类的具体用法。这些代码示例主要来源于Github/Stackov
本文整理了Java中org.eclipse.xtext.xbase.XbaseStandaloneSetup类的一些代码示例,展示了XbaseStandaloneSetup类的具体用法。这些代码示例主
本文整理了Java中org.eclipse.xtext.xbase.XAbstractFeatureCall类的一些代码示例,展示了XAbstractFeatureCall类的具体用法。这些代码示例主
我正在使用xbase grammar xolang.Xolang with org.eclipse.xtext.xbase.Xbase 还有一个 XBlockExpression 我希望在哪里编写代码
我正在使用带有 XBase 语法的 Xtext。 在每个生成的 java 类中,我需要在模型推断器中初始化类变量。我的模型中未定义此变量,但这没有什么区别。 我已经可以通过函数生成这个变量 eleme
我正在使用 xbase grammar xolang.Xolang with org.eclipse.xtext.xbase.Xbase 和一个 XBlockExpression 我希望在哪里编写我的
我正在使用 Xtext 和 XBase 语法。 在每个生成的 java 类中,我需要在我的模型推断器中初始化类变量。此变量未在我的模型中定义,但这没有任何区别。 我已经可以通过函数生成这个变量了 el
我有一个很大的 DBF 文件 (~700MB)。我只想使用 python 脚本从中选择几行。我已经看到 dbfpy 是一个很好的模块,可以打开这种类型的数据库,但目前我还没有找到任何查询功能。遍历 p
本文整理了Java中org.eclipse.xtext.xbase.validation.XbaseConfigurableIssueCodes类的一些代码示例,展示了XbaseConfigurabl
我正在尝试使用 https://github.com/hisamu/php-xbase lib 在我的项目中。 我已将 XBase 文件夹从存储库复制到我的根目录并在我的根目录中创建了 index.p
我想在运行时从我的 Java 应用程序调用一些脚本。但我想对用户隐藏内部模型。所以我的想法是使用 Xtext 编写 DSL。并添加用户在此 DSL 中编写脚本然后在应用程序中执行它的功能。 可能吗?
这是一个用于创建特定领域语言 (DSL) 的类(class)项目。没什么值得考虑的。对于我自己来说,我将这个项目纯粹作为学习所涉及步骤的练习。 涉及的文件(附带代码文件):: 1)Xtext 语法(e
本文整理了Java中org.eclipse.xtext.xbase.XFeatureCall.getConcreteSyntaxFeatureName()方法的一些代码示例,展示了XFeatureCa
本文整理了Java中org.eclipse.xtext.xbase.XFeatureCall.getFeature()方法的一些代码示例,展示了XFeatureCall.getFeature()的具体
本文整理了Java中org.eclipse.xtext.xbase.XFeatureCall.setFeature()方法的一些代码示例,展示了XFeatureCall.setFeature()的具体
本文整理了Java中org.eclipse.xtext.xbase.XExpression.eIsProxy()方法的一些代码示例,展示了XExpression.eIsProxy()的具体用法。这些代
本文整理了Java中org.eclipse.xtext.xbase.XExpression.eResource()方法的一些代码示例,展示了XExpression.eResource()的具体用法。这
本文整理了Java中org.eclipse.xtext.xbase.XExpression.eContainer()方法的一些代码示例,展示了XExpression.eContainer()的具体用法
本文整理了Java中org.eclipse.xtext.xbase.XExpression.eAllContents()方法的一些代码示例,展示了XExpression.eAllContents()的
我是一名优秀的程序员,十分优秀!