diff --git a/src/parser/xhpast/__tests__/PHPASTParserTestCase.php b/src/parser/xhpast/__tests__/PHPASTParserTestCase.php
--- a/src/parser/xhpast/__tests__/PHPASTParserTestCase.php
+++ b/src/parser/xhpast/__tests__/PHPASTParserTestCase.php
@@ -15,34 +15,25 @@
$dir = dirname(__FILE__).'/data/';
foreach (Filesystem::listDirectory($dir) as $file) {
if (preg_match('/\.test$/', $file)) {
- $this->executeParserTest($file, Filesystem::readFile($dir.$file));
+ $this->executeParserTest($file, $dir.$file);
}
}
}
- private function executeParserTest($name, $data) {
- $data = explode("\n", $data, 2);
- if (count($data) !== 2) {
- throw new Exception(
- pht('Expected multiple lines in parser test file "%s".', $name));
- }
-
- $head = head($data);
- $body = last($data);
+ private function executeParserTest($name, $file) {
+ $contents = Filesystem::readFile($file);
+ $contents = preg_split('/^~{4,}\n/m', $contents);
- if (!preg_match('/^#/', $head)) {
+ if (count($contents) < 2) {
throw new Exception(
pht(
- 'Expected first line of parser test file "%s" to begin with `%s` '.
- 'and specify test options.',
- $name,
- '#'));
+ "Expected '%s' separating test case and results.",
+ '~~~~~~~~~~'));
}
- $head = preg_replace('/^#\s*/', '', $head);
+ list($data, $options, $expect) = array_merge($contents, array(null));
- $options_parser = new PhutilSimpleOptions();
- $options = $options_parser->parse($head);
+ $options = id(new PhutilSimpleOptions())->parse($options);
$type = null;
foreach ($options as $key => $value) {
@@ -64,7 +55,7 @@
break;
case 'rtrim':
// Allows construction of tests which rely on EOF without newlines.
- $body = rtrim($body);
+ $data = rtrim($data);
break;
default:
throw new Exception(
@@ -84,7 +75,7 @@
$name));
}
- $future = PhutilXHPASTBinary::getParserFuture($body);
+ $future = PhutilXHPASTBinary::getParserFuture($data);
list($err, $stdout, $stderr) = $future->resolve();
switch ($type) {
@@ -92,18 +83,12 @@
case 'fail-parse':
$this->assertEqual(0, $err, pht('Exit code for "%s".', $name));
- $expect_name = preg_replace('/\.test$/', '.expect', $name);
-
- $dir = dirname(__FILE__).'/data/';
- $expect = Filesystem::readFile($dir.$expect_name);
-
try {
$expect = phutil_json_decode($expect);
} catch (PhutilJSONParserException $ex) {
throw new PhutilProxyException(
pht(
- 'Test ".expect" file "%s" for test "%s" is not valid JSON.',
- $expect_name,
+ 'Expect data for test "%s" is not valid JSON.',
$name),
$ex);
}
diff --git a/src/parser/xhpast/__tests__/data/base-fail-parse.php.expect b/src/parser/xhpast/__tests__/data/base-fail-parse.php.expect
deleted file mode 100644
--- a/src/parser/xhpast/__tests__/data/base-fail-parse.php.expect
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "tree": [],
- "stream": []
-}
diff --git a/src/parser/xhpast/__tests__/data/base-fail-parse.php.test b/src/parser/xhpast/__tests__/data/base-fail-parse.php.test
--- a/src/parser/xhpast/__tests__/data/base-fail-parse.php.test
+++ b/src/parser/xhpast/__tests__/data/base-fail-parse.php.test
@@ -1,2 +1,8 @@
-# fail-parse
b;
new a->c();
+~~~~~~~~~~
+fail-syntax
diff --git a/src/parser/xhpast/__tests__/data/php-access-on-instanciation.expect b/src/parser/xhpast/__tests__/data/php-access-on-instanciation.expect
deleted file mode 100644
--- a/src/parser/xhpast/__tests__/data/php-access-on-instanciation.expect
+++ /dev/null
@@ -1,642 +0,0 @@
-{
- "tree": [
- 9000,
- 0,
- 74,
- [
- [
- 9006,
- 0,
- 73,
- [
- [
- 9007,
- 0,
- 0
- ],
- [
- 9004,
- 2,
- 25,
- [
- [
- 9051,
- 2,
- 25,
- [
- [
- 9052,
- 2,
- 2
- ],
- [
- 9090,
- 4,
- 4
- ],
- [
- 9005
- ],
- [
- 9005
- ],
- [
- 9006,
- 6,
- 25,
- [
- [
- 9004,
- 8,
- 11,
- [
- [
- 9063,
- 8,
- 10,
- [
- [
- 9070,
- 8,
- 8,
- [
- [
- 9013,
- 8,
- 8
- ]
- ]
- ],
- [
- 9064,
- 10,
- 10,
- [
- [
- 9047,
- 10,
- 10
- ],
- [
- 9005
- ]
- ]
- ]
- ]
- ]
- ]
- ],
- [
- 9004,
- 13,
- 23,
- [
- [
- 9067,
- 13,
- 23,
- [
- [
- 9068,
- 13,
- 13,
- [
- [
- 9013,
- 13,
- 13
- ]
- ]
- ],
- [
- 9005
- ],
- [
- 9013,
- 17,
- 17
- ],
- [
- 9059,
- 18,
- 19
- ],
- [
- 9005
- ],
- [
- 9006,
- 21,
- 23
- ]
- ]
- ]
- ]
- ]
- ]
- ]
- ]
- ]
- ]
- ],
- [
- 9004,
- 27,
- 38,
- [
- [
- 9077,
- 27,
- 37,
- [
- [
- 9047,
- 27,
- 27
- ],
- [
- 9081,
- 29,
- 29
- ],
- [
- 9092,
- 31,
- 37,
- [
- [
- 9074,
- 31,
- 35,
- [
- [
- 9090,
- 34,
- 34
- ],
- [
- 9005
- ]
- ]
- ],
- [
- 9013,
- 37,
- 37
- ]
- ]
- ]
- ]
- ]
- ]
- ],
- [
- 9004,
- 40,
- 53,
- [
- [
- 9077,
- 40,
- 52,
- [
- [
- 9047,
- 40,
- 40
- ],
- [
- 9081,
- 42,
- 42
- ],
- [
- 9102,
- 44,
- 52,
- [
- [
- 9092,
- 44,
- 50,
- [
- [
- 9074,
- 44,
- 48,
- [
- [
- 9090,
- 47,
- 47
- ],
- [
- 9005
- ]
- ]
- ],
- [
- 9013,
- 50,
- 50
- ]
- ]
- ],
- [
- 9095,
- 51,
- 52
- ]
- ]
- ]
- ]
- ]
- ]
- ],
- [
- 9004,
- 55,
- 62,
- [
- [
- 9092,
- 55,
- 61,
- [
- [
- 9074,
- 55,
- 59,
- [
- [
- 9090,
- 58,
- 58
- ],
- [
- 9005
- ]
- ]
- ],
- [
- 9013,
- 61,
- 61
- ]
- ]
- ]
- ]
- ],
- [
- 9004,
- 64,
- 73,
- [
- [
- 9102,
- 64,
- 72,
- [
- [
- 9092,
- 64,
- 70,
- [
- [
- 9074,
- 64,
- 68,
- [
- [
- 9090,
- 67,
- 67
- ],
- [
- 9005
- ]
- ]
- ],
- [
- 9013,
- 70,
- 70
- ]
- ]
- ],
- [
- 9095,
- 71,
- 72
- ]
- ]
- ]
- ]
- ]
- ]
- ]
- ]
- ],
- "stream": [
- [
- 371,
- 5
- ],
- [
- 375,
- 2
- ],
- [
- 356,
- 5
- ],
- [
- 375,
- 1
- ],
- [
- 309,
- 1
- ],
- [
- 375,
- 1
- ],
- [
- 123,
- 1
- ],
- [
- 375,
- 2
- ],
- [
- 350,
- 6
- ],
- [
- 375,
- 1
- ],
- [
- 311,
- 2
- ],
- [
- 59,
- 1
- ],
- [
- 375,
- 3
- ],
- [
- 350,
- 6
- ],
- [
- 375,
- 1
- ],
- [
- 337,
- 8
- ],
- [
- 375,
- 1
- ],
- [
- 309,
- 1
- ],
- [
- 40,
- 1
- ],
- [
- 41,
- 1
- ],
- [
- 375,
- 1
- ],
- [
- 123,
- 1
- ],
- [
- 375,
- 1
- ],
- [
- 125,
- 1
- ],
- [
- 375,
- 1
- ],
- [
- 125,
- 1
- ],
- [
- 375,
- 2
- ],
- [
- 311,
- 2
- ],
- [
- 375,
- 1
- ],
- [
- 61,
- 1
- ],
- [
- 375,
- 1
- ],
- [
- 40,
- 1
- ],
- [
- 300,
- 3
- ],
- [
- 375,
- 1
- ],
- [
- 309,
- 1
- ],
- [
- 41,
- 1
- ],
- [
- 360,
- 2
- ],
- [
- 309,
- 1
- ],
- [
- 59,
- 1
- ],
- [
- 375,
- 2
- ],
- [
- 311,
- 2
- ],
- [
- 375,
- 1
- ],
- [
- 61,
- 1
- ],
- [
- 375,
- 1
- ],
- [
- 40,
- 1
- ],
- [
- 300,
- 3
- ],
- [
- 375,
- 1
- ],
- [
- 309,
- 1
- ],
- [
- 41,
- 1
- ],
- [
- 360,
- 2
- ],
- [
- 309,
- 1
- ],
- [
- 40,
- 1
- ],
- [
- 41,
- 1
- ],
- [
- 59,
- 1
- ],
- [
- 375,
- 2
- ],
- [
- 40,
- 1
- ],
- [
- 300,
- 3
- ],
- [
- 375,
- 1
- ],
- [
- 309,
- 1
- ],
- [
- 41,
- 1
- ],
- [
- 360,
- 2
- ],
- [
- 309,
- 1
- ],
- [
- 59,
- 1
- ],
- [
- 375,
- 2
- ],
- [
- 40,
- 1
- ],
- [
- 300,
- 3
- ],
- [
- 375,
- 1
- ],
- [
- 309,
- 1
- ],
- [
- 41,
- 1
- ],
- [
- 360,
- 2
- ],
- [
- 309,
- 1
- ],
- [
- 40,
- 1
- ],
- [
- 41,
- 1
- ],
- [
- 59,
- 1
- ],
- [
- 375,
- 1
- ]
- ]
-}
diff --git a/src/parser/xhpast/__tests__/data/php-access-on-instanciation.test b/src/parser/xhpast/__tests__/data/php-access-on-instanciation.test
--- a/src/parser/xhpast/__tests__/data/php-access-on-instanciation.test
+++ b/src/parser/xhpast/__tests__/data/php-access-on-instanciation.test
@@ -1,4 +1,3 @@
-# pass
b;
(new a)->c();
+~~~~~~~~~~
+pass
+~~~~~~~~~~
+{
+ "tree": [
+ 9000,
+ 0,
+ 74,
+ [
+ [
+ 9006,
+ 0,
+ 73,
+ [
+ [
+ 9007,
+ 0,
+ 0
+ ],
+ [
+ 9004,
+ 2,
+ 25,
+ [
+ [
+ 9051,
+ 2,
+ 25,
+ [
+ [
+ 9052,
+ 2,
+ 2
+ ],
+ [
+ 9090,
+ 4,
+ 4
+ ],
+ [
+ 9005
+ ],
+ [
+ 9005
+ ],
+ [
+ 9006,
+ 6,
+ 25,
+ [
+ [
+ 9004,
+ 8,
+ 11,
+ [
+ [
+ 9063,
+ 8,
+ 10,
+ [
+ [
+ 9070,
+ 8,
+ 8,
+ [
+ [
+ 9013,
+ 8,
+ 8
+ ]
+ ]
+ ],
+ [
+ 9064,
+ 10,
+ 10,
+ [
+ [
+ 9047,
+ 10,
+ 10
+ ],
+ [
+ 9005
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ],
+ [
+ 9004,
+ 13,
+ 23,
+ [
+ [
+ 9067,
+ 13,
+ 23,
+ [
+ [
+ 9068,
+ 13,
+ 13,
+ [
+ [
+ 9013,
+ 13,
+ 13
+ ]
+ ]
+ ],
+ [
+ 9005
+ ],
+ [
+ 9013,
+ 17,
+ 17
+ ],
+ [
+ 9059,
+ 18,
+ 19
+ ],
+ [
+ 9005
+ ],
+ [
+ 9006,
+ 21,
+ 23
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ],
+ [
+ 9004,
+ 27,
+ 38,
+ [
+ [
+ 9077,
+ 27,
+ 37,
+ [
+ [
+ 9047,
+ 27,
+ 27
+ ],
+ [
+ 9081,
+ 29,
+ 29
+ ],
+ [
+ 9092,
+ 31,
+ 37,
+ [
+ [
+ 9074,
+ 31,
+ 35,
+ [
+ [
+ 9090,
+ 34,
+ 34
+ ],
+ [
+ 9005
+ ]
+ ]
+ ],
+ [
+ 9013,
+ 37,
+ 37
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ],
+ [
+ 9004,
+ 40,
+ 53,
+ [
+ [
+ 9077,
+ 40,
+ 52,
+ [
+ [
+ 9047,
+ 40,
+ 40
+ ],
+ [
+ 9081,
+ 42,
+ 42
+ ],
+ [
+ 9102,
+ 44,
+ 52,
+ [
+ [
+ 9092,
+ 44,
+ 50,
+ [
+ [
+ 9074,
+ 44,
+ 48,
+ [
+ [
+ 9090,
+ 47,
+ 47
+ ],
+ [
+ 9005
+ ]
+ ]
+ ],
+ [
+ 9013,
+ 50,
+ 50
+ ]
+ ]
+ ],
+ [
+ 9095,
+ 51,
+ 52
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ],
+ [
+ 9004,
+ 55,
+ 62,
+ [
+ [
+ 9092,
+ 55,
+ 61,
+ [
+ [
+ 9074,
+ 55,
+ 59,
+ [
+ [
+ 9090,
+ 58,
+ 58
+ ],
+ [
+ 9005
+ ]
+ ]
+ ],
+ [
+ 9013,
+ 61,
+ 61
+ ]
+ ]
+ ]
+ ]
+ ],
+ [
+ 9004,
+ 64,
+ 73,
+ [
+ [
+ 9102,
+ 64,
+ 72,
+ [
+ [
+ 9092,
+ 64,
+ 70,
+ [
+ [
+ 9074,
+ 64,
+ 68,
+ [
+ [
+ 9090,
+ 67,
+ 67
+ ],
+ [
+ 9005
+ ]
+ ]
+ ],
+ [
+ 9013,
+ 70,
+ 70
+ ]
+ ]
+ ],
+ [
+ 9095,
+ 71,
+ 72
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ],
+ "stream": [
+ [
+ 371,
+ 5
+ ],
+ [
+ 375,
+ 2
+ ],
+ [
+ 356,
+ 5
+ ],
+ [
+ 375,
+ 1
+ ],
+ [
+ 309,
+ 1
+ ],
+ [
+ 375,
+ 1
+ ],
+ [
+ 123,
+ 1
+ ],
+ [
+ 375,
+ 2
+ ],
+ [
+ 350,
+ 6
+ ],
+ [
+ 375,
+ 1
+ ],
+ [
+ 311,
+ 2
+ ],
+ [
+ 59,
+ 1
+ ],
+ [
+ 375,
+ 3
+ ],
+ [
+ 350,
+ 6
+ ],
+ [
+ 375,
+ 1
+ ],
+ [
+ 337,
+ 8
+ ],
+ [
+ 375,
+ 1
+ ],
+ [
+ 309,
+ 1
+ ],
+ [
+ 40,
+ 1
+ ],
+ [
+ 41,
+ 1
+ ],
+ [
+ 375,
+ 1
+ ],
+ [
+ 123,
+ 1
+ ],
+ [
+ 375,
+ 1
+ ],
+ [
+ 125,
+ 1
+ ],
+ [
+ 375,
+ 1
+ ],
+ [
+ 125,
+ 1
+ ],
+ [
+ 375,
+ 2
+ ],
+ [
+ 311,
+ 2
+ ],
+ [
+ 375,
+ 1
+ ],
+ [
+ 61,
+ 1
+ ],
+ [
+ 375,
+ 1
+ ],
+ [
+ 40,
+ 1
+ ],
+ [
+ 300,
+ 3
+ ],
+ [
+ 375,
+ 1
+ ],
+ [
+ 309,
+ 1
+ ],
+ [
+ 41,
+ 1
+ ],
+ [
+ 360,
+ 2
+ ],
+ [
+ 309,
+ 1
+ ],
+ [
+ 59,
+ 1
+ ],
+ [
+ 375,
+ 2
+ ],
+ [
+ 311,
+ 2
+ ],
+ [
+ 375,
+ 1
+ ],
+ [
+ 61,
+ 1
+ ],
+ [
+ 375,
+ 1
+ ],
+ [
+ 40,
+ 1
+ ],
+ [
+ 300,
+ 3
+ ],
+ [
+ 375,
+ 1
+ ],
+ [
+ 309,
+ 1
+ ],
+ [
+ 41,
+ 1
+ ],
+ [
+ 360,
+ 2
+ ],
+ [
+ 309,
+ 1
+ ],
+ [
+ 40,
+ 1
+ ],
+ [
+ 41,
+ 1
+ ],
+ [
+ 59,
+ 1
+ ],
+ [
+ 375,
+ 2
+ ],
+ [
+ 40,
+ 1
+ ],
+ [
+ 300,
+ 3
+ ],
+ [
+ 375,
+ 1
+ ],
+ [
+ 309,
+ 1
+ ],
+ [
+ 41,
+ 1
+ ],
+ [
+ 360,
+ 2
+ ],
+ [
+ 309,
+ 1
+ ],
+ [
+ 59,
+ 1
+ ],
+ [
+ 375,
+ 2
+ ],
+ [
+ 40,
+ 1
+ ],
+ [
+ 300,
+ 3
+ ],
+ [
+ 375,
+ 1
+ ],
+ [
+ 309,
+ 1
+ ],
+ [
+ 41,
+ 1
+ ],
+ [
+ 360,
+ 2
+ ],
+ [
+ 309,
+ 1
+ ],
+ [
+ 40,
+ 1
+ ],
+ [
+ 41,
+ 1
+ ],
+ [
+ 59,
+ 1
+ ],
+ [
+ 375,
+ 1
+ ]
+ ]
+}
diff --git a/src/parser/xhpast/__tests__/data/php-array-dereference-2.expect b/src/parser/xhpast/__tests__/data/php-array-dereference-2.expect
deleted file mode 100644
--- a/src/parser/xhpast/__tests__/data/php-array-dereference-2.expect
+++ /dev/null
@@ -1,177 +0,0 @@
-{
- "tree": [
- 9000,
- 0,
- 19,
- [
- [
- 9006,
- 0,
- 18,
- [
- [
- 9007,
- 0,
- 0
- ],
- [
- 9004,
- 2,
- 18,
- [
- [
- 9015,
- 2,
- 18,
- [
- [
- 9017,
- 2,
- 18,
- [
- [
- 9016,
- 4,
- 13,
- [
- [
- 9102,
- 5,
- 12,
- [
- [
- 9092,
- 5,
- 7,
- [
- [
- 9047,
- 5,
- 5
- ],
- [
- 9013,
- 7,
- 7
- ]
- ]
- ],
- [
- 9100,
- 8,
- 12,
- [
- [
- 9095,
- 8,
- 9
- ],
- [
- 9087,
- 11,
- 11
- ]
- ]
- ]
- ]
- ]
- ]
- ],
- [
- 9006,
- 15,
- 18
- ]
- ]
- ]
- ]
- ]
- ]
- ]
- ]
- ]
- ]
- ],
- "stream": [
- [
- 371,
- 5
- ],
- [
- 375,
- 2
- ],
- [
- 303,
- 2
- ],
- [
- 375,
- 1
- ],
- [
- 40,
- 1
- ],
- [
- 311,
- 2
- ],
- [
- 360,
- 2
- ],
- [
- 309,
- 9
- ],
- [
- 40,
- 1
- ],
- [
- 41,
- 1
- ],
- [
- 91,
- 1
- ],
- [
- 317,
- 9
- ],
- [
- 93,
- 1
- ],
- [
- 41,
- 1
- ],
- [
- 375,
- 1
- ],
- [
- 123,
- 1
- ],
- [
- 375,
- 3
- ],
- [
- 369,
- 16
- ],
- [
- 125,
- 1
- ],
- [
- 375,
- 1
- ]
- ]
-}
diff --git a/src/parser/xhpast/__tests__/data/php-array-dereference-2.test b/src/parser/xhpast/__tests__/data/php-array-dereference-2.test
--- a/src/parser/xhpast/__tests__/data/php-array-dereference-2.test
+++ b/src/parser/xhpast/__tests__/data/php-array-dereference-2.test
@@ -1,6 +1,185 @@
-# pass
getStatus()['running']) {
// do something
}
+~~~~~~~~~~
+pass
+~~~~~~~~~~
+{
+ "tree": [
+ 9000,
+ 0,
+ 19,
+ [
+ [
+ 9006,
+ 0,
+ 18,
+ [
+ [
+ 9007,
+ 0,
+ 0
+ ],
+ [
+ 9004,
+ 2,
+ 18,
+ [
+ [
+ 9015,
+ 2,
+ 18,
+ [
+ [
+ 9017,
+ 2,
+ 18,
+ [
+ [
+ 9016,
+ 4,
+ 13,
+ [
+ [
+ 9102,
+ 5,
+ 12,
+ [
+ [
+ 9092,
+ 5,
+ 7,
+ [
+ [
+ 9047,
+ 5,
+ 5
+ ],
+ [
+ 9013,
+ 7,
+ 7
+ ]
+ ]
+ ],
+ [
+ 9100,
+ 8,
+ 12,
+ [
+ [
+ 9095,
+ 8,
+ 9
+ ],
+ [
+ 9087,
+ 11,
+ 11
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ],
+ [
+ 9006,
+ 15,
+ 18
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ],
+ "stream": [
+ [
+ 371,
+ 5
+ ],
+ [
+ 375,
+ 2
+ ],
+ [
+ 303,
+ 2
+ ],
+ [
+ 375,
+ 1
+ ],
+ [
+ 40,
+ 1
+ ],
+ [
+ 311,
+ 2
+ ],
+ [
+ 360,
+ 2
+ ],
+ [
+ 309,
+ 9
+ ],
+ [
+ 40,
+ 1
+ ],
+ [
+ 41,
+ 1
+ ],
+ [
+ 91,
+ 1
+ ],
+ [
+ 317,
+ 9
+ ],
+ [
+ 93,
+ 1
+ ],
+ [
+ 41,
+ 1
+ ],
+ [
+ 375,
+ 1
+ ],
+ [
+ 123,
+ 1
+ ],
+ [
+ 375,
+ 3
+ ],
+ [
+ 369,
+ 16
+ ],
+ [
+ 125,
+ 1
+ ],
+ [
+ 375,
+ 1
+ ]
+ ]
+}
diff --git a/src/parser/xhpast/__tests__/data/php-array-dereference-3.expect b/src/parser/xhpast/__tests__/data/php-array-dereference-3.expect
deleted file mode 100644
--- a/src/parser/xhpast/__tests__/data/php-array-dereference-3.expect
+++ /dev/null
@@ -1,204 +0,0 @@
-{
- "tree": [
- 9000,
- 0,
- 21,
- [
- [
- 9006,
- 0,
- 20,
- [
- [
- 9007,
- 0,
- 0
- ],
- [
- 9004,
- 2,
- 20,
- [
- [
- 9015,
- 2,
- 20,
- [
- [
- 9017,
- 2,
- 20,
- [
- [
- 9016,
- 4,
- 16,
- [
- [
- 9099,
- 5,
- 15,
- [
- [
- 9001,
- 5,
- 5
- ],
- [
- 9095,
- 6,
- 15,
- [
- [
- 9100,
- 7,
- 14,
- [
- [
- 9099,
- 7,
- 11,
- [
- [
- 9089,
- 7,
- 9,
- [
- [
- 9090,
- 7,
- 7
- ],
- [
- 9013,
- 9,
- 9
- ]
- ]
- ],
- [
- 9095,
- 10,
- 11
- ]
- ]
- ],
- [
- 9047,
- 13,
- 13
- ]
- ]
- ]
- ]
- ]
- ]
- ]
- ]
- ],
- [
- 9006,
- 18,
- 20
- ]
- ]
- ]
- ]
- ]
- ]
- ]
- ]
- ]
- ]
- ],
- "stream": [
- [
- 371,
- 5
- ],
- [
- 375,
- 1
- ],
- [
- 303,
- 2
- ],
- [
- 375,
- 1
- ],
- [
- 40,
- 1
- ],
- [
- 353,
- 5
- ],
- [
- 40,
- 1
- ],
- [
- 309,
- 4
- ],
- [
- 381,
- 2
- ],
- [
- 309,
- 15
- ],
- [
- 40,
- 1
- ],
- [
- 41,
- 1
- ],
- [
- 91,
- 1
- ],
- [
- 311,
- 6
- ],
- [
- 93,
- 1
- ],
- [
- 41,
- 1
- ],
- [
- 41,
- 1
- ],
- [
- 375,
- 1
- ],
- [
- 123,
- 1
- ],
- [
- 375,
- 1
- ],
- [
- 125,
- 1
- ],
- [
- 375,
- 1
- ]
- ]
-}
diff --git a/src/parser/xhpast/__tests__/data/php-array-dereference-3.test b/src/parser/xhpast/__tests__/data/php-array-dereference-3.test
--- a/src/parser/xhpast/__tests__/data/php-array-dereference-3.test
+++ b/src/parser/xhpast/__tests__/data/php-array-dereference-3.test
@@ -1,3 +1,209 @@
-# pass
1; ?>
= 1; ?>
+~~~~~~~~~~
+pass, comment="Omits ASP tags since parser support is off as built."
+~~~~~~~~~~
+{
+ "tree": [
+ 9000,
+ 0,
+ 21,
+ [
+ [
+ 9006,
+ 0,
+ 21,
+ [
+ [
+ 9007,
+ 0,
+ 0
+ ],
+ [
+ 9004,
+ 2,
+ 3,
+ [
+ [
+ 9086,
+ 2,
+ 2
+ ]
+ ]
+ ],
+ [
+ 9004,
+ 5,
+ 5,
+ [
+ [
+ 9005
+ ]
+ ]
+ ],
+ [
+ 9007,
+ 6,
+ 6
+ ],
+ [
+ 9004,
+ 8,
+ 9,
+ [
+ [
+ 9086,
+ 8,
+ 8
+ ]
+ ]
+ ],
+ [
+ 9004,
+ 11,
+ 11,
+ [
+ [
+ 9005
+ ]
+ ]
+ ],
+ [
+ 9007,
+ 12,
+ 12
+ ],
+ [
+ 9004,
+ 14,
+ 15,
+ [
+ [
+ 9086,
+ 14,
+ 14
+ ]
+ ]
+ ],
+ [
+ 9004,
+ 17,
+ 17,
+ [
+ [
+ 9005
+ ]
+ ]
+ ],
+ [
+ 9034,
+ 18,
+ 18
+ ],
+ [
+ 9034,
+ 19,
+ 19
+ ],
+ [
+ 9034,
+ 20,
+ 20
+ ],
+ [
+ 9034,
+ 21,
+ 21
+ ]
+ ]
+ ]
+ ]
+ ],
+ "stream": [
+ [
+ 371,
+ 5
+ ],
+ [
+ 375,
+ 1
+ ],
+ [
+ 307,
+ 1
+ ],
+ [
+ 59,
+ 1
+ ],
+ [
+ 375,
+ 1
+ ],
+ [
+ 374,
+ 3
+ ],
+ [
+ 371,
+ 2
+ ],
+ [
+ 375,
+ 1
+ ],
+ [
+ 307,
+ 1
+ ],
+ [
+ 59,
+ 1
+ ],
+ [
+ 375,
+ 1
+ ],
+ [
+ 374,
+ 3
+ ],
+ [
+ 372,
+ 3
+ ],
+ [
+ 375,
+ 1
+ ],
+ [
+ 307,
+ 1
+ ],
+ [
+ 59,
+ 1
+ ],
+ [
+ 375,
+ 1
+ ],
+ [
+ 374,
+ 3
+ ],
+ [
+ 313,
+ 1
+ ],
+ [
+ 313,
+ 5
+ ],
+ [
+ 313,
+ 1
+ ],
+ [
+ 313,
+ 5
+ ]
+ ]
+}
diff --git a/src/parser/xhpast/__tests__/data/php-traits.php.expect b/src/parser/xhpast/__tests__/data/php-traits.php.expect
deleted file mode 100644
--- a/src/parser/xhpast/__tests__/data/php-traits.php.expect
+++ /dev/null
@@ -1,907 +0,0 @@
-{
- "tree": [
- 9000,
- 0,
- 118,
- [
- [
- 9006,
- 0,
- 117,
- [
- [
- 9007,
- 0,
- 0
- ],
- [
- 9004,
- 2,
- 17,
- [
- [
- 9051,
- 2,
- 17,
- [
- [
- 9052,
- 2,
- 2,
- [
- [
- 9013,
- 2,
- 2
- ]
- ]
- ],
- [
- 9090,
- 4,
- 4
- ],
- [
- 9005
- ],
- [
- 9005
- ],
- [
- 9006,
- 6,
- 17,
- [
- [
- 9004,
- 8,
- 15,
- [
- [
- 9067,
- 8,
- 15,
- [
- [
- 9068
- ],
- [
- 9005
- ],
- [
- 9013,
- 10,
- 10
- ],
- [
- 9059,
- 11,
- 12
- ],
- [
- 9005
- ],
- [
- 9006,
- 14,
- 15
- ]
- ]
- ]
- ]
- ]
- ]
- ]
- ]
- ]
- ]
- ],
- [
- 9004,
- 19,
- 30,
- [
- [
- 9051,
- 19,
- 30,
- [
- [
- 9052,
- 19,
- 19
- ],
- [
- 9090,
- 21,
- 21
- ],
- [
- 9005
- ],
- [
- 9005
- ],
- [
- 9006,
- 23,
- 30,
- [
- [
- 9105,
- 25,
- 27,
- [
- [
- 9090,
- 27,
- 27
- ],
- [
- 9005
- ]
- ]
- ]
- ]
- ]
- ]
- ]
- ]
- ],
- [
- 9004,
- 32,
- 46,
- [
- [
- 9051,
- 32,
- 46,
- [
- [
- 9052,
- 32,
- 32
- ],
- [
- 9090,
- 34,
- 34
- ],
- [
- 9005
- ],
- [
- 9005
- ],
- [
- 9006,
- 36,
- 46,
- [
- [
- 9105,
- 38,
- 43,
- [
- [
- 9090,
- 40,
- 40
- ],
- [
- 9090,
- 43,
- 43
- ],
- [
- 9005
- ]
- ]
- ]
- ]
- ]
- ]
- ]
- ]
- ],
- [
- 9004,
- 48,
- 94,
- [
- [
- 9051,
- 48,
- 94,
- [
- [
- 9052,
- 48,
- 48
- ],
- [
- 9090,
- 50,
- 50
- ],
- [
- 9005
- ],
- [
- 9005
- ],
- [
- 9006,
- 52,
- 94,
- [
- [
- 9105,
- 54,
- 92,
- [
- [
- 9090,
- 56,
- 56
- ],
- [
- 9090,
- 59,
- 59
- ],
- [
- 9107,
- 61,
- 92,
- [
- [
- 9108,
- 63,
- 70,
- [
- [
- 9110,
- 63,
- 65
- ],
- [
- 9109,
- 69,
- 69,
- [
- [
- 9090,
- 69,
- 69
- ]
- ]
- ]
- ]
- ],
- [
- 9111,
- 72,
- 79,
- [
- [
- 9110,
- 72,
- 74
- ],
- [
- 9005
- ],
- [
- 9013,
- 78,
- 78
- ]
- ]
- ],
- [
- 9111,
- 81,
- 90,
- [
- [
- 9110,
- 81,
- 83
- ],
- [
- 9068,
- 87,
- 87,
- [
- [
- 9013,
- 87,
- 87
- ]
- ]
- ],
- [
- 9013,
- 89,
- 89
- ]
- ]
- ]
- ]
- ]
- ]
- ]
- ]
- ]
- ]
- ]
- ]
- ],
- [
- 9004,
- 96,
- 117,
- [
- [
- 9051,
- 96,
- 117,
- [
- [
- 9052,
- 96,
- 96
- ],
- [
- 9090,
- 98,
- 98
- ],
- [
- 9005
- ],
- [
- 9005
- ],
- [
- 9006,
- 100,
- 117,
- [
- [
- 9105,
- 102,
- 115,
- [
- [
- 9090,
- 104,
- 104
- ],
- [
- 9107,
- 106,
- 115,
- [
- [
- 9111,
- 108,
- 113,
- [
- [
- 9110,
- 108,
- 108,
- [
- [
- 9013,
- 108,
- 108
- ]
- ]
- ],
- [
- 0,
- 112,
- 112
- ],
- [
- 9005
- ]
- ]
- ]
- ]
- ]
- ]
- ]
- ]
- ]
- ]
- ]
- ]
- ]
- ]
- ]
- ]
- ],
- "stream": [
- [
- 371,
- 5
- ],
- [
- 375,
- 2
- ],
- [
- 390,
- 5
- ],
- [
- 375,
- 1
- ],
- [
- 309,
- 1
- ],
- [
- 375,
- 1
- ],
- [
- 123,
- 1
- ],
- [
- 375,
- 3
- ],
- [
- 337,
- 8
- ],
- [
- 375,
- 1
- ],
- [
- 309,
- 1
- ],
- [
- 40,
- 1
- ],
- [
- 41,
- 1
- ],
- [
- 375,
- 1
- ],
- [
- 123,
- 1
- ],
- [
- 125,
- 1
- ],
- [
- 375,
- 1
- ],
- [
- 125,
- 1
- ],
- [
- 375,
- 2
- ],
- [
- 356,
- 5
- ],
- [
- 375,
- 1
- ],
- [
- 309,
- 1
- ],
- [
- 375,
- 1
- ],
- [
- 123,
- 1
- ],
- [
- 375,
- 3
- ],
- [
- 343,
- 3
- ],
- [
- 375,
- 1
- ],
- [
- 309,
- 1
- ],
- [
- 59,
- 1
- ],
- [
- 375,
- 1
- ],
- [
- 125,
- 1
- ],
- [
- 375,
- 2
- ],
- [
- 356,
- 5
- ],
- [
- 375,
- 1
- ],
- [
- 309,
- 1
- ],
- [
- 375,
- 1
- ],
- [
- 123,
- 1
- ],
- [
- 375,
- 3
- ],
- [
- 343,
- 3
- ],
- [
- 375,
- 1
- ],
- [
- 309,
- 1
- ],
- [
- 44,
- 1
- ],
- [
- 375,
- 1
- ],
- [
- 309,
- 1
- ],
- [
- 59,
- 1
- ],
- [
- 375,
- 1
- ],
- [
- 125,
- 1
- ],
- [
- 375,
- 2
- ],
- [
- 356,
- 5
- ],
- [
- 375,
- 1
- ],
- [
- 309,
- 1
- ],
- [
- 375,
- 1
- ],
- [
- 123,
- 1
- ],
- [
- 375,
- 3
- ],
- [
- 343,
- 3
- ],
- [
- 375,
- 1
- ],
- [
- 309,
- 1
- ],
- [
- 44,
- 1
- ],
- [
- 375,
- 1
- ],
- [
- 309,
- 1
- ],
- [
- 375,
- 1
- ],
- [
- 123,
- 1
- ],
- [
- 375,
- 5
- ],
- [
- 309,
- 1
- ],
- [
- 381,
- 2
- ],
- [
- 309,
- 1
- ],
- [
- 375,
- 1
- ],
- [
- 388,
- 9
- ],
- [
- 375,
- 1
- ],
- [
- 309,
- 1
- ],
- [
- 59,
- 1
- ],
- [
- 375,
- 5
- ],
- [
- 309,
- 1
- ],
- [
- 381,
- 2
- ],
- [
- 309,
- 1
- ],
- [
- 375,
- 1
- ],
- [
- 329,
- 2
- ],
- [
- 375,
- 1
- ],
- [
- 309,
- 1
- ],
- [
- 59,
- 1
- ],
- [
- 375,
- 5
- ],
- [
- 309,
- 1
- ],
- [
- 381,
- 2
- ],
- [
- 309,
- 1
- ],
- [
- 375,
- 1
- ],
- [
- 329,
- 2
- ],
- [
- 375,
- 1
- ],
- [
- 348,
- 7
- ],
- [
- 375,
- 1
- ],
- [
- 309,
- 1
- ],
- [
- 59,
- 1
- ],
- [
- 375,
- 3
- ],
- [
- 125,
- 1
- ],
- [
- 375,
- 1
- ],
- [
- 125,
- 1
- ],
- [
- 375,
- 2
- ],
- [
- 356,
- 5
- ],
- [
- 375,
- 1
- ],
- [
- 309,
- 1
- ],
- [
- 375,
- 1
- ],
- [
- 123,
- 1
- ],
- [
- 375,
- 3
- ],
- [
- 343,
- 3
- ],
- [
- 375,
- 1
- ],
- [
- 309,
- 1
- ],
- [
- 375,
- 1
- ],
- [
- 123,
- 1
- ],
- [
- 375,
- 1
- ],
- [
- 309,
- 1
- ],
- [
- 375,
- 1
- ],
- [
- 329,
- 2
- ],
- [
- 375,
- 1
- ],
- [
- 349,
- 9
- ],
- [
- 59,
- 1
- ],
- [
- 375,
- 1
- ],
- [
- 125,
- 1
- ],
- [
- 375,
- 1
- ],
- [
- 125,
- 1
- ],
- [
- 375,
- 1
- ]
- ]
-}
diff --git a/src/parser/xhpast/__tests__/data/php-traits.php.test b/src/parser/xhpast/__tests__/data/php-traits.php.test
--- a/src/parser/xhpast/__tests__/data/php-traits.php.test
+++ b/src/parser/xhpast/__tests__/data/php-traits.php.test
@@ -1,4 +1,3 @@
-# pass
$c);
}
+~~~~~~~~~~
+pass
+~~~~~~~~~~
+{
+ "tree": [
+ 9000,
+ 0,
+ 54,
+ [
+ [
+ 9006,
+ 0,
+ 53,
+ [
+ [
+ 9007,
+ 0,
+ 0
+ ],
+ [
+ 9004,
+ 2,
+ 53,
+ [
+ [
+ 9050,
+ 2,
+ 53,
+ [
+ [
+ 9005
+ ],
+ [
+ 9005
+ ],
+ [
+ 9013,
+ 4,
+ 4
+ ],
+ [
+ 9059,
+ 5,
+ 6
+ ],
+ [
+ 9005
+ ],
+ [
+ 9006,
+ 8,
+ 53,
+ [
+ [
+ 9004,
+ 10,
+ 11,
+ [
+ [
+ 9112,
+ 10,
+ 10,
+ [
+ [
+ 9005
+ ],
+ [
+ 9005
+ ]
+ ]
+ ]
+ ]
+ ],
+ [
+ 9004,
+ 13,
+ 16,
+ [
+ [
+ 9112,
+ 13,
+ 15,
+ [
+ [
+ 9047,
+ 15,
+ 15,
+ [
+ [
+ 9005
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ],
+ [
+ 9004,
+ 18,
+ 25,
+ [
+ [
+ 9112,
+ 18,
+ 24,
+ [
+ [
+ 9047,
+ 20,
+ 20
+ ],
+ [
+ 9047,
+ 24,
+ 24
+ ]
+ ]
+ ]
+ ]
+ ],
+ [
+ 9004,
+ 27,
+ 36,
+ [
+ [
+ 9077,
+ 27,
+ 35,
+ [
+ [
+ 9047,
+ 27,
+ 27
+ ],
+ [
+ 9081,
+ 29,
+ 29
+ ],
+ [
+ 9112,
+ 31,
+ 35,
+ [
+ [
+ 9047,
+ 34,
+ 34,
+ [
+ [
+ 9005
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ],
+ [
+ 9004,
+ 38,
+ 51,
+ [
+ [
+ 9077,
+ 38,
+ 50,
+ [
+ [
+ 9047,
+ 38,
+ 38
+ ],
+ [
+ 9081,
+ 40,
+ 40
+ ],
+ [
+ 9112,
+ 42,
+ 50,
+ [
+ [
+ 9047,
+ 45,
+ 45
+ ],
+ [
+ 9047,
+ 49,
+ 49
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ],
+ "stream": [
+ [
+ 371,
+ 5
+ ],
+ [
+ 375,
+ 2
+ ],
+ [
+ 337,
+ 8
+ ],
+ [
+ 375,
+ 1
+ ],
+ [
+ 309,
+ 1
+ ],
+ [
+ 40,
+ 1
+ ],
+ [
+ 41,
+ 1
+ ],
+ [
+ 375,
+ 1
+ ],
+ [
+ 123,
+ 1
+ ],
+ [
+ 375,
+ 3
+ ],
+ [
+ 392,
+ 5
+ ],
+ [
+ 59,
+ 1
+ ],
+ [
+ 375,
+ 3
+ ],
+ [
+ 392,
+ 5
+ ],
+ [
+ 375,
+ 1
+ ],
+ [
+ 311,
+ 2
+ ],
+ [
+ 59,
+ 1
+ ],
+ [
+ 375,
+ 3
+ ],
+ [
+ 392,
+ 5
+ ],
+ [
+ 375,
+ 1
+ ],
+ [
+ 311,
+ 2
+ ],
+ [
+ 375,
+ 1
+ ],
+ [
+ 361,
+ 2
+ ],
+ [
+ 375,
+ 1
+ ],
+ [
+ 311,
+ 2
+ ],
+ [
+ 59,
+ 1
+ ],
+ [
+ 375,
+ 4
+ ],
+ [
+ 311,
+ 5
+ ],
+ [
+ 375,
+ 1
+ ],
+ [
+ 61,
+ 1
+ ],
+ [
+ 375,
+ 1
+ ],
+ [
+ 40,
+ 1
+ ],
+ [
+ 392,
+ 5
+ ],
+ [
+ 375,
+ 1
+ ],
+ [
+ 311,
+ 2
+ ],
+ [
+ 41,
+ 1
+ ],
+ [
+ 59,
+ 1
+ ],
+ [
+ 375,
+ 3
+ ],
+ [
+ 311,
+ 5
+ ],
+ [
+ 375,
+ 1
+ ],
+ [
+ 61,
+ 1
+ ],
+ [
+ 375,
+ 1
+ ],
+ [
+ 40,
+ 1
+ ],
+ [
+ 392,
+ 5
+ ],
+ [
+ 375,
+ 1
+ ],
+ [
+ 311,
+ 2
+ ],
+ [
+ 375,
+ 1
+ ],
+ [
+ 361,
+ 2
+ ],
+ [
+ 375,
+ 1
+ ],
+ [
+ 311,
+ 2
+ ],
+ [
+ 41,
+ 1
+ ],
+ [
+ 59,
+ 1
+ ],
+ [
+ 375,
+ 1
+ ],
+ [
+ 125,
+ 1
+ ],
+ [
+ 375,
+ 1
+ ]
+ ]
+}