我很喜欢使用YARD:
http://code.google.com/p/yardparser/
http://www.codeproject.com/KB/recipes/yard-tokenizer.aspx
我能够构建出一个完全功能的计算器。我正在评估使用YARD来做PHP解析器。请指导一下PEG语法和解析器生成器的限制。非常感谢!
我很喜欢使用YARD:
http://code.google.com/p/yardparser/
http://www.codeproject.com/KB/recipes/yard-tokenizer.aspx
我能够构建出一个完全功能的计算器。我正在评估使用YARD来做PHP解析器。请指导一下PEG语法和解析器生成器的限制。非常感谢!
我认为PEG语法的一个大“问题”是它们不符合正常语法分类的方式,因为它们的运作方式根本不同。通常的语法在描述可以生成的所有可能句子(程序)时是“向后”的,而PEG则描述了如何进行解析——它们从另一端着手解决这个问题。
在我看来,这是一种更自然的思考问题的方式,对于任何手写的(递归下降)解析器,我都不会做其他事情。