我正在为SHARC处理器开发一个名为CrossCore Embedded Studio的DSP工具链。除了非常差的汇编语言支持外,IDE还实现得很好。
我不确定ADI公司是否会在不久的将来为其提供更好的支持。
我的意思是,目前没有代码折叠,没有轮廓和非常简约的代码着色支持。我想快速实现更高效的东西,我正在寻找一种在Eclipse Luna中实现新语言定义的方法。
我发现的是xtext。所以我按照5和15分钟的教程阅读了一些关于它的文章。
我现在准备实施我的语言了。因为这种汇编语言从c(即预处理器指令,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;
答案 0 :(得分:1)
虽然我没有使用Xtext的长轨迹,但我建议你搜索的语法就像你想要完成的语法,而不是将其限制为Xtext。据我所知,Xtext是在Antlr之上构建的,Antlr是一个功能强大的解析器生成器,用于读取,处理,执行或翻译结构化文本或二进制文件(来自its website)。现在,在语法示例方面,Antlr项目有一些贡献,您可以找到它们here。
在该存储库中,您可以找到C grammar written in Antlr,这应该是Xtext语法的良好起点;它没有太大的变化。