【问题标题】:linking xtext editor support with external ANTLR parser将 xtext 编辑器支持与外部 ANTLR 解析器链接
【发布时间】:2016-02-14 12:54:41
【问题描述】:

我当前的项目(命名为 IoTSuite)采用高级规范,解析它们,并在 Java 和 Android 中生成代码。在这个项目中,我编写了 ANTLR 语法来解析高级规范,并使用 StringTemplate 作为代码生成器。

但是,由于良好的编辑器支持和语法着色功能,我使用了 xtext 语法(与 ANTLR 语法相同,但它是用 xText 编写的)。现在,我执行以下三个步骤:

第 1 步:我编写了 xtext 语法,如下图所示。

第 2 步:现在,我从 MyDsl.xtext 语法生成支持工件,然后将整个项目作为 Eclipse 应用程序运行,如下图所示。

第 3 步:此后,Eclipse 应用程序运行,允许我编写高级规范,如下图所示。

现在,我的要求是 - 我想使用 IoTSuite 项目中编写的 ANTLR 语法解析高级规范,如步骤 3 所示。 简而言之,我的要求是将用 xtext 编写的高级规范与 ANTLR 解析器连接起来。我怎么能做到?如果您需要更清晰的解决方案,请告诉我。

【问题讨论】:

    标签: java antlr xtext stringtemplate


    【解决方案1】:

    Xtext 生成自己的 ANTLR 语法。该语法还配备了代码来实例化该语法的 AST。生成的解析器无法交换。

    您可能想要做的是在保存资源时调用您自己的 ANTLR 解析器。 IGenerator 挂钩可用于调用您的解析器和生成器。

    请考虑使用 Xtend 进行代码生成,它比 StringTemplate 好得多,并且可以与 Xtext 基础架构顺利集成。 SDK 附带的 Xtext 的 Statemachine 示例展示了如何执行此操作(以及使用 IGenerator 接口)。

    【讨论】:

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