【发布时间】:2015-07-30 23:23:01
【问题描述】:
我正在为 SHARC 处理器开发一个名为 CrossCore Embedded Studio 的 DSP 工具链。除了对汇编语言的支持很差之外,IDE 实现得很好。
我不确定 ADI 公司是否会在不久的将来对其提供更好的支持。
我的意思是,目前没有代码折叠,没有轮廓和非常简约的代码着色支持。我想快速实现一些更高效的东西,我正在寻找一种在 Eclipse Luna 中实现新语言定义的方法。
我找到的是xtext。所以我按照 5 分钟和 15 分钟的教程阅读了一些关于它的文章。
我现在已经准备好实现我的语言了。因为这种汇编语言从c 继承了非常相似的方面(即预处理器指令、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;
【问题讨论】: