Попытка регенерировать zend_language_scanner.c
Я пытаюсь добавить новое ключевое слово в PHP (просто изучая ядро), поэтому я сделал следующее: добавил новый токен в zend_language_parser.y, использовал его в unticket_statement, скомпилировал PHP, но это не сработало. Похоже, мне нужно добавить это новое ключевое слово в zend_language_scanner.l (я предполагал это другими определениями в этом файле) и перегенерировать zend_language_scanner.c с помощью re2c.
Но вот что дал мне 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 ответ
Вы должны попробовать это так:
re2c --no-generation-date --case-inverted -cbdF -o a.c zend_language_scanner.l
У меня та же проблема, пока я не нашел исходный cmd из файла Makefile.frag
:
$(RE2C) $(RE2C_FLAGS) --case-inverted -cbdFt Zend/zend_language_scanner_defs.h -oZend/zend_language_scanner.c Zend/ zend_language_scanner.l)