【发布时间】:2016-03-29 09:50:45
【问题描述】:
我正在为自定义语言编写代码编辑器。我们将 ANTLR 用于词法分析器和解析器,将 CodeMirror 用于编辑器框架(在浏览器中运行)。
我可以做一些基本的事情,比如关键字的语法着色,以及提供基本的代码完成。
我发现用户经常在编辑某些东西,所以 ANTLR 解析器不是很有用,因为当前输入流不是完全可解析的(并且由于不完整的输入流)。
因此,我使用令牌流来确定发生了什么并尝试提供上下文相关的帮助。
我想知道是否有人可以就使用 ANTLR 作为代码编辑器的一部分提供一些指导。我是否在使用令牌流而不是解析树的正确轨道上?
是否可以利用 ANTLR API 来执行诸如提前查找令牌以了解用户当前正在编辑的内容的整体上下文之类的事情?
对不起,如果这有点含糊。刚刚开始这个项目。 :-)
感谢您的帮助。
【问题讨论】:
-
相信ANTLR的作者很久以前就已经明确表示它不是为那个场景而设计的。您可能需要编写一个手动编译器框架来处理它,就像任何其他 IDE 一样。
-
好的,感谢您的反馈和链接!