YYParser是在Perl的Yapp基础上实现的基于JavaScript的LR(1)文法解析脚本生成器,这样说有一点点绕,但是实际上可以把它简单理解为yacc的Perl/JavaScript混合版,它生成的解释器代码是存JS的,但生成工具是一段Perl脚本。
要理解YYParser的工作原理必须要有一点点DFA、LALR(1)、正则表达式方面的知识,如果完全不了解这些,建议温习一下编译原理。YYParser是根据文法生成表驱动的LALR(1)分析算法,在设计文法表的时候,你可能需要一点点正则表达式的技巧。不过ypj文件本身的格式并不复杂,通过参考例子,你应该能很容易地掌握它们的写法。
任何人可以用它来快速生成一个JavaScript实现的LR(1)文法解释器,这样可以用很低的成本让你的前端脚本拥有LALR(1)算法解释不同语言文法的能力,比如用js去解释X-path,去分析bash文件或者去解释某些别的什么语言……
评论