Попытка регенерировать 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)
Другие вопросы по тегам