mirror of
https://github.com/Combodo/iTop.git
synced 2026-04-28 04:58:46 +02:00
We were on v3 that is no longer maintained and compatibility is annonced for PHP 7.2. v4 is active and supports PHP up to 8.0 No problem to update as this is only used in the config editor (\Combodo\iTop\Config\Validator\iTopConfigAstValidator)
1.4 KiB
1.4 KiB
What do all those files mean?
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: Akmyaccparser prototype file for PHPtokens.template: Akmyaccprototype file for theTokensclassrebuildParsers.php: Preprocesses the grammar and builds the parser usingkmyacc
.phpy pseudo language
The .y file is a normal grammar in kmyacc (yacc) style, with some transformations
applied to it:
- Nodes are created using the syntax
Name[..., ...]. This is transformed intonew Name(..., ..., attributes()) - Some function-like constructs are resolved (see
rebuildParsers.phpfor a list)
Building the parser
Run php grammar/rebuildParsers.php to rebuild the parsers. Additional options:
- The
KMYACCenvironment variable can be used to specify an alternativekmyaccbinary. By default thephpyaccdev dependency will be used. To use the originalkmyacc, you need to compile moriyoshi's fork. - The
--debugoption enables emission of debug symbols and creates they.outputfile. - The
--keep-tmp-grammaroption preserves the preprocessed grammar file.