海工商新版后台
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
小菜逼 239fc20902 海工商新后台首版 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

README.md

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
  • parser.template: A kmyacc parser prototype file for PHP
  • tokens.template: A kmyacc prototype file for the Tokens class
  • rebuildParsers.php: Preprocesses the grammar and builds the parser using kmyacc

.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 into new Name(..., ..., attributes())
  • Some function-like constructs are resolved (see rebuildParsers.php for a list)

Building the parser

Run php grammar/rebuildParsers.php to rebuild the parsers. Additional options:

  • The 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.
  • The --debug option enables emission of debug symbols and creates the y.output file.
  • The --keep-tmp-grammar option preserves the preprocessed grammar file.