我正在开展一个项目,要求我为不同的语言创建一系列编辑器。语法由我们定义。
我正在寻找解决方案。 是否有一个快捷方式可以解决这个问题?
答案 0 :(得分:4)
您可以使用 XText :
开发文本域特定语言(DSL)的框架 只需使用Xtext的简单
DSL
语法语言描述您自己的EBNF
,生成器将创建一个解析器,一个AST-meta模型(在EMF中实现)以及一个功能齐全的Eclipse文本编辑器。
答案 1 :(得分:1)
答案 2 :(得分:1)
如果您正在寻找更低级别的可编程解决方案,那么Eclipse的IDE元工具平台是一个不错的选择(IMP)。
IMP为您提供的API是将您的现有解析器连接到Eclipse而不会有太多麻烦。您需要实现一个IParseController
接口,以调用您的解析器和ITokenIterator
来生成令牌和其他一些接口,以便为每种令牌分配字体。
前面提到的Rascal和Spoofax都建立在IMP之上。
答案 3 :(得分:1)
未提及的是DLTK(也在Tutorial regarding the development of a custom Eclipse editor中提出)
有Ruby,bash用它实现。