It seems that XHPAST doesn't properly parse strings contains interpolated variables. Specifically, `"This string contains no variables"` and `"This string contains $variables"` are both parsed as `n_STRING_SCALAR`. See https://secure.phabricator.com/xhpast/view/729/ for example... tokenizing this same file with `token_get_all` produces the following:
```lang=php
array (
0 =>
array (
0 => 374,
1 => '<?php ',
2 => 1,
),
1 =>
array (
0 => 377,
1 => '
',
2 => 1,
),
2 =>
array (
0 => 317,
1 => 'echo',
2 => 3,
),
3 =>
array (
0 => 377,
1 => ' ',
2 => 3,
),
4 =>
array (
0 => 316,
1 => '"This string contains no variables."',
2 => 3,
),
5 => ';',
6 =>
array (
0 => 377,
1 => '
',
2 => 3,
),
7 =>
array (
0 => 317,
1 => 'echo',
2 => 4,
),
8 =>
array (
0 => 377,
1 => ' ',
2 => 4,
),
9 => '"',
10 =>
array (
0 => 315,
1 => 'This string contains ',
2 => 4,
),
11 =>
array (
0 => 310,
1 => '$variables',
2 => 4,
),
12 =>
array (
0 => 315,
1 => '.',
2 => 4,
),
13 => '"',
14 => ';',
)
```
More succinctly:
```lang=php
// "This string contains no variables."
array(
array(
0 => T_CONSTANT_ENCAPSED_STRING,
1 => '"This string contains no variables."',
2 => 3,
),
);
// "This string contains $variables."
array(
'"',
array(
0 => T_ENCAPSED_AND_WHITESPACE,
1 => 'This string contains ',
2 => 4,
),
array(
0 => T_VARIABLE,
1 => '$variables',
2 => 4,
),
array(
0 => T_ENCAPSED_AND_WHITESPACE,
1 => '.',
2 => 4,
),
'"',
);
```