Add unit test scaffolding for XHPAST/PHPAST
Summary:
Ref T4334. Allows us to build tests against this so we can accomplish goals described in T4334 with greater confidence.
This allows three types of tests to be defined:
- pass: Input is expected to parse into a specific tree.
- fail-syntax: Input is expected to fail with a syntax error.
- fail-parse: Input is expected to parse the wrong tree.
The latter two test types allow us to write passing tests of broken/bad behavior while keeping it clear which tests are passing-and-good and which are passing-but-broken.
Test Plan: Ran unit tests.
Reviewers: btrahan, Firehed
Reviewed By: btrahan
CC: aran
Maniphest Tasks: T4334
Differential Revision: https://secure.phabricator.com/D8025