是否有用于Javascript或PHP的解析表达式语法(PEG)库?

时间:2008-09-17 03:15:37

标签: php javascript parsing generative-programming

我发现自己被用于描述领域特定语言的解析表达式语法形式主义,但到目前为止,我发现的实现代码是用Java和Haskell等语言编写的,这些语言在共享托管环境中不是Web服务器友好的我的组织必须与之共存。

有没有人知道任何用于Javascript或PHP的PEG库或PackRat解析器生成器?当然,任何语言中可以生成Javascript或PHP源代码的代码生成器都可以解决问题。

7 个答案:

答案 0 :(得分:17)

我最近为JavaScript编写了基于PEG的解析器生成器PEG.js。它可以在命令行中使用,也可以从浏览器中试用。

答案 1 :(得分:10)

实际上有一个用于Javascript:OMeta。 http://www.tinlizzie.org/ometa/

我还在Python中实现了这个版本:http://github.com/python-parsley/parsley

答案 2 :(得分:4)

php PEG https://github.com/maetl/php-peg

这篇文章真的很老了,但我通过谷歌找到了它,应该已经回答了

答案 3 :(得分:2)

Language.js

  

Language.js是一个基于PEG(Parsing Expression Grammar)的开源实验性新解析器,特别添加了“淘气OR”运算符,以独特的新方式处理错误。它利用memoization来实现线性时间解析速度

答案 4 :(得分:1)

JavaScript也有Kouprey,这是一个非常容易使用的PEG生成器/库。

答案 5 :(得分:0)

看看https://github.com/leblancmeneses/NPEG可以很容易地转换成php。 使用匿名函数创建解析树。

答案 6 :(得分:-3)

你看过ANTLR了吗?它生成词法分析器和解析器代码,处理抽象语法树,允许你插入要注入词法分析器/解析器代码的语法代码,以及< strong>可用于各种语言!