我正在尝试在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
有人知道如何重新生成此扫描仪或我做错了什么?
答案 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)