server 52763dedf1 gitignore | 2 years ago | |
---|---|---|
.. | ||
README.md | 2 years ago | |
parser.template | 2 years ago | |
php5.y | 2 years ago | |
php7.y | 2 years ago | |
phpyLang.php | 2 years ago | |
rebuildParsers.php | 2 years ago | |
tokens.template | 2 years ago | |
tokens.y | 2 years ago |
php5.y
: PHP 5 grammar written in a pseudo languagephp7.y
: PHP 7 grammar written in a pseudo languagetokens.y
: Tokens definition shared between PHP 5 and PHP 7 grammarsparser.template
: A kmyacc
parser prototype file for PHPtokens.template
: A kmyacc
prototype file for the Tokens
classrebuildParsers.php
: Preprocesses the grammar and builds the parser using kmyacc
The .y
file is a normal grammar in kmyacc
(yacc
) style, with some transformations
applied to it:
Name[..., ...]
. This is transformed into
new Name(..., ..., attributes())
rebuildParsers.php
for a list)Run php grammar/rebuildParsers.php
to rebuild the parsers. Additional options:
KMYACC
environment variable can be used to specify an alternative kmyacc
binary.
By default the phpyacc
dev dependency will be used. To use the original kmyacc
, you
need to compile moriyoshi's fork.--debug
option enables emission of debug symbols and creates the y.output
file.--keep-tmp-grammar
option preserves the preprocessed grammar file.