尝试重新生成zend_language_scanner.c

时间:2013-04-16 08:48:38

标签: php-internals

我正在尝试在PHP中添加一个新关键字(只是学习核心),所以我做的是:为zend_language_parser.y添加了一个新标记,在unticket_statement中使用它,编译PHP,但它没有锻炼。看来我需要在zend_language_scanner.l中添加新关键字(我假设它是由此文件中的其他定义)并在re2c的帮助下重新生成zend_language_scanner.c。

但这是re2c给我的:

$ re2c -isgf Zend/zend_language_scanner.l
re2c: error: line 1004, column 6: can't find symbol

第1004行包含此定义:

LNUM    [0-9]+

即使在未更改的zend_language_scanner.l文件中也会弹出此错误。

这是re2c -v输出:re2c 0.13.5

有人知道如何重新生成此扫描仪或我做错了什么?

1 个答案:

答案 0 :(得分:2)

你应该这样试试:

re2c --no-generation-date --case-inverted -cbdF -o a.c  zend_language_scanner.l

我遇到了同样的问题,直到我从文件Makefile.frag找到了源cmd:

$(RE2C) $(RE2C_FLAGS) --case-inverted -cbdFt Zend/zend_language_scanner_defs.h -oZend/zend_language_scanner.c Zend/     zend_language_scanner.l)