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

时间:2015-07-23 22:00:35

标签: eclipse xtext

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

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

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

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

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

不幸的是我还没找到任何东西。遗憾的是,我发现在Xtext中不能轻易描述C或C ++,因为C-preprocessor和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;

1 个答案:

答案 0 :(得分:1)

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

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