【问题标题】:Where to find a similar to C grammar as inspiration in Xtext?在 Xtext 中哪里可以找到类似于 C 语法的灵感?
【发布时间】:2015-07-30 23:23:01
【问题描述】:

我正在为 SHARC 处理器开发一个名为 CrossCore Embedded Studio 的 DSP 工具链。除了对汇编语言的支持很差之外,IDE 实现得很好。

我不确定 ADI 公司是否会在不久的将来对其提供更好的支持。

我的意思是,目前没有代码折叠,没有轮廓和非常简约的代码着色支持。我想快速实现一些更高效的东西,我正在寻找一种在 Eclipse Luna 中实现新语言定义的方法。

我找到的是。所以我按照 5 分钟和 15 分钟的教程阅读了一些关于它的文章。

我现在已经准备好实现我的语言了。因为这种汇编语言从 继承了非常相似的方面(预处理器指令、C/C++ cmets、算术运算和分号结尾),所以我正在积极研究 Xtext 的 C 语法示例。

不幸的是,我还没有找到任何东西。遗憾的是,我发现 C 或 C++ 不能在 Xtext 中轻松描述,因为有多个语言层,例如 C 预处理器和 C。我不会承认失败,我认为我可以实现一些足够的东西,因为我只需要近似的语法着色,一些代码折叠和大纲支持。

我在哪里可以找到有用的示例来实现这种语言?

SHARC 汇编语言如下所示:

#include <foo.h>
#include "foo.h"
#ifdef BAR
    .segment/dm slow;
#else
    .segment/dm fast;
#endif

label:
    r1 = r2; /* Another comment */
    r3 = dm( _symbol + 0 );
    r5 = r3 + 1; // A comment
    jump(db);
       nop;
       r8 = pass r8;

another_label:
    {   // Not currently recognized by the assembly, but useful for readabily, I would like to enable code folding here...
        r2 = 3;
    }

final_label.end: nop;
.endseg;

【问题讨论】:

    标签: xtext c eclipse xtext


    【解决方案1】:

    虽然我使用 Xtext 的轨迹并不长,但我建议您搜索一种语法,就像您尝试完成的语法一样,而不是将其限制为 Xtext。据我所知,Xtext 建立在 Antlr 之上,Antlr 是一个强大的解析器生成器,用于读取、处理、执行或翻译结构化文本或二进制文件(来自its website)。现在,Antlr 项目有几个在语法示例方面的贡献,您可以找到它们here

    在该存储库中,您可以找到C grammar written in Antlr,这应该是学习 Xtext 语法的一个很好的起点;变化不大。

    【讨论】:

      猜你喜欢
      • 2010-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-23
      • 1970-01-01
      • 1970-01-01
      • 2011-12-06
      相关资源
      最近更新 更多