当前位置: 首页 > 知识库问答 >
问题:

以编程方式修改Xtext生成的Mwe2工作流

越飞语
2023-03-14

我正在以编程方式运行Mwe2工作流,为了成功运行此工作流,我需要将Terminals.xtext的referencedResource添加到GenerateYourdsl.Mwe2文件中。提到的GenerateYourdsl.mwe2文件是在我创建新项目时由Xtext生成的--我没有修改它。是否有可能从这个工作流中获取对象,用Java访问它,并将这个属性添加到工作流组件属性的语言属性中?

以下是工作流程

Workflow {

    component = XtextGenerator {
        configuration = {
            project = StandardProjectConfig {
                baseName = "org.example.yourdsl"
                rootPath = rootPath
                eclipsePlugin = {
                    enabled = true
                }
                createEclipseMetaData = true
            }
            code = {
                encoding = "UTF-8"
                lineDelimiter = "\n"
                fileHeader = "/*\n * generated by Xtext \${version}\n */"
            }
        }
        language = StandardLanguage {
            name = "org.example.yourdsl.YourDsl"
            fileExtensions = "yourdsl"
            //following line needs to be added - in original generated workflow it is not
           referencedResource = "platform:/resource/org.eclipse.xtext/org/eclipse/xtext/common/Terminals.xtext"

            serializer = {
                generateStub = false
            }
            validator = {
                // composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator"
                // Generates checks for @Deprecated grammar annotations, an IssueProvider and a corresponding PropertyPage
                generateDeprecationValidation = true
            }
        }
    }
}
XtextLinkingDiagnostic: null:1 Couldn't resolve reference to Grammar 'org.eclipse.xtext.common.Terminals'.
TransformationDiagnostic: null:36 Cannot create datatype WS. If this is supposed to return EString, make sure you have imported 'http://www.eclipse.org/emf/2002/Ecore' (ErrorCode: NoSuchTypeAvailable)
TransformationDiagnostic: null:39 Cannot create datatype NAME_TERMINAL. If this is supposed to return EString, make sure you have imported 'http://www.eclipse.org/emf/2002/Ecore' (ErrorCode: NoSuchTypeAvailable)
TransformationDiagnostic: null:42 Cannot create datatype VALUE_TERMINAL. If this is supposed to return EString, make sure you have imported 'http://www.eclipse.org/emf/2002/Ecore' (ErrorCode: NoSuchTypeAvailable)

共有1个答案

赵景曜
2023-03-14

应该不需要明确地添加终端语法。如果使用正确的类路径调用工作流,则应该通过org.eclipse.xtext.resource.ClassLoaderClasspathuriResolver.resolve(Object,URI)在类路径上找到它。看看向导在选择maven时创建了什么:调用maven exec插件,使用适当的类路径调用Mwe2Launcher main

 类似资料:
  • 我目前正在为一个遗留项目创建一个Maven构建,并试图在Maven构建中执行Xtext语言的编译,如下所述。我能够运行构建,但是一旦maven启动Xtext MWE2工作流,我就会在工作流中遇到以下问题: 我还用该语言手动检查了。xtext文件中是否有松散的“-”符号,但找不到。关于如何调试此问题有任何线索吗?我甚至不确定从哪里开始挖。

  • 问题内容: 给定2种rgb颜色和一个矩形区域,我想在这些颜色之间生成基本的线性渐变。我已经进行了快速搜索,唯一能够找到的是此Blog条目,但示例代码似乎丢失了,或者至少是在发布此信息之时。任何帮助,算法,代码示例,等等。这将用Java编写,但是显示层已经处理完毕,我只需要弄清楚如何弄清楚要显示的内容。 问题答案: 您需要在第一和第二种颜色之间进行插值。通过为每个分量(R,G,B)计算相同的插值,可

  • 问题内容: 我使用eclipse在最初独立于eclipse创建的应用程序上工作。因此,该应用程序的目录结构绝对不适合日食使用。 我想以编程方式为该应用程序生成一个项目。在和文件是很容易的弄清楚,我已经了解到,项目存储在工作区下 不幸的是,这里的某些文件(尤其是)似乎是以某种二进制格式编码的。直觉上,我尝试使用-没有骰子反序列化它。因此,它似乎不是序列化的Java对象。 我的问题是:有没有一种方法可

  • 问题内容: 有没有人使用基于Java的库来生成excel文档?最好支持2003年? 问题答案: 我目前正在使用非常全面的Apache POI(http://poi.apache.org/index.html)。2003文件格式版本仍处于beta版本,但似乎运行良好。我并没有很好地利用它的功能,只是对Excel进行简单的读写,但这似乎是可靠的。

  • 我目前正在研究Xtext,以创建一个可重用的DSL和一个构建在DSL之上的工件。简化后的项目布局如下: Projecta:包含基于XText的DSL、feature-project、updatesite等。 projectb:使用projectA中的工件生成代码。 projectc:使用从projectb生成的代码 使用Maven和Xtext构建projectA不是问题(网上已经有几个例子了),但

  • 问题内容: 我有一个Dropwizard应用程序,需要为配置列表中的每个配置生成十几个bean。健康检查,石英计划程序等。 像这样: 我有多个MyConfiguration实例,都需要这样的bean。现在,我必须复制并粘贴这些定义,并为每个新配置重命名它们。 我可以以某种方式遍历我的配置类并为每个配置类生成一组bean定义吗? 我可以使用子类解决方案或任何类型安全的方法,而无需每次添加新服务时都复