在Xtext中哪里可以找到类似C语法的灵感?

Where to find a similar to C grammar as inspiration in Xtext?

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

我不确定Analog Devices是否会在不久的将来给予更好的支持。

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

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

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

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

Where can I find helpful examples to implement such language?

这里是 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 的长轨迹,但我建议您搜索与您尝试完成的语法相似的语法,而不是将其限制为 Xtext。据我所知,Xtext 建立在 Antlr 之上,它是一个强大的解析器生成器,用于读取、处理、执行或翻译结构化文本或二进制文件(来自 its website). Now, there are several contributions to the Antlr project in terms of grammars examples, and you can find them here.

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