繁体   English   中英

如何从野牛文件中使用JISON生成解析器

[英]How to generate a parser with JISON from a bison file

我正在尝试用JavaScript为音乐符号的Lilypond语言编写一个解析器。 我的第一本手册尝试了,但是只能处理一小部分语言。 由于Lilypond使用bison文件定义其语法[1],而JISON声称能够使用bison文件工作,因此我的想法也许是使用这些定义在JavaScript中生成解析器。

我在任何地方都找不到任何示例,尝试将这些文件直接输入JISON只会引发错误。

解决此问题的最佳方法是什么?

[1]:参见https://github.com/lilypond/lilypond/blob/master/lily/lexer.llhttps://github.com/lilypond/lilypond/blob/master/lily/parser.yy ),

解析器相对容易(!):剥离C代码(首先应保留AST构造以了解其工作方式),保持优先级不变(JISON在某种程度上可以理解Bison语法)并填写填充AST的代码。 相比之下,Lexer相当复杂,我不知道JISON是否支持所有的flex特殊功能,但否则:像上面解析器部分所述。

但这仍然是很多工作,这是肯定的;-)

编辑:在与Lilypond的语法作了些细微的比较之后,并在网上搜索了更多信息,我偶然发现了以下引文:

LilyPond语法做了很多奇怪的事情……

由Lilypond开发人员在https://lwn.net/Articles/561990/中命名为“ dakas”

我同意。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM