sunhao fe08a6fbcc 初始 | il y a 5 ans | |
---|---|---|
.. | ||
README.md | il y a 5 ans | |
analyze.php | il y a 5 ans | |
kmyacc.php.parser | il y a 5 ans | |
rebuildParser.php | il y a 5 ans | |
zend_language_parser.phpy | il y a 5 ans |
zend_language_parser.phpy
: PHP grammer written in a pseudo languageanalyze.php
: Analyzes the .phpy
-grammer and outputs some info about itrebuildParser.php
: Preprocesses the .phpy
-grammar and builds the parser using kmyacc
kmyacc.php.parser
: A kmyacc
parser prototype file for PHPThe .phpy
file is a normal grammer in kmyacc
(yacc
) style, with some transformations
applied to it:
Name[..., ...]
. This is transformed into
new Node\Name(..., ..., $attributes)
Name::abc
is transformed to Node\Name::abc
rebuildParser.php
for a list)[key: value, ...]
, which is transformed to
array('key' => value, ...)
In order to rebuild the parser, you need moriyoshi's fork of kmyacc.
After you compiled/installed it, run the rebuildParser.php
script.
By default only the Parser.php
is built. If you want to additionally build Parser/Debug.php
and y.output
run the
script with --debug
. If you want to retain the preprocessed grammar pass --keep-tmp-grammar
.