1
0
Fork 0
mirror of https://we.phorge.it/source/arcanist.git synced 2024-11-27 17:22:41 +01:00
phorge-arcanist/support/xhpast
epriestley a1ee2ab931 Fix improper XHPAST parsing of namespace grammar like "use x as private;"
Summary:
Depends on D21067. Ref T13492. Converting unit tests to be readable exposed this error in the grammar.

Normally, "grammar_rule" rules emit a standalone Node. In this case, the bottom-level grammar rule is a collection of trivial rules and the callers configure the Node. Wrap the bottom-level rule in a configuration rule so the node is configured correctly and consistently, in exactly one place.

Test Plan: Ran unit tests.

Maniphest Tasks: T13492

Differential Revision: https://secure.phabricator.com/D21068
2020-04-07 14:35:42 -07:00
..
bin Remove duplication of XHPAST version in PHP and C code 2020-04-07 14:31:11 -07:00
ast.hpp Fully merge "libphutil/" into "arcanist/" 2020-02-12 15:17:38 -08:00
astnode.hpp Fully merge "libphutil/" into "arcanist/" 2020-02-12 15:17:38 -08:00
build-xhpast.php Merge utility/support changes from "wilds" to "master" 2020-02-13 14:10:09 -08:00
Makefile Remove duplication of XHPAST version in PHP and C code 2020-04-07 14:31:11 -07:00
parser.y Fix improper XHPAST parsing of namespace grammar like "use x as private;" 2020-04-07 14:35:42 -07:00
parser.yacc.cpp Fix improper XHPAST parsing of namespace grammar like "use x as private;" 2020-04-07 14:35:42 -07:00
parser.yacc.hpp Revert xhpast changes that impacted builds under Bison 2.3 2020-04-07 14:29:19 -07:00
parser_nodes.php Fully merge "libphutil/" into "arcanist/" 2020-02-12 15:17:38 -08:00
README Fully merge "libphutil/" into "arcanist/" 2020-02-12 15:17:38 -08:00
scanner.l Fully merge "libphutil/" into "arcanist/" 2020-02-12 15:17:38 -08:00
scanner.lex.cpp Revert xhpast changes that impacted builds under Bison 2.3 2020-04-07 14:29:19 -07:00
scanner.lex.hpp Revert xhpast changes that impacted builds under Bison 2.3 2020-04-07 14:29:19 -07:00
xhpast.cpp Remove duplication of XHPAST version in PHP and C code 2020-04-07 14:31:11 -07:00

= Building =

Normally, you can build `xhpast` by running `make`, which will create a binary
in this directory:

  xhpast/ $ make

You can run `make install` to copy that binary to the right place in libphutil
so that libphutil, Phabricator, Diviner, etc., can use xhpast.

If you are developing `xhpast`, you need to `make parser scanner xhpast`
instead to regenerate the parser and scanner:

  xhpast/ $ make parser scanner xhpast

We ship the generated parser and scanner and do not rebuild them by default to
prevent users from needing to install flex and bison and fiddle around with
flex versions.