如果这已经被问到,我提前道歉。我有一种由语法定义的语言,我想知道人们如何为他们的自定义语法实施 Intellisense。这对我来说似乎是机械的;用户输入一些内容,然后输入到生成的解析器中,并提供关键字建议。我想解析将需要修改,以便它是增量的而不是一次性的,即生成的解析器。
我是这个领域的新手,所以欢迎任何提示。
我打算使用http://pegjs.majda.cz/但任何事情都可以。
如果这已经被问到,我提前道歉。我有一种由语法定义的语言,我想知道人们如何为他们的自定义语法实施 Intellisense。这对我来说似乎是机械的;用户输入一些内容,然后输入到生成的解析器中,并提供关键字建议。我想解析将需要修改,以便它是增量的而不是一次性的,即生成的解析器。
我是这个领域的新手,所以欢迎任何提示。
我打算使用http://pegjs.majda.cz/但任何事情都可以。
我为一些需要对各种自定义语言进行语法高亮的项目编写了一个codemirror 语法插件。
一个为任何语言定义 JSON 格式的语法(或变体,因为 json 语法可以扩展其他 json 语法),并且插件会自动创建一个 codemirror 解析器,其中可以包括语法部分和语法错误、自动完成等
在此处查看实时示例
注意:插件中使用的 json 语法格式在许多方面与 PEG 语法形式相似(可能有更多选项)。但主要用于生成语法高亮解析器。该项目正在发展,未来可能会添加更多选项。