What do all those files mean?
php5.y: PHP 5 grammar written in a pseudo language
php7.y: PHP 7 grammar written in a pseudo language
tokens.y: Tokens definition shared between PHP 5 and PHP 7 grammars
kmyacc parser prototype file for PHP
kmyacc prototype file for the
rebuildParsers.php: Preprocesses the grammar and builds the parser using
.phpy pseudo language
.y file is a normal grammar in
yacc) style, with some transformations
applied to it:
* Nodes are created using the syntax
Name[..., ...]. This is transformed into
new Name(..., ..., attributes())
* Some function-like constructs are resolved (see
rebuildParsers.php for a list)
Building the parser
php grammar/rebuildParsers.php to rebuild the parsers. Additional options:
KMYACC environment variable can be used to specify an alternative
By default the
phpyacc dev dependency will be used. To use the original
need to compile moriyoshi's fork.
--debug option enables emission of debug symbols and creates the
--keep-tmp-grammar option preserves the preprocessed grammar file.