【发布时间】:2014-09-02 05:44:27
【问题描述】:
如果有人问过这个问题,我提前道歉。 我有一种由语法定义的语言,我想知道人们如何为他们的自定义语法实施 Intellisense。这对我来说似乎是机械的;用户输入一些内容,然后将其馈送到生成的解析器并提供 keyword 建议。我猜解析将需要修改,以便它是增量的而不是一次性的,即生成的解析器。
我是这个领域的新手,所以欢迎任何提示。
我打算使用http://pegjs.majda.cz/,但任何事情都可以。
【问题讨论】:
-
首先要提到的是 PEG.js 绝不是增量解析器。其次,我编写了一个受 PEG.js 启发的库,并且我目前在发布之前用特性来饱和它。增量解析是一个艰难的时刻,所以我去谷歌搜索更多信息。最后,查看 CodeMirror 的示例。您正在寻找的东西绝对以一种直接的方式实现:在每次编辑时解析代码,将某种类型的所有标识符保存到数据结构中(如果您没有语言中的对象,则为数组),查找。
标签: javascript parsing peg