0

私は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

このスキャナーを再生成する方法を知っている人はいますか、または何が間違っていますか?

4

1 に答える 1

2

次のように試してみてください:

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)
于 2013-05-09T14:17:32.533 に答える