出于好奇,一直在研究一些解析器生成器库(Flex,Bison,ANTLR,一些与LLVM相关的东西),是否有可能为预先存在的脚本语言引擎(如PHP)编写新的解析器生成器?我知道Facebook基本上已经完成了它,除了他们编写了一个全新的虚拟机来解决他们使用Zend引擎(?)的问题。
我已经能够为编译的VM(如JVM)创建一些玩具编译器示例,方法是生成基本语法的操作码并学习大量JVM的类文件结构和操作码。
令我感到兴趣的是,是否可以用自己的方式替换Zend的PHP解析器,而无需编辑引擎的核心。
我只是出于好奇而问这个问题,因为我觉得尝试使用一些非源代码的Zend / PHP引擎语言是一个令人愉快的小产品。