Separate XHPAST into AAST (an abstract AST) and XHPAST (a concrete, XHP AST)
Summary:
This is a rough-but-mostly-correct cut to unblock @pad on T635. Eventually we
can replace XHPAST with PHPAST and get rid of XHP/HPHP-extension support, but
this splits AAST from XHPAST without changing the XHPAST interface.
Facebook should be able to extend XHPASTTree, or just use it as-is and call
setNodeConstants() / setTokenConstants() before doing anything with it. Ideally,
you should extend AAST instead into HPHPAST or something, but that's sort of a
lot of work.
Test Plan: Ran "arc lint", "arc liberate", relevant libphutil and arcanist unit
tests.
Reviewers: pad, jungejason, btrahan
Reviewed By: pad
CC: aran, pad, epriestley
Maniphest Tasks: T635
Differential Revision: 1205