若文章排版不清或需要查看文中链接,请点击文章左下角的“阅读原文”
紧跟技术风向标,不迷失但也绝不落后,Go技术大全公众号正式开启,欢迎关注。
PHP关键字异构化实验
PHP词法分析和语法分析
简单理解PHP代码执行过程:http://blog.csdn.net/risingsun001/article/details/22888861
PHP编译执行基本过程如下图:
目前PHP词法分析器采用re2c规则,在PHP源码中的位置是zend/zend_language_scanner.c,它是由词法规则文件zend_language_scanner.l经过re2c编译生成的,命令如下:
re2c o zend_language_scanner.c zend_language_scanner.l
PHP语法分析器用bison来生成,在PHP源码中的位置是zend/zend_language_parser.c,它是由语法规则文件zend_language_parser.y经过bison编译生成,命令如下:
bison o zend_language_parser.c zend_language_parser.y
zend虚拟机负责执行生成的opcode。
怎么构建自己的PHP语法规则