nashorn/test/script/nosecurity/parserapi.js.EXPECTED
author hannesw
Wed, 27 Apr 2016 15:50:33 +0200
changeset 37732 3673fec68d16
parent 34974 94a13629c390
child 37924 a78497edf9fb
permissions -rw-r--r--
8134503: support ES6 parsing in Nashorn Reviewed-by: jlaskey, sundar, mhaupt Contributed-by: andreas.woess@oracle.com

[
{
  "endPosition": "1113",
  "kind": "COMPILATION_UNIT",
  "sourceElements": [
    {
      "endPosition": "1123",
      "kind": "VARIABLE",
      "name": "x",
      "startPosition": "1117",
      "initializer": {
        "endPosition": "1123",
        "kind": "ARRAY_LITERAL",
        "elements": [],
        "startPosition": "1121"
      }
    },
    {
      "endPosition": "1147",
      "kind": "VARIABLE",
      "name": "y",
      "startPosition": "1129",
      "initializer": {
        "endPosition": "1147",
        "kind": "ARRAY_LITERAL",
        "elements": [
          {
            "endPosition": "1135",
            "kind": "NUMBER_LITERAL",
            "value": "1",
            "startPosition": "1134"
          },
          {
            "endPosition": "1139",
            "kind": "NUMBER_LITERAL",
            "value": "43",
            "startPosition": "1137"
          },
          {
            "endPosition": "1142",
            "kind": "NUMBER_LITERAL",
            "value": "5",
            "startPosition": "1141"
          },
          {
            "endPosition": "1146",
            "kind": "NUMBER_LITERAL",
            "value": "45",
            "startPosition": "1144"
          }
        ],
        "startPosition": "1133"
      }
    },
    {
      "endPosition": "1165",
      "kind": "VARIABLE",
      "name": "z",
      "startPosition": "1153",
      "initializer": {
        "endPosition": "1165",
        "kind": "ARRAY_LITERAL",
        "elements": [
          {
            "endPosition": "1160",
            "kind": "NUMBER_LITERAL",
            "value": "34",
            "startPosition": "1158"
          },
          null,
          null,
          {
            "endPosition": "1164",
            "kind": "NUMBER_LITERAL",
            "value": "4",
            "startPosition": "1163"
          }
        ],
        "startPosition": "1157"
      }
    },
    {
      "endPosition": "1200",
      "kind": "VARIABLE",
      "name": "k",
      "startPosition": "1171",
      "initializer": {
        "endPosition": "1200",
        "kind": "ARRAY_LITERAL",
        "elements": [
          {
            "endPosition": "1179",
            "kind": "OBJECT_LITERAL",
            "startPosition": "1177",
            "properties": []
          },
          {
            "endPosition": "1189",
            "kind": "OBJECT_LITERAL",
            "startPosition": "1181",
            "properties": [
              {
                "endPosition": "1187",
                "kind": "PROPERTY",
                "value": {
                  "endPosition": "1187",
                  "kind": "NUMBER_LITERAL",
                  "value": "3",
                  "startPosition": "1186"
                },
                "startPosition": "1183",
                "key": {
                  "endPosition": "1184",
                  "kind": "IDENTIFIER",
                  "name": "x",
                  "startPosition": "1183"
                }
              }
            ]
          },
          {
            "endPosition": "1197",
            "kind": "STRING_LITERAL",
            "value": "hello",
            "startPosition": "1192"
          }
        ],
        "startPosition": "1175"
      }
    }
  ],
  "sourceName": "parsertests/array_literal.js",
  "strict": "false",
  "startPosition": "1113"
}
,
{
  "endPosition": "1126",
  "kind": "COMPILATION_UNIT",
  "sourceElements": [
    {
      "expression": {
        "expression": {
          "endPosition": "1135",
          "kind": "NUMBER_LITERAL",
          "value": "314",
          "startPosition": "1132"
        },
        "endPosition": "1135",
        "kind": "ASSIGNMENT",
        "variable": {
          "endPosition": "1129",
          "kind": "IDENTIFIER",
          "name": "xyz",
          "startPosition": "1126"
        },
        "startPosition": "1126"
      },
      "endPosition": "1135",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1126"
    },
    {
      "expression": {
        "expression": {
          "endPosition": "1147",
          "kind": "NUMBER_LITERAL",
          "value": "314",
          "startPosition": "1144"
        },
        "endPosition": "1147",
        "kind": "PLUS_ASSIGNMENT",
        "variable": {
          "endPosition": "1140",
          "kind": "IDENTIFIER",
          "name": "xyz",
          "startPosition": "1137"
        },
        "startPosition": "1137"
      },
      "endPosition": "1147",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1137"
    },
    {
      "expression": {
        "expression": {
          "endPosition": "1159",
          "kind": "NUMBER_LITERAL",
          "value": "314",
          "startPosition": "1156"
        },
        "endPosition": "1159",
        "kind": "MINUS_ASSIGNMENT",
        "variable": {
          "endPosition": "1152",
          "kind": "IDENTIFIER",
          "name": "xyz",
          "startPosition": "1149"
        },
        "startPosition": "1149"
      },
      "endPosition": "1159",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1149"
    },
    {
      "expression": {
        "expression": {
          "endPosition": "1171",
          "kind": "NUMBER_LITERAL",
          "value": "314",
          "startPosition": "1168"
        },
        "endPosition": "1171",
        "kind": "MULTIPLY_ASSIGNMENT",
        "variable": {
          "endPosition": "1164",
          "kind": "IDENTIFIER",
          "name": "xyz",
          "startPosition": "1161"
        },
        "startPosition": "1161"
      },
      "endPosition": "1171",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1161"
    },
    {
      "expression": {
        "expression": {
          "endPosition": "1183",
          "kind": "NUMBER_LITERAL",
          "value": "314",
          "startPosition": "1180"
        },
        "endPosition": "1183",
        "kind": "DIVIDE_ASSIGNMENT",
        "variable": {
          "endPosition": "1176",
          "kind": "IDENTIFIER",
          "name": "xyz",
          "startPosition": "1173"
        },
        "startPosition": "1173"
      },
      "endPosition": "1183",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1173"
    },
    {
      "expression": {
        "expression": {
          "endPosition": "1195",
          "kind": "NUMBER_LITERAL",
          "value": "314",
          "startPosition": "1192"
        },
        "endPosition": "1195",
        "kind": "REMAINDER_ASSIGNMENT",
        "variable": {
          "endPosition": "1188",
          "kind": "IDENTIFIER",
          "name": "xyz",
          "startPosition": "1185"
        },
        "startPosition": "1185"
      },
      "endPosition": "1195",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1185"
    },
    {
      "expression": {
        "expression": {
          "endPosition": "1208",
          "kind": "NUMBER_LITERAL",
          "value": "314",
          "startPosition": "1205"
        },
        "endPosition": "1208",
        "kind": "LEFT_SHIFT_ASSIGNMENT",
        "variable": {
          "endPosition": "1200",
          "kind": "IDENTIFIER",
          "name": "xyz",
          "startPosition": "1197"
        },
        "startPosition": "1197"
      },
      "endPosition": "1208",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1197"
    },
    {
      "expression": {
        "expression": {
          "endPosition": "1221",
          "kind": "NUMBER_LITERAL",
          "value": "314",
          "startPosition": "1218"
        },
        "endPosition": "1221",
        "kind": "RIGHT_SHIFT_ASSIGNMENT",
        "variable": {
          "endPosition": "1213",
          "kind": "IDENTIFIER",
          "name": "xyz",
          "startPosition": "1210"
        },
        "startPosition": "1210"
      },
      "endPosition": "1221",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1210"
    },
    {
      "expression": {
        "expression": {
          "endPosition": "1235",
          "kind": "NUMBER_LITERAL",
          "value": "314",
          "startPosition": "1232"
        },
        "endPosition": "1235",
        "kind": "UNSIGNED_RIGHT_SHIFT_ASSIGNMENT",
        "variable": {
          "endPosition": "1226",
          "kind": "IDENTIFIER",
          "name": "xyz",
          "startPosition": "1223"
        },
        "startPosition": "1223"
      },
      "endPosition": "1235",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1223"
    },
    {
      "expression": {
        "expression": {
          "endPosition": "1247",
          "kind": "NUMBER_LITERAL",
          "value": "314",
          "startPosition": "1244"
        },
        "endPosition": "1247",
        "kind": "AND_ASSIGNMENT",
        "variable": {
          "endPosition": "1240",
          "kind": "IDENTIFIER",
          "name": "xyz",
          "startPosition": "1237"
        },
        "startPosition": "1237"
      },
      "endPosition": "1247",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1237"
    },
    {
      "expression": {
        "expression": {
          "endPosition": "1259",
          "kind": "NUMBER_LITERAL",
          "value": "314",
          "startPosition": "1256"
        },
        "endPosition": "1259",
        "kind": "XOR_ASSIGNMENT",
        "variable": {
          "endPosition": "1252",
          "kind": "IDENTIFIER",
          "name": "xyz",
          "startPosition": "1249"
        },
        "startPosition": "1249"
      },
      "endPosition": "1259",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1249"
    },
    {
      "expression": {
        "expression": {
          "endPosition": "1271",
          "kind": "NUMBER_LITERAL",
          "value": "314",
          "startPosition": "1268"
        },
        "endPosition": "1271",
        "kind": "OR_ASSIGNMENT",
        "variable": {
          "endPosition": "1264",
          "kind": "IDENTIFIER",
          "name": "xyz",
          "startPosition": "1261"
        },
        "startPosition": "1261"
      },
      "endPosition": "1271",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1261"
    }
  ],
  "sourceName": "parsertests/assignmentExpr.js",
  "strict": "false",
  "startPosition": "1126"
}
,
{
  "endPosition": "1116",
  "kind": "COMPILATION_UNIT",
  "sourceElements": [
    {
      "expression": {
        "leftOperand": {
          "endPosition": "1117",
          "kind": "IDENTIFIER",
          "name": "a",
          "startPosition": "1116"
        },
        "endPosition": "1121",
        "kind": "MULTIPLY",
        "rightOperand": {
          "endPosition": "1121",
          "kind": "IDENTIFIER",
          "name": "b",
          "startPosition": "1120"
        },
        "startPosition": "1116"
      },
      "endPosition": "1121",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1116"
    },
    {
      "expression": {
        "leftOperand": {
          "endPosition": "1123",
          "kind": "IDENTIFIER",
          "name": "a",
          "startPosition": "1122"
        },
        "endPosition": "1127",
        "kind": "DIVIDE",
        "rightOperand": {
          "endPosition": "1127",
          "kind": "IDENTIFIER",
          "name": "b",
          "startPosition": "1126"
        },
        "startPosition": "1122"
      },
      "endPosition": "1127",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1122"
    },
    {
      "expression": {
        "leftOperand": {
          "endPosition": "1130",
          "kind": "IDENTIFIER",
          "name": "a",
          "startPosition": "1129"
        },
        "endPosition": "1134",
        "kind": "REMAINDER",
        "rightOperand": {
          "endPosition": "1134",
          "kind": "IDENTIFIER",
          "name": "b",
          "startPosition": "1133"
        },
        "startPosition": "1129"
      },
      "endPosition": "1134",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1129"
    },
    {
      "expression": {
        "leftOperand": {
          "endPosition": "1137",
          "kind": "IDENTIFIER",
          "name": "a",
          "startPosition": "1136"
        },
        "endPosition": "1141",
        "kind": "PLUS",
        "rightOperand": {
          "endPosition": "1141",
          "kind": "IDENTIFIER",
          "name": "b",
          "startPosition": "1140"
        },
        "startPosition": "1136"
      },
      "endPosition": "1141",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1136"
    },
    {
      "expression": {
        "leftOperand": {
          "endPosition": "1144",
          "kind": "IDENTIFIER",
          "name": "a",
          "startPosition": "1143"
        },
        "endPosition": "1148",
        "kind": "MINUS",
        "rightOperand": {
          "endPosition": "1148",
          "kind": "IDENTIFIER",
          "name": "b",
          "startPosition": "1147"
        },
        "startPosition": "1143"
      },
      "endPosition": "1148",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1143"
    },
    {
      "expression": {
        "leftOperand": {
          "endPosition": "1151",
          "kind": "IDENTIFIER",
          "name": "a",
          "startPosition": "1150"
        },
        "endPosition": "1156",
        "kind": "LEFT_SHIFT",
        "rightOperand": {
          "endPosition": "1156",
          "kind": "IDENTIFIER",
          "name": "b",
          "startPosition": "1155"
        },
        "startPosition": "1150"
      },
      "endPosition": "1156",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1150"
    },
    {
      "expression": {
        "leftOperand": {
          "endPosition": "1159",
          "kind": "IDENTIFIER",
          "name": "a",
          "startPosition": "1158"
        },
        "endPosition": "1164",
        "kind": "RIGHT_SHIFT",
        "rightOperand": {
          "endPosition": "1164",
          "kind": "IDENTIFIER",
          "name": "b",
          "startPosition": "1163"
        },
        "startPosition": "1158"
      },
      "endPosition": "1164",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1158"
    },
    {
      "expression": {
        "leftOperand": {
          "endPosition": "1167",
          "kind": "IDENTIFIER",
          "name": "a",
          "startPosition": "1166"
        },
        "endPosition": "1173",
        "kind": "UNSIGNED_RIGHT_SHIFT",
        "rightOperand": {
          "endPosition": "1173",
          "kind": "IDENTIFIER",
          "name": "b",
          "startPosition": "1172"
        },
        "startPosition": "1166"
      },
      "endPosition": "1173",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1166"
    },
    {
      "expression": {
        "leftOperand": {
          "endPosition": "1176",
          "kind": "IDENTIFIER",
          "name": "a",
          "startPosition": "1175"
        },
        "endPosition": "1180",
        "kind": "LESS_THAN",
        "rightOperand": {
          "endPosition": "1180",
          "kind": "IDENTIFIER",
          "name": "b",
          "startPosition": "1179"
        },
        "startPosition": "1175"
      },
      "endPosition": "1180",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1175"
    },
    {
      "expression": {
        "leftOperand": {
          "endPosition": "1183",
          "kind": "IDENTIFIER",
          "name": "a",
          "startPosition": "1182"
        },
        "endPosition": "1187",
        "kind": "GREATER_THAN",
        "rightOperand": {
          "endPosition": "1187",
          "kind": "IDENTIFIER",
          "name": "b",
          "startPosition": "1186"
        },
        "startPosition": "1182"
      },
      "endPosition": "1187",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1182"
    },
    {
      "expression": {
        "leftOperand": {
          "endPosition": "1190",
          "kind": "IDENTIFIER",
          "name": "a",
          "startPosition": "1189"
        },
        "endPosition": "1195",
        "kind": "LESS_THAN_EQUAL",
        "rightOperand": {
          "endPosition": "1195",
          "kind": "IDENTIFIER",
          "name": "b",
          "startPosition": "1194"
        },
        "startPosition": "1189"
      },
      "endPosition": "1195",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1189"
    },
    {
      "expression": {
        "leftOperand": {
          "endPosition": "1198",
          "kind": "IDENTIFIER",
          "name": "a",
          "startPosition": "1197"
        },
        "endPosition": "1203",
        "kind": "GREATER_THAN_EQUAL",
        "rightOperand": {
          "endPosition": "1203",
          "kind": "IDENTIFIER",
          "name": "b",
          "startPosition": "1202"
        },
        "startPosition": "1197"
      },
      "endPosition": "1203",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1197"
    },
    {
      "expression": {
        "leftOperand": {
          "endPosition": "1206",
          "kind": "IDENTIFIER",
          "name": "a",
          "startPosition": "1205"
        },
        "expression": {
          "endPosition": "1206",
          "kind": "IDENTIFIER",
          "name": "a",
          "startPosition": "1205"
        },
        "endPosition": "1219",
        "kind": "INSTANCE_OF",
        "rightOperand": {
          "endPosition": "1219",
          "kind": "IDENTIFIER",
          "name": "b",
          "startPosition": "1218"
        },
        "type": {
          "endPosition": "1219",
          "kind": "IDENTIFIER",
          "name": "b",
          "startPosition": "1218"
        },
        "startPosition": "1205"
      },
      "endPosition": "1219",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1205"
    },
    {
      "expression": {
        "leftOperand": {
          "endPosition": "1222",
          "kind": "IDENTIFIER",
          "name": "a",
          "startPosition": "1221"
        },
        "endPosition": "1227",
        "kind": "EQUAL_TO",
        "rightOperand": {
          "endPosition": "1227",
          "kind": "IDENTIFIER",
          "name": "b",
          "startPosition": "1226"
        },
        "startPosition": "1221"
      },
      "endPosition": "1227",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1221"
    },
    {
      "expression": {
        "leftOperand": {
          "endPosition": "1230",
          "kind": "IDENTIFIER",
          "name": "a",
          "startPosition": "1229"
        },
        "endPosition": "1235",
        "kind": "NOT_EQUAL_TO",
        "rightOperand": {
          "endPosition": "1235",
          "kind": "IDENTIFIER",
          "name": "b",
          "startPosition": "1234"
        },
        "startPosition": "1229"
      },
      "endPosition": "1235",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1229"
    },
    {
      "expression": {
        "leftOperand": {
          "endPosition": "1238",
          "kind": "IDENTIFIER",
          "name": "a",
          "startPosition": "1237"
        },
        "endPosition": "1244",
        "kind": "STRICT_EQUAL_TO",
        "rightOperand": {
          "endPosition": "1244",
          "kind": "IDENTIFIER",
          "name": "b",
          "startPosition": "1243"
        },
        "startPosition": "1237"
      },
      "endPosition": "1244",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1237"
    },
    {
      "expression": {
        "leftOperand": {
          "endPosition": "1247",
          "kind": "IDENTIFIER",
          "name": "a",
          "startPosition": "1246"
        },
        "endPosition": "1253",
        "kind": "STRICT_NOT_EQUAL_TO",
        "rightOperand": {
          "endPosition": "1253",
          "kind": "IDENTIFIER",
          "name": "b",
          "startPosition": "1252"
        },
        "startPosition": "1246"
      },
      "endPosition": "1253",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1246"
    },
    {
      "expression": {
        "leftOperand": {
          "endPosition": "1256",
          "kind": "IDENTIFIER",
          "name": "a",
          "startPosition": "1255"
        },
        "endPosition": "1260",
        "kind": "AND",
        "rightOperand": {
          "endPosition": "1260",
          "kind": "IDENTIFIER",
          "name": "b",
          "startPosition": "1259"
        },
        "startPosition": "1255"
      },
      "endPosition": "1260",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1255"
    },
    {
      "expression": {
        "leftOperand": {
          "endPosition": "1263",
          "kind": "IDENTIFIER",
          "name": "a",
          "startPosition": "1262"
        },
        "endPosition": "1267",
        "kind": "XOR",
        "rightOperand": {
          "endPosition": "1267",
          "kind": "IDENTIFIER",
          "name": "b",
          "startPosition": "1266"
        },
        "startPosition": "1262"
      },
      "endPosition": "1267",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1262"
    },
    {
      "expression": {
        "leftOperand": {
          "endPosition": "1270",
          "kind": "IDENTIFIER",
          "name": "a",
          "startPosition": "1269"
        },
        "endPosition": "1274",
        "kind": "OR",
        "rightOperand": {
          "endPosition": "1274",
          "kind": "IDENTIFIER",
          "name": "b",
          "startPosition": "1273"
        },
        "startPosition": "1269"
      },
      "endPosition": "1274",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1269"
    },
    {
      "expression": {
        "leftOperand": {
          "endPosition": "1277",
          "kind": "IDENTIFIER",
          "name": "a",
          "startPosition": "1276"
        },
        "endPosition": "1282",
        "kind": "CONDITIONAL_AND",
        "rightOperand": {
          "endPosition": "1282",
          "kind": "IDENTIFIER",
          "name": "b",
          "startPosition": "1281"
        },
        "startPosition": "1276"
      },
      "endPosition": "1282",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1276"
    },
    {
      "expression": {
        "leftOperand": {
          "endPosition": "1285",
          "kind": "IDENTIFIER",
          "name": "a",
          "startPosition": "1284"
        },
        "endPosition": "1290",
        "kind": "CONDITIONAL_OR",
        "rightOperand": {
          "endPosition": "1290",
          "kind": "IDENTIFIER",
          "name": "b",
          "startPosition": "1289"
        },
        "startPosition": "1284"
      },
      "endPosition": "1290",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1284"
    }
  ],
  "sourceName": "parsertests/binaryExpr.js",
  "strict": "false",
  "startPosition": "1116"
}
,
{
  "endPosition": "1117",
  "kind": "COMPILATION_UNIT",
  "sourceElements": [
    {
      "endPosition": "1119",
      "kind": "BLOCK",
      "statements": [],
      "startPosition": "1117"
    },
    {
      "endPosition": "1139",
      "kind": "BLOCK",
      "statements": [
        {
          "expression": {
            "endPosition": "1136",
            "kind": "FUNCTION_INVOCATION",
            "functionSelect": {
              "endPosition": "1127",
              "kind": "IDENTIFIER",
              "name": "print",
              "startPosition": "1122"
            },
            "arguments": [
              {
                "endPosition": "1134",
                "kind": "STRING_LITERAL",
                "value": "hello",
                "startPosition": "1129"
              }
            ],
            "startPosition": "1122"
          },
          "endPosition": "1136",
          "kind": "EXPRESSION_STATEMENT",
          "startPosition": "1122"
        }
      ],
      "startPosition": "1120"
    }
  ],
  "sourceName": "parsertests/block.js",
  "strict": "false",
  "startPosition": "1117"
}
,
{
  "endPosition": "1117",
  "kind": "COMPILATION_UNIT",
  "sourceElements": [
    {
      "condition": {
        "endPosition": "1128",
        "kind": "BOOLEAN_LITERAL",
        "value": "true",
        "startPosition": "1124"
      },
      "endPosition": "1140",
      "kind": "WHILE_LOOP",
      "statement": {
        "endPosition": "1140",
        "kind": "BLOCK",
        "statements": [
          {
            "endPosition": "1138",
            "kind": "BREAK",
            "startPosition": "1132"
          }
        ],
        "startPosition": "1130"
      },
      "startPosition": "1117"
    },
    {
      "endPosition": "1179",
      "kind": "LABELED_STATEMENT",
      "statement": {
        "endPosition": "1179",
        "kind": "BLOCK",
        "statements": [
          {
            "condition": {
              "endPosition": "1161",
              "kind": "BOOLEAN_LITERAL",
              "value": "true",
              "startPosition": "1157"
            },
            "endPosition": "1177",
            "kind": "WHILE_LOOP",
            "statement": {
              "endPosition": "1177",
              "kind": "BLOCK",
              "statements": [
                {
                  "endPosition": "1175",
                  "kind": "BREAK",
                  "label": "loop",
                  "startPosition": "1165"
                }
              ],
              "startPosition": "1163"
            },
            "startPosition": "1150"
          }
        ],
        "startPosition": "1148"
      },
      "label": "loop",
      "startPosition": "1142"
    },
    {
      "endPosition": "1214",
      "kind": "LABELED_STATEMENT",
      "statement": {
        "endPosition": "1214",
        "kind": "BLOCK",
        "statements": [
          {
            "endPosition": "1212",
            "kind": "FOR_LOOP",
            "statement": {
              "endPosition": "1212",
              "kind": "BLOCK",
              "statements": [
                {
                  "endPosition": "1210",
                  "kind": "BREAK",
                  "label": "loop",
                  "startPosition": "1200"
                }
              ],
              "startPosition": "1198"
            },
            "startPosition": "1189"
          }
        ],
        "startPosition": "1187"
      },
      "label": "loop",
      "startPosition": "1181"
    }
  ],
  "sourceName": "parsertests/breakStat.js",
  "strict": "false",
  "startPosition": "1117"
}
,
{
  "endPosition": "1117",
  "kind": "COMPILATION_UNIT",
  "sourceElements": [
    {
      "expression": {
        "condition": {
          "endPosition": "1118",
          "kind": "IDENTIFIER",
          "name": "a",
          "startPosition": "1117"
        },
        "endPosition": "1125",
        "kind": "CONDITIONAL_EXPRESSION",
        "trueExpression": {
          "endPosition": "1121",
          "kind": "IDENTIFIER",
          "name": "b",
          "startPosition": "1120"
        },
        "falseExpression": {
          "endPosition": "1125",
          "kind": "IDENTIFIER",
          "name": "c",
          "startPosition": "1124"
        },
        "startPosition": "1118"
      },
      "endPosition": "1125",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1117"
    }
  ],
  "sourceName": "parsertests/condExpr.js",
  "strict": "false",
  "startPosition": "1117"
}
,
{
  "endPosition": "1120",
  "kind": "COMPILATION_UNIT",
  "sourceElements": [
    {
      "condition": {
        "endPosition": "1131",
        "kind": "BOOLEAN_LITERAL",
        "value": "true",
        "startPosition": "1127"
      },
      "endPosition": "1146",
      "kind": "WHILE_LOOP",
      "statement": {
        "endPosition": "1146",
        "kind": "BLOCK",
        "statements": [
          {
            "endPosition": "1144",
            "kind": "CONTINUE",
            "startPosition": "1135"
          }
        ],
        "startPosition": "1133"
      },
      "startPosition": "1120"
    },
    {
      "endPosition": "1191",
      "kind": "LABELED_STATEMENT",
      "statement": {
        "endPosition": "1191",
        "kind": "BLOCK",
        "statements": [
          {
            "condition": {
              "endPosition": "1168",
              "kind": "BOOLEAN_LITERAL",
              "value": "true",
              "startPosition": "1164"
            },
            "endPosition": "1189",
            "kind": "WHILE_LOOP",
            "statement": {
              "endPosition": "1189",
              "kind": "BLOCK",
              "statements": [
                {
                  "endPosition": "1187",
                  "kind": "CONTINUE",
                  "label": "begin",
                  "startPosition": "1172"
                }
              ],
              "startPosition": "1170"
            },
            "startPosition": "1157"
          }
        ],
        "startPosition": "1155"
      },
      "label": "begin",
      "startPosition": "1148"
    },
    {
      "endPosition": "1231",
      "kind": "LABELED_STATEMENT",
      "statement": {
        "endPosition": "1231",
        "kind": "BLOCK",
        "statements": [
          {
            "endPosition": "1229",
            "kind": "FOR_LOOP",
            "statement": {
              "endPosition": "1229",
              "kind": "BLOCK",
              "statements": [
                {
                  "endPosition": "1227",
                  "kind": "CONTINUE",
                  "label": "start",
                  "startPosition": "1212"
                }
              ],
              "startPosition": "1210"
            },
            "startPosition": "1202"
          }
        ],
        "startPosition": "1200"
      },
      "label": "start",
      "startPosition": "1193"
    }
  ],
  "sourceName": "parsertests/continueStat.js",
  "strict": "false",
  "startPosition": "1120"
}
,
{
  "endPosition": "1118",
  "kind": "COMPILATION_UNIT",
  "sourceElements": [
    {
      "endPosition": "1127",
      "kind": "DEBUGGER",
      "startPosition": "1118"
    }
  ],
  "sourceName": "parsertests/debuggerStat.js",
  "strict": "false",
  "startPosition": "1118"
}
,
{
  "endPosition": "1137",
  "kind": "COMPILATION_UNIT",
  "sourceElements": [
    {
      "endPosition": "1172",
      "kind": "FUNCTION",
      "name": "hello",
      "body": {
        "endPosition": "1170",
        "kind": "BLOCK",
        "statements": [
          {
            "expression": {
              "endPosition": "1170",
              "kind": "FUNCTION_INVOCATION",
              "functionSelect": {
                "endPosition": "1161",
                "kind": "IDENTIFIER",
                "name": "print",
                "startPosition": "1156"
              },
              "arguments": [
                {
                  "endPosition": "1168",
                  "kind": "STRING_LITERAL",
                  "value": "hello",
                  "startPosition": "1163"
                }
              ],
              "startPosition": "1156"
            },
            "endPosition": "1170",
            "kind": "EXPRESSION_STATEMENT",
            "startPosition": "1156"
          }
        ],
        "startPosition": "1154"
      },
      "strict": "false",
      "startPosition": "1137",
      "parameters": []
    },
    {
      "endPosition": "1203",
      "kind": "FUNCTION",
      "name": "hello",
      "body": {
        "endPosition": "1201",
        "kind": "BLOCK",
        "statements": [
          {
            "expression": {
              "endPosition": "1201",
              "kind": "FUNCTION_INVOCATION",
              "functionSelect": {
                "endPosition": "1198",
                "kind": "IDENTIFIER",
                "name": "print",
                "startPosition": "1193"
              },
              "arguments": [
                {
                  "endPosition": "1200",
                  "kind": "IDENTIFIER",
                  "name": "a",
                  "startPosition": "1199"
                }
              ],
              "startPosition": "1193"
            },
            "endPosition": "1201",
            "kind": "EXPRESSION_STATEMENT",
            "startPosition": "1193"
          }
        ],
        "startPosition": "1191"
      },
      "strict": "false",
      "startPosition": "1173",
      "parameters": [
        {
          "endPosition": "1189",
          "kind": "IDENTIFIER",
          "name": "a",
          "startPosition": "1188"
        }
      ]
    },
    {
      "endPosition": "1240",
      "kind": "FUNCTION",
      "name": "hello",
      "body": {
        "endPosition": "1238",
        "kind": "BLOCK",
        "statements": [
          {
            "expression": {
              "endPosition": "1238",
              "kind": "FUNCTION_INVOCATION",
              "functionSelect": {
                "endPosition": "1232",
                "kind": "IDENTIFIER",
                "name": "print",
                "startPosition": "1227"
              },
              "arguments": [
                {
                  "endPosition": "1234",
                  "kind": "IDENTIFIER",
                  "name": "a",
                  "startPosition": "1233"
                },
                {
                  "endPosition": "1237",
                  "kind": "IDENTIFIER",
                  "name": "b",
                  "startPosition": "1236"
                }
              ],
              "startPosition": "1227"
            },
            "endPosition": "1238",
            "kind": "EXPRESSION_STATEMENT",
            "startPosition": "1227"
          }
        ],
        "startPosition": "1225"
      },
      "strict": "false",
      "startPosition": "1204",
      "parameters": [
        {
          "endPosition": "1220",
          "kind": "IDENTIFIER",
          "name": "a",
          "startPosition": "1219"
        },
        {
          "endPosition": "1223",
          "kind": "IDENTIFIER",
          "name": "b",
          "startPosition": "1222"
        }
      ]
    },
    {
      "endPosition": "1282",
      "kind": "VARIABLE",
      "name": "hello",
      "startPosition": "1245",
      "initializer": {
        "endPosition": "1264",
        "kind": "FUNCTION_EXPRESSION",
        "body": {
          "endPosition": "1280",
          "kind": "BLOCK",
          "statements": [
            {
              "expression": {
                "endPosition": "1280",
                "kind": "FUNCTION_INVOCATION",
                "functionSelect": {
                  "endPosition": "1271",
                  "kind": "IDENTIFIER",
                  "name": "print",
                  "startPosition": "1266"
                },
                "arguments": [
                  {
                    "endPosition": "1278",
                    "kind": "STRING_LITERAL",
                    "value": "hello",
                    "startPosition": "1273"
                  }
                ],
                "startPosition": "1266"
              },
              "endPosition": "1280",
              "kind": "EXPRESSION_STATEMENT",
              "startPosition": "1266"
            }
          ],
          "startPosition": "1264"
        },
        "strict": "false",
        "startPosition": "1264",
        "parameters": []
      }
    },
    {
      "endPosition": "1331",
      "kind": "VARIABLE",
      "name": "hello",
      "startPosition": "1288",
      "initializer": {
        "endPosition": "1313",
        "kind": "FUNCTION_EXPRESSION",
        "name": "hello",
        "body": {
          "endPosition": "1329",
          "kind": "BLOCK",
          "statements": [
            {
              "expression": {
                "endPosition": "1329",
                "kind": "FUNCTION_INVOCATION",
                "functionSelect": {
                  "endPosition": "1320",
                  "kind": "IDENTIFIER",
                  "name": "print",
                  "startPosition": "1315"
                },
                "arguments": [
                  {
                    "endPosition": "1327",
                    "kind": "STRING_LITERAL",
                    "value": "hello",
                    "startPosition": "1322"
                  }
                ],
                "startPosition": "1315"
              },
              "endPosition": "1329",
              "kind": "EXPRESSION_STATEMENT",
              "startPosition": "1315"
            }
          ],
          "startPosition": "1313"
        },
        "strict": "false",
        "startPosition": "1313",
        "parameters": []
      }
    },
    {
      "expression": {
        "endPosition": "1344",
        "kind": "FUNCTION_EXPRESSION",
        "body": {
          "endPosition": "1345",
          "kind": "BLOCK",
          "statements": [],
          "startPosition": "1344"
        },
        "strict": "false",
        "startPosition": "1344",
        "parameters": []
      },
      "endPosition": "1347",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1333"
    },
    {
      "endPosition": "1380",
      "kind": "FUNCTION",
      "name": "test",
      "body": {
        "endPosition": "1377",
        "kind": "BLOCK",
        "statements": [
          {
            "expression": {
              "endPosition": "1377",
              "kind": "STRING_LITERAL",
              "value": "use strict",
              "startPosition": "1367"
            },
            "endPosition": "1377",
            "kind": "EXPRESSION_STATEMENT",
            "startPosition": "1367"
          }
        ],
        "startPosition": "1364"
      },
      "strict": "true",
      "startPosition": "1348",
      "parameters": []
    }
  ],
  "sourceName": "parsertests/functions.js",
  "strict": "false",
  "startPosition": "1137"
}
,
{
  "endPosition": "1114",
  "kind": "COMPILATION_UNIT",
  "sourceElements": [
    {
      "condition": {
        "endPosition": "1120",
        "kind": "IDENTIFIER",
        "name": "js",
        "startPosition": "1118"
      },
      "endPosition": "1135",
      "kind": "IF",
      "startPosition": "1114",
      "thenStatement": {
        "endPosition": "1135",
        "kind": "BLOCK",
        "statements": [
          {
            "expression": {
              "endPosition": "1133",
              "kind": "FUNCTION_INVOCATION",
              "functionSelect": {
                "endPosition": "1131",
                "kind": "IDENTIFIER",
                "name": "nashorn",
                "startPosition": "1124"
              },
              "arguments": [],
              "startPosition": "1124"
            },
            "endPosition": "1133",
            "kind": "EXPRESSION_STATEMENT",
            "startPosition": "1124"
          }
        ],
        "startPosition": "1122"
      }
    },
    {
      "condition": {
        "endPosition": "1143",
        "kind": "IDENTIFIER",
        "name": "js",
        "startPosition": "1141"
      },
      "elseStatement": {
        "endPosition": "1174",
        "kind": "BLOCK",
        "statements": [
          {
            "expression": {
              "endPosition": "1172",
              "kind": "FUNCTION_INVOCATION",
              "functionSelect": {
                "endPosition": "1170",
                "kind": "IDENTIFIER",
                "name": "java",
                "startPosition": "1166"
              },
              "arguments": [],
              "startPosition": "1166"
            },
            "endPosition": "1172",
            "kind": "EXPRESSION_STATEMENT",
            "startPosition": "1166"
          }
        ],
        "startPosition": "1164"
      },
      "endPosition": "1174",
      "kind": "IF",
      "startPosition": "1137",
      "thenStatement": {
        "endPosition": "1158",
        "kind": "BLOCK",
        "statements": [
          {
            "expression": {
              "endPosition": "1156",
              "kind": "FUNCTION_INVOCATION",
              "functionSelect": {
                "endPosition": "1154",
                "kind": "IDENTIFIER",
                "name": "nashorn",
                "startPosition": "1147"
              },
              "arguments": [],
              "startPosition": "1147"
            },
            "endPosition": "1156",
            "kind": "EXPRESSION_STATEMENT",
            "startPosition": "1147"
          }
        ],
        "startPosition": "1145"
      }
    }
  ],
  "sourceName": "parsertests/ifStat.js",
  "strict": "false",
  "startPosition": "1114"
}
,
{
  "endPosition": "1113",
  "kind": "COMPILATION_UNIT",
  "sourceElements": [
    {
      "endPosition": "1144",
      "kind": "LABELED_STATEMENT",
      "statement": {
        "endPosition": "1144",
        "kind": "BLOCK",
        "statements": [
          {
            "endPosition": "1142",
            "kind": "FOR_LOOP",
            "statement": {
              "endPosition": "1142",
              "kind": "BREAK",
              "label": "begin",
              "startPosition": "1131"
            },
            "startPosition": "1122"
          }
        ],
        "startPosition": "1120"
      },
      "label": "begin",
      "startPosition": "1113"
    },
    {
      "endPosition": "1181",
      "kind": "LABELED_STATEMENT",
      "statement": {
        "endPosition": "1181",
        "kind": "BLOCK",
        "statements": [
          {
            "condition": {
              "endPosition": "1166",
              "kind": "BOOLEAN_LITERAL",
              "value": "true",
              "startPosition": "1162"
            },
            "endPosition": "1179",
            "kind": "WHILE_LOOP",
            "statement": {
              "endPosition": "1179",
              "kind": "BREAK",
              "label": "begin",
              "startPosition": "1168"
            },
            "startPosition": "1155"
          }
        ],
        "startPosition": "1153"
      },
      "label": "begin",
      "startPosition": "1146"
    }
  ],
  "sourceName": "parsertests/labelledStat.js",
  "strict": "false",
  "startPosition": "1113"
}
,
{
  "endPosition": "1125",
  "kind": "COMPILATION_UNIT",
  "sourceElements": [
    {
      "expression": {
        "expression": {
          "endPosition": "1126",
          "kind": "IDENTIFIER",
          "name": "a",
          "startPosition": "1125"
        },
        "endPosition": "1129",
        "kind": "ARRAY_ACCESS",
        "index": {
          "endPosition": "1128",
          "kind": "NUMBER_LITERAL",
          "value": "3",
          "startPosition": "1127"
        },
        "startPosition": "1125"
      },
      "endPosition": "1129",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1125"
    },
    {
      "expression": {
        "expression": {
          "endPosition": "1132",
          "kind": "IDENTIFIER",
          "name": "a",
          "startPosition": "1131"
        },
        "endPosition": "1135",
        "kind": "ARRAY_ACCESS",
        "index": {
          "endPosition": "1134",
          "kind": "IDENTIFIER",
          "name": "b",
          "startPosition": "1133"
        },
        "startPosition": "1131"
      },
      "endPosition": "1135",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1131"
    },
    {
      "expression": {
        "expression": {
          "endPosition": "1138",
          "kind": "IDENTIFIER",
          "name": "a",
          "startPosition": "1137"
        },
        "endPosition": "1145",
        "kind": "ARRAY_ACCESS",
        "index": {
          "endPosition": "1143",
          "kind": "STRING_LITERAL",
          "value": "foo",
          "startPosition": "1140"
        },
        "startPosition": "1137"
      },
      "endPosition": "1145",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1137"
    },
    {
      "expression": {
        "identifier": "foo",
        "expression": {
          "endPosition": "1150",
          "kind": "IDENTIFIER",
          "name": "obj",
          "startPosition": "1147"
        },
        "endPosition": "1154",
        "kind": "MEMBER_SELECT",
        "startPosition": "1147"
      },
      "endPosition": "1154",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1147"
    },
    {
      "expression": {
        "identifier": "bar",
        "expression": {
          "identifier": "foo",
          "expression": {
            "endPosition": "1159",
            "kind": "IDENTIFIER",
            "name": "obj",
            "startPosition": "1156"
          },
          "endPosition": "1163",
          "kind": "MEMBER_SELECT",
          "startPosition": "1156"
        },
        "endPosition": "1167",
        "kind": "MEMBER_SELECT",
        "startPosition": "1156"
      },
      "endPosition": "1167",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1156"
    },
    {
      "expression": {
        "constructorExpression": {
          "endPosition": "1177",
          "kind": "FUNCTION_INVOCATION",
          "functionSelect": {
            "endPosition": "1177",
            "kind": "IDENTIFIER",
            "name": "Type",
            "startPosition": "1173"
          },
          "arguments": [],
          "startPosition": "1173"
        },
        "endPosition": "1177",
        "kind": "NEW",
        "startPosition": "1169"
      },
      "endPosition": "1177",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1169"
    },
    {
      "expression": {
        "constructorExpression": {
          "endPosition": "1189",
          "kind": "FUNCTION_INVOCATION",
          "functionSelect": {
            "endPosition": "1187",
            "kind": "IDENTIFIER",
            "name": "Type",
            "startPosition": "1183"
          },
          "arguments": [],
          "startPosition": "1183"
        },
        "endPosition": "1189",
        "kind": "NEW",
        "startPosition": "1179"
      },
      "endPosition": "1189",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1179"
    },
    {
      "expression": {
        "constructorExpression": {
          "endPosition": "1211",
          "kind": "FUNCTION_INVOCATION",
          "functionSelect": {
            "endPosition": "1199",
            "kind": "IDENTIFIER",
            "name": "Type",
            "startPosition": "1195"
          },
          "arguments": [
            {
              "endPosition": "1201",
              "kind": "IDENTIFIER",
              "name": "a",
              "startPosition": "1200"
            },
            {
              "endPosition": "1209",
              "kind": "STRING_LITERAL",
              "value": "hello",
              "startPosition": "1204"
            }
          ],
          "startPosition": "1195"
        },
        "endPosition": "1211",
        "kind": "NEW",
        "startPosition": "1191"
      },
      "endPosition": "1211",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1191"
    },
    {
      "expression": {
        "constructorExpression": {
          "endPosition": "1225",
          "kind": "FUNCTION_INVOCATION",
          "functionSelect": {
            "identifier": "Type",
            "expression": {
              "endPosition": "1220",
              "kind": "IDENTIFIER",
              "name": "obj",
              "startPosition": "1217"
            },
            "endPosition": "1225",
            "kind": "MEMBER_SELECT",
            "startPosition": "1217"
          },
          "arguments": [],
          "startPosition": "1220"
        },
        "endPosition": "1225",
        "kind": "NEW",
        "startPosition": "1213"
      },
      "endPosition": "1225",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1213"
    },
    {
      "expression": {
        "constructorExpression": {
          "endPosition": "1241",
          "kind": "FUNCTION_INVOCATION",
          "functionSelect": {
            "identifier": "Type",
            "expression": {
              "endPosition": "1234",
              "kind": "IDENTIFIER",
              "name": "obj",
              "startPosition": "1231"
            },
            "endPosition": "1239",
            "kind": "MEMBER_SELECT",
            "startPosition": "1231"
          },
          "arguments": [],
          "startPosition": "1234"
        },
        "endPosition": "1241",
        "kind": "NEW",
        "startPosition": "1227"
      },
      "endPosition": "1241",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1227"
    },
    {
      "expression": {
        "constructorExpression": {
          "endPosition": "1267",
          "kind": "FUNCTION_INVOCATION",
          "functionSelect": {
            "identifier": "Type",
            "expression": {
              "endPosition": "1250",
              "kind": "IDENTIFIER",
              "name": "obj",
              "startPosition": "1247"
            },
            "endPosition": "1255",
            "kind": "MEMBER_SELECT",
            "startPosition": "1247"
          },
          "arguments": [
            {
              "endPosition": "1257",
              "kind": "IDENTIFIER",
              "name": "a",
              "startPosition": "1256"
            },
            {
              "endPosition": "1265",
              "kind": "STRING_LITERAL",
              "value": "hello",
              "startPosition": "1260"
            }
          ],
          "startPosition": "1250"
        },
        "endPosition": "1267",
        "kind": "NEW",
        "startPosition": "1243"
      },
      "endPosition": "1267",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1243"
    },
    {
      "expression": {
        "endPosition": "1274",
        "kind": "FUNCTION_INVOCATION",
        "functionSelect": {
          "endPosition": "1272",
          "kind": "IDENTIFIER",
          "name": "foo",
          "startPosition": "1269"
        },
        "arguments": [],
        "startPosition": "1269"
      },
      "endPosition": "1274",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1269"
    },
    {
      "expression": {
        "endPosition": "1284",
        "kind": "FUNCTION_INVOCATION",
        "functionSelect": {
          "identifier": "foo",
          "expression": {
            "endPosition": "1278",
            "kind": "IDENTIFIER",
            "name": "obj",
            "startPosition": "1275"
          },
          "endPosition": "1282",
          "kind": "MEMBER_SELECT",
          "startPosition": "1275"
        },
        "arguments": [],
        "startPosition": "1275"
      },
      "endPosition": "1284",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1275"
    },
    {
      "expression": {
        "endPosition": "1294",
        "kind": "FUNCTION_INVOCATION",
        "functionSelect": {
          "endPosition": "1289",
          "kind": "IDENTIFIER",
          "name": "foo",
          "startPosition": "1286"
        },
        "arguments": [
          {
            "endPosition": "1291",
            "kind": "IDENTIFIER",
            "name": "a",
            "startPosition": "1290"
          },
          {
            "endPosition": "1293",
            "kind": "IDENTIFIER",
            "name": "b",
            "startPosition": "1292"
          }
        ],
        "startPosition": "1286"
      },
      "endPosition": "1294",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1286"
    },
    {
      "expression": {
        "endPosition": "1309",
        "kind": "FUNCTION_INVOCATION",
        "functionSelect": {
          "identifier": "foo",
          "expression": {
            "endPosition": "1299",
            "kind": "IDENTIFIER",
            "name": "obj",
            "startPosition": "1296"
          },
          "endPosition": "1303",
          "kind": "MEMBER_SELECT",
          "startPosition": "1296"
        },
        "arguments": [
          {
            "endPosition": "1305",
            "kind": "IDENTIFIER",
            "name": "a",
            "startPosition": "1304"
          },
          {
            "endPosition": "1308",
            "kind": "IDENTIFIER",
            "name": "b",
            "startPosition": "1307"
          }
        ],
        "startPosition": "1296"
      },
      "endPosition": "1309",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1296"
    }
  ],
  "sourceName": "parsertests/lhsExpr.js",
  "strict": "false",
  "startPosition": "1125"
}
,
{
  "endPosition": "1110",
  "kind": "COMPILATION_UNIT",
  "sourceElements": [
    {
      "condition": {
        "endPosition": "1120",
        "kind": "BOOLEAN_LITERAL",
        "value": "true",
        "startPosition": "1116"
      },
      "endPosition": "1140",
      "kind": "WHILE_LOOP",
      "statement": {
        "endPosition": "1140",
        "kind": "BLOCK",
        "statements": [
          {
            "expression": {
              "endPosition": "1138",
              "kind": "FUNCTION_INVOCATION",
              "functionSelect": {
                "endPosition": "1129",
                "kind": "IDENTIFIER",
                "name": "print",
                "startPosition": "1124"
              },
              "arguments": [
                {
                  "endPosition": "1136",
                  "kind": "STRING_LITERAL",
                  "value": "hello",
                  "startPosition": "1131"
                }
              ],
              "startPosition": "1124"
            },
            "endPosition": "1138",
            "kind": "EXPRESSION_STATEMENT",
            "startPosition": "1124"
          }
        ],
        "startPosition": "1122"
      },
      "startPosition": "1110"
    },
    {
      "condition": {
        "endPosition": "1173",
        "kind": "BOOLEAN_LITERAL",
        "value": "true",
        "startPosition": "1169"
      },
      "endPosition": "1174",
      "kind": "DO_WHILE_LOOP",
      "statement": {
        "endPosition": "1162",
        "kind": "BLOCK",
        "statements": [
          {
            "expression": {
              "endPosition": "1160",
              "kind": "FUNCTION_INVOCATION",
              "functionSelect": {
                "endPosition": "1151",
                "kind": "IDENTIFIER",
                "name": "print",
                "startPosition": "1146"
              },
              "arguments": [
                {
                  "endPosition": "1158",
                  "kind": "STRING_LITERAL",
                  "value": "hello",
                  "startPosition": "1153"
                }
              ],
              "startPosition": "1146"
            },
            "endPosition": "1160",
            "kind": "EXPRESSION_STATEMENT",
            "startPosition": "1146"
          }
        ],
        "startPosition": "1144"
      },
      "startPosition": "1141"
    },
    {
      "expression": {
        "endPosition": "1188",
        "kind": "IDENTIFIER",
        "name": "obj",
        "startPosition": "1185"
      },
      "endPosition": "1207",
      "kind": "FOR_IN_LOOP",
      "forEach": "false",
      "variable": {
        "endPosition": "1181",
        "kind": "IDENTIFIER",
        "name": "i",
        "startPosition": "1180"
      },
      "statement": {
        "endPosition": "1207",
        "kind": "BLOCK",
        "statements": [
          {
            "expression": {
              "endPosition": "1205",
              "kind": "FUNCTION_INVOCATION",
              "functionSelect": {
                "endPosition": "1197",
                "kind": "IDENTIFIER",
                "name": "print",
                "startPosition": "1192"
              },
              "arguments": [
                {
                  "expression": {
                    "endPosition": "1201",
                    "kind": "IDENTIFIER",
                    "name": "obj",
                    "startPosition": "1198"
                  },
                  "endPosition": "1204",
                  "kind": "ARRAY_ACCESS",
                  "index": {
                    "endPosition": "1203",
                    "kind": "IDENTIFIER",
                    "name": "i",
                    "startPosition": "1202"
                  },
                  "startPosition": "1198"
                }
              ],
              "startPosition": "1192"
            },
            "endPosition": "1205",
            "kind": "EXPRESSION_STATEMENT",
            "startPosition": "1192"
          }
        ],
        "startPosition": "1190"
      },
      "startPosition": "1175"
    },
    {
      "expression": {
        "endPosition": "1226",
        "kind": "IDENTIFIER",
        "name": "obj",
        "startPosition": "1223"
      },
      "endPosition": "1240",
      "kind": "FOR_IN_LOOP",
      "forEach": "true",
      "variable": {
        "endPosition": "1219",
        "kind": "IDENTIFIER",
        "name": "i",
        "startPosition": "1218"
      },
      "statement": {
        "endPosition": "1240",
        "kind": "BLOCK",
        "statements": [
          {
            "expression": {
              "endPosition": "1238",
              "kind": "FUNCTION_INVOCATION",
              "functionSelect": {
                "endPosition": "1235",
                "kind": "IDENTIFIER",
                "name": "print",
                "startPosition": "1230"
              },
              "arguments": [
                {
                  "endPosition": "1237",
                  "kind": "IDENTIFIER",
                  "name": "i",
                  "startPosition": "1236"
                }
              ],
              "startPosition": "1230"
            },
            "endPosition": "1238",
            "kind": "EXPRESSION_STATEMENT",
            "startPosition": "1230"
          }
        ],
        "startPosition": "1228"
      },
      "startPosition": "1208"
    },
    {
      "condition": {
        "leftOperand": {
          "endPosition": "1254",
          "kind": "IDENTIFIER",
          "name": "i",
          "startPosition": "1253"
        },
        "endPosition": "1259",
        "kind": "LESS_THAN",
        "rightOperand": {
          "endPosition": "1259",
          "kind": "NUMBER_LITERAL",
          "value": "10",
          "startPosition": "1257"
        },
        "startPosition": "1253"
      },
      "endPosition": "1278",
      "kind": "FOR_LOOP",
      "statement": {
        "endPosition": "1278",
        "kind": "BLOCK",
        "statements": [
          {
            "expression": {
              "endPosition": "1276",
              "kind": "FUNCTION_INVOCATION",
              "functionSelect": {
                "endPosition": "1273",
                "kind": "IDENTIFIER",
                "name": "print",
                "startPosition": "1268"
              },
              "arguments": [
                {
                  "endPosition": "1275",
                  "kind": "IDENTIFIER",
                  "name": "i",
                  "startPosition": "1274"
                }
              ],
              "startPosition": "1268"
            },
            "endPosition": "1276",
            "kind": "EXPRESSION_STATEMENT",
            "startPosition": "1268"
          }
        ],
        "startPosition": "1266"
      },
      "update": {
        "expression": {
          "endPosition": "1262",
          "kind": "IDENTIFIER",
          "name": "i",
          "startPosition": "1261"
        },
        "endPosition": "1264",
        "kind": "POSTFIX_INCREMENT",
        "startPosition": "1261"
      },
      "startPosition": "1241",
      "initializer": {
        "expression": {
          "endPosition": "1251",
          "kind": "NUMBER_LITERAL",
          "value": "0",
          "startPosition": "1250"
        },
        "endPosition": "1251",
        "kind": "ASSIGNMENT",
        "variable": {
          "endPosition": "1247",
          "kind": "IDENTIFIER",
          "name": "i",
          "startPosition": "1246"
        },
        "startPosition": "1246"
      }
    }
  ],
  "sourceName": "parsertests/loopStat.js",
  "strict": "false",
  "startPosition": "1110"
}
,
{
  "endPosition": "1125",
  "kind": "COMPILATION_UNIT",
  "sourceElements": [
    {
      "expression": {
        "expression": {
          "endPosition": "1133",
          "kind": "OBJECT_LITERAL",
          "startPosition": "1131",
          "properties": []
        },
        "endPosition": "1133",
        "kind": "ASSIGNMENT",
        "variable": {
          "endPosition": "1128",
          "kind": "IDENTIFIER",
          "name": "obj",
          "startPosition": "1125"
        },
        "startPosition": "1125"
      },
      "endPosition": "1133",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1125"
    },
    {
      "expression": {
        "expression": {
          "endPosition": "1154",
          "kind": "OBJECT_LITERAL",
          "startPosition": "1139",
          "properties": [
            {
              "endPosition": "1146",
              "kind": "PROPERTY",
              "value": {
                "endPosition": "1146",
                "kind": "NUMBER_LITERAL",
                "value": "10",
                "startPosition": "1144"
              },
              "startPosition": "1141",
              "key": {
                "endPosition": "1142",
                "kind": "IDENTIFIER",
                "name": "x",
                "startPosition": "1141"
              }
            },
            {
              "endPosition": "1152",
              "kind": "PROPERTY",
              "value": {
                "endPosition": "1152",
                "kind": "NUMBER_LITERAL",
                "value": "2",
                "startPosition": "1151"
              },
              "startPosition": "1148",
              "key": {
                "endPosition": "1149",
                "kind": "IDENTIFIER",
                "name": "y",
                "startPosition": "1148"
              }
            }
          ]
        },
        "endPosition": "1154",
        "kind": "ASSIGNMENT",
        "variable": {
          "endPosition": "1136",
          "kind": "IDENTIFIER",
          "name": "p",
          "startPosition": "1135"
        },
        "startPosition": "1135"
      },
      "endPosition": "1154",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1135"
    },
    {
      "expression": {
        "expression": {
          "endPosition": "1179",
          "kind": "OBJECT_LITERAL",
          "startPosition": "1160",
          "properties": [
            {
              "endPosition": "1169",
              "kind": "PROPERTY",
              "value": {
                "endPosition": "1169",
                "kind": "NUMBER_LITERAL",
                "value": "10",
                "startPosition": "1167"
              },
              "startPosition": "1163",
              "key": {
                "endPosition": "1164",
                "kind": "STRING_LITERAL",
                "value": "x",
                "startPosition": "1163"
              }
            },
            {
              "endPosition": "1177",
              "kind": "PROPERTY",
              "value": {
                "endPosition": "1177",
                "kind": "NUMBER_LITERAL",
                "value": "2",
                "startPosition": "1176"
              },
              "startPosition": "1172",
              "key": {
                "endPosition": "1173",
                "kind": "STRING_LITERAL",
                "value": "y",
                "startPosition": "1172"
              }
            }
          ]
        },
        "endPosition": "1179",
        "kind": "ASSIGNMENT",
        "variable": {
          "endPosition": "1157",
          "kind": "IDENTIFIER",
          "name": "p",
          "startPosition": "1156"
        },
        "startPosition": "1156"
      },
      "endPosition": "1179",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1156"
    },
    {
      "expression": {
        "expression": {
          "endPosition": "1241",
          "kind": "OBJECT_LITERAL",
          "startPosition": "1185",
          "properties": [
            {
              "getter": {
                "endPosition": "1195",
                "kind": "FUNCTION_EXPRESSION",
                "body": {
                  "endPosition": "1210",
                  "kind": "BLOCK",
                  "statements": [
                    {
                      "expression": {
                        "endPosition": "1210",
                        "kind": "IDENTIFIER",
                        "name": "xValue",
                        "startPosition": "1204"
                      },
                      "endPosition": "1210",
                      "kind": "RETURN",
                      "startPosition": "1197"
                    }
                  ],
                  "startPosition": "1195"
                },
                "strict": "false",
                "startPosition": "1195",
                "parameters": []
              },
              "endPosition": "1212",
              "kind": "PROPERTY",
              "startPosition": "1187",
              "key": {
                "endPosition": "1192",
                "kind": "IDENTIFIER",
                "name": "x",
                "startPosition": "1191"
              }
            },
            {
              "getter": {
                "endPosition": "1222",
                "kind": "FUNCTION_EXPRESSION",
                "body": {
                  "endPosition": "1237",
                  "kind": "BLOCK",
                  "statements": [
                    {
                      "expression": {
                        "endPosition": "1237",
                        "kind": "IDENTIFIER",
                        "name": "yValue",
                        "startPosition": "1231"
                      },
                      "endPosition": "1237",
                      "kind": "RETURN",
                      "startPosition": "1224"
                    }
                  ],
                  "startPosition": "1222"
                },
                "strict": "false",
                "startPosition": "1222",
                "parameters": []
              },
              "endPosition": "1239",
              "kind": "PROPERTY",
              "startPosition": "1214",
              "key": {
                "endPosition": "1219",
                "kind": "IDENTIFIER",
                "name": "y",
                "startPosition": "1218"
              }
            }
          ]
        },
        "endPosition": "1241",
        "kind": "ASSIGNMENT",
        "variable": {
          "endPosition": "1182",
          "kind": "IDENTIFIER",
          "name": "p",
          "startPosition": "1181"
        },
        "startPosition": "1181"
      },
      "endPosition": "1241",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1181"
    },
    {
      "expression": {
        "expression": {
          "endPosition": "1315",
          "kind": "OBJECT_LITERAL",
          "startPosition": "1247",
          "properties": [
            {
              "getter": {
                "endPosition": "1259",
                "kind": "FUNCTION_EXPRESSION",
                "body": {
                  "endPosition": "1277",
                  "kind": "BLOCK",
                  "statements": [
                    {
                      "expression": {
                        "identifier": "_foo",
                        "expression": {
                          "endPosition": "1272",
                          "kind": "IDENTIFIER",
                          "name": "this",
                          "startPosition": "1268"
                        },
                        "endPosition": "1277",
                        "kind": "MEMBER_SELECT",
                        "startPosition": "1268"
                      },
                      "endPosition": "1277",
                      "kind": "RETURN",
                      "startPosition": "1261"
                    }
                  ],
                  "startPosition": "1259"
                },
                "strict": "false",
                "startPosition": "1259",
                "parameters": []
              },
              "endPosition": "1279",
              "kind": "PROPERTY",
              "setter": {
                "endPosition": "1294",
                "kind": "FUNCTION_EXPRESSION",
                "body": {
                  "endPosition": "1311",
                  "kind": "BLOCK",
                  "statements": [
                    {
                      "expression": {
                        "expression": {
                          "endPosition": "1311",
                          "kind": "IDENTIFIER",
                          "name": "val",
                          "startPosition": "1308"
                        },
                        "endPosition": "1311",
                        "kind": "ASSIGNMENT",
                        "variable": {
                          "identifier": "_foo",
                          "expression": {
                            "endPosition": "1300",
                            "kind": "IDENTIFIER",
                            "name": "this",
                            "startPosition": "1296"
                          },
                          "endPosition": "1305",
                          "kind": "MEMBER_SELECT",
                          "startPosition": "1296"
                        },
                        "startPosition": "1296"
                      },
                      "endPosition": "1311",
                      "kind": "EXPRESSION_STATEMENT",
                      "startPosition": "1296"
                    }
                  ],
                  "startPosition": "1294"
                },
                "strict": "false",
                "startPosition": "1294",
                "parameters": [
                  {
                    "endPosition": "1292",
                    "kind": "IDENTIFIER",
                    "name": "val",
                    "startPosition": "1289"
                  }
                ]
              },
              "startPosition": "1249",
              "key": {
                "endPosition": "1256",
                "kind": "IDENTIFIER",
                "name": "foo",
                "startPosition": "1253"
              }
            }
          ]
        },
        "endPosition": "1315",
        "kind": "ASSIGNMENT",
        "variable": {
          "endPosition": "1244",
          "kind": "IDENTIFIER",
          "name": "p",
          "startPosition": "1243"
        },
        "startPosition": "1243"
      },
      "endPosition": "1315",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1243"
    }
  ],
  "sourceName": "parsertests/objectLitExpr.js",
  "strict": "false",
  "startPosition": "1125"
}
,
{
  "endPosition": "1118",
  "kind": "COMPILATION_UNIT",
  "sourceElements": [
    {
      "expression": {
        "leftOperand": {
          "leftOperand": {
            "endPosition": "1120",
            "kind": "NUMBER_LITERAL",
            "value": "2",
            "startPosition": "1119"
          },
          "endPosition": "1126",
          "kind": "PLUS",
          "rightOperand": {
            "endPosition": "1126",
            "kind": "NUMBER_LITERAL",
            "value": "1",
            "startPosition": "1125"
          },
          "startPosition": "1119"
        },
        "endPosition": "1131",
        "kind": "PLUS",
        "rightOperand": {
          "endPosition": "1131",
          "kind": "NUMBER_LITERAL",
          "value": "4",
          "startPosition": "1130"
        },
        "startPosition": "1119"
      },
      "endPosition": "1131",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1118"
    },
    {
      "expression": {
        "leftOperand": {
          "leftOperand": {
            "endPosition": "1134",
            "kind": "NUMBER_LITERAL",
            "value": "3",
            "startPosition": "1133"
          },
          "endPosition": "1139",
          "kind": "PLUS",
          "rightOperand": {
            "endPosition": "1139",
            "kind": "NUMBER_LITERAL",
            "value": "7",
            "startPosition": "1138"
          },
          "startPosition": "1133"
        },
        "endPosition": "1146",
        "kind": "LEFT_SHIFT",
        "rightOperand": {
          "endPosition": "1146",
          "kind": "NUMBER_LITERAL",
          "value": "5",
          "startPosition": "1145"
        },
        "startPosition": "1133"
      },
      "endPosition": "1147",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1133"
    }
  ],
  "sourceName": "parsertests/parenExpr.js",
  "strict": "false",
  "startPosition": "1118"
}
,
{
  "endPosition": "1119",
  "kind": "COMPILATION_UNIT",
  "sourceElements": [
    {
      "expression": {
        "endPosition": "1123",
        "kind": "IDENTIFIER",
        "name": "this",
        "startPosition": "1119"
      },
      "endPosition": "1123",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1119"
    },
    {
      "expression": {
        "endPosition": "1128",
        "kind": "IDENTIFIER",
        "name": "foo",
        "startPosition": "1125"
      },
      "endPosition": "1128",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1125"
    },
    {
      "expression": {
        "endPosition": "1134",
        "kind": "NULL_LITERAL",
        "startPosition": "1130"
      },
      "endPosition": "1134",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1130"
    },
    {
      "expression": {
        "endPosition": "1140",
        "kind": "BOOLEAN_LITERAL",
        "value": "true",
        "startPosition": "1136"
      },
      "endPosition": "1140",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1136"
    },
    {
      "expression": {
        "endPosition": "1147",
        "kind": "BOOLEAN_LITERAL",
        "value": "false",
        "startPosition": "1142"
      },
      "endPosition": "1147",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1142"
    },
    {
      "expression": {
        "endPosition": "1151",
        "kind": "NUMBER_LITERAL",
        "value": "33",
        "startPosition": "1149"
      },
      "endPosition": "1151",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1149"
    },
    {
      "expression": {
        "endPosition": "1157",
        "kind": "NUMBER_LITERAL",
        "value": "3.14",
        "startPosition": "1153"
      },
      "endPosition": "1157",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1153"
    },
    {
      "expression": {
        "leftOperand": {
          "leftOperand": {
            "endPosition": "1162",
            "kind": "NUMBER_LITERAL",
            "value": "10",
            "startPosition": "1160"
          },
          "endPosition": "1166",
          "kind": "PLUS",
          "rightOperand": {
            "endPosition": "1166",
            "kind": "NUMBER_LITERAL",
            "value": "3",
            "startPosition": "1165"
          },
          "startPosition": "1160"
        },
        "endPosition": "1169",
        "kind": "MULTIPLY",
        "rightOperand": {
          "endPosition": "1169",
          "kind": "NUMBER_LITERAL",
          "value": "2",
          "startPosition": "1168"
        },
        "startPosition": "1160"
      },
      "endPosition": "1169",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1159"
    },
    {
      "expression": {
        "endPosition": "1174",
        "kind": "OBJECT_LITERAL",
        "startPosition": "1172",
        "properties": []
      },
      "endPosition": "1175",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1171"
    },
    {
      "expression": {
        "endPosition": "1186",
        "kind": "OBJECT_LITERAL",
        "startPosition": "1178",
        "properties": [
          {
            "endPosition": "1184",
            "kind": "PROPERTY",
            "value": {
              "endPosition": "1184",
              "kind": "NUMBER_LITERAL",
              "value": "3",
              "startPosition": "1183"
            },
            "startPosition": "1180",
            "key": {
              "endPosition": "1181",
              "kind": "IDENTIFIER",
              "name": "x",
              "startPosition": "1180"
            }
          }
        ]
      },
      "endPosition": "1187",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1177"
    },
    {
      "expression": {
        "endPosition": "1191",
        "kind": "ARRAY_LITERAL",
        "elements": [],
        "startPosition": "1189"
      },
      "endPosition": "1191",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1189"
    },
    {
      "expression": {
        "endPosition": "1197",
        "kind": "ARRAY_LITERAL",
        "elements": [
          null,
          null
        ],
        "startPosition": "1193"
      },
      "endPosition": "1197",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1193"
    },
    {
      "expression": {
        "endPosition": "1208",
        "kind": "ARRAY_LITERAL",
        "elements": [
          {
            "endPosition": "1201",
            "kind": "NUMBER_LITERAL",
            "value": "4",
            "startPosition": "1200"
          },
          {
            "endPosition": "1204",
            "kind": "NUMBER_LITERAL",
            "value": "5",
            "startPosition": "1203"
          },
          {
            "endPosition": "1207",
            "kind": "NUMBER_LITERAL",
            "value": "5",
            "startPosition": "1206"
          }
        ],
        "startPosition": "1199"
      },
      "endPosition": "1208",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1199"
    }
  ],
  "sourceName": "parsertests/primaryExpr.js",
  "strict": "false",
  "startPosition": "1119"
}
,
{
  "endPosition": "1114",
  "kind": "COMPILATION_UNIT",
  "sourceElements": [
    {
      "endPosition": "1127",
      "kind": "VARIABLE",
      "name": "x",
      "startPosition": "1118",
      "initializer": {
        "endPosition": "1127",
        "kind": "REGEXP_LITERAL",
        "options": "",
        "pattern": "foo",
        "startPosition": "1122"
      }
    },
    {
      "endPosition": "1143",
      "kind": "VARIABLE",
      "name": "y",
      "startPosition": "1133",
      "initializer": {
        "endPosition": "1143",
        "kind": "REGEXP_LITERAL",
        "options": "g",
        "pattern": "foo",
        "startPosition": "1137"
      }
    },
    {
      "endPosition": "1168",
      "kind": "VARIABLE",
      "name": "z",
      "startPosition": "1149",
      "initializer": {
        "endPosition": "1168",
        "kind": "REGEXP_LITERAL",
        "options": "",
        "pattern": "[a-z]*[1-10]?",
        "startPosition": "1153"
      }
    }
  ],
  "sourceName": "parsertests/regexp_literal.js",
  "strict": "false",
  "startPosition": "1114"
}
,
{
  "endPosition": "1118",
  "kind": "COMPILATION_UNIT",
  "sourceElements": [
    {
      "expression": {
        "endPosition": "1130",
        "kind": "FUNCTION_EXPRESSION",
        "body": {
          "endPosition": "1138",
          "kind": "BLOCK",
          "statements": [
            {
              "endPosition": "1138",
              "kind": "RETURN",
              "startPosition": "1132"
            }
          ],
          "startPosition": "1130"
        },
        "strict": "false",
        "startPosition": "1130",
        "parameters": []
      },
      "endPosition": "1141",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1118"
    },
    {
      "expression": {
        "endPosition": "1155",
        "kind": "FUNCTION_EXPRESSION",
        "body": {
          "endPosition": "1167",
          "kind": "BLOCK",
          "statements": [
            {
              "expression": {
                "endPosition": "1167",
                "kind": "IDENTIFIER",
                "name": "res",
                "startPosition": "1164"
              },
              "endPosition": "1167",
              "kind": "RETURN",
              "startPosition": "1157"
            }
          ],
          "startPosition": "1155"
        },
        "strict": "false",
        "startPosition": "1155",
        "parameters": []
      },
      "endPosition": "1170",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1143"
    },
    {
      "expression": {
        "endPosition": "1184",
        "kind": "FUNCTION_EXPRESSION",
        "body": {
          "endPosition": "1198",
          "kind": "BLOCK",
          "statements": [
            {
              "expression": {
                "endPosition": "1198",
                "kind": "FUNCTION_INVOCATION",
                "functionSelect": {
                  "endPosition": "1196",
                  "kind": "IDENTIFIER",
                  "name": "foo",
                  "startPosition": "1193"
                },
                "arguments": [],
                "startPosition": "1193"
              },
              "endPosition": "1198",
              "kind": "RETURN",
              "startPosition": "1186"
            }
          ],
          "startPosition": "1184"
        },
        "strict": "false",
        "startPosition": "1184",
        "parameters": []
      },
      "endPosition": "1201",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1172"
    }
  ],
  "sourceName": "parsertests/returnStat.js",
  "strict": "false",
  "startPosition": "1118"
}
,
{
  "endPosition": "1111",
  "kind": "COMPILATION_UNIT",
  "sourceElements": [
    {
      "cases": [],
      "expression": {
        "endPosition": "1122",
        "kind": "IDENTIFIER",
        "name": "key",
        "startPosition": "1119"
      },
      "endPosition": "1126",
      "kind": "SWITCH",
      "startPosition": "1111"
    },
    {
      "cases": [
        {
          "expression": {
            "endPosition": "1149",
            "kind": "NUMBER_LITERAL",
            "value": "2",
            "startPosition": "1148"
          },
          "endPosition": "1166",
          "kind": "CASE",
          "statements": [
            {
              "expression": {
                "endPosition": "1158",
                "kind": "FUNCTION_INVOCATION",
                "functionSelect": {
                  "endPosition": "1156",
                  "kind": "IDENTIFIER",
                  "name": "hello",
                  "startPosition": "1151"
                },
                "arguments": [],
                "startPosition": "1151"
              },
              "endPosition": "1158",
              "kind": "EXPRESSION_STATEMENT",
              "startPosition": "1151"
            },
            {
              "endPosition": "1166",
              "kind": "BREAK",
              "startPosition": "1160"
            }
          ],
          "startPosition": "1143"
        }
      ],
      "expression": {
        "endPosition": "1139",
        "kind": "IDENTIFIER",
        "name": "key",
        "startPosition": "1136"
      },
      "endPosition": "1168",
      "kind": "SWITCH",
      "startPosition": "1128"
    },
    {
      "cases": [
        {
          "expression": {
            "endPosition": "1191",
            "kind": "NUMBER_LITERAL",
            "value": "4",
            "startPosition": "1190"
          },
          "endPosition": "1208",
          "kind": "CASE",
          "statements": [
            {
              "expression": {
                "endPosition": "1200",
                "kind": "FUNCTION_INVOCATION",
                "functionSelect": {
                  "endPosition": "1198",
                  "kind": "IDENTIFIER",
                  "name": "hello",
                  "startPosition": "1193"
                },
                "arguments": [],
                "startPosition": "1193"
              },
              "endPosition": "1200",
              "kind": "EXPRESSION_STATEMENT",
              "startPosition": "1193"
            },
            {
              "endPosition": "1208",
              "kind": "BREAK",
              "startPosition": "1202"
            }
          ],
          "startPosition": "1185"
        },
        {
          "expression": {
            "endPosition": "1215",
            "kind": "NUMBER_LITERAL",
            "value": "2",
            "startPosition": "1214"
          },
          "endPosition": "1232",
          "kind": "CASE",
          "statements": [
            {
              "expression": {
                "endPosition": "1224",
                "kind": "FUNCTION_INVOCATION",
                "functionSelect": {
                  "endPosition": "1222",
                  "kind": "IDENTIFIER",
                  "name": "world",
                  "startPosition": "1217"
                },
                "arguments": [],
                "startPosition": "1217"
              },
              "endPosition": "1224",
              "kind": "EXPRESSION_STATEMENT",
              "startPosition": "1217"
            },
            {
              "endPosition": "1232",
              "kind": "BREAK",
              "startPosition": "1226"
            }
          ],
          "startPosition": "1209"
        },
        {
          "endPosition": "1247",
          "kind": "CASE",
          "statements": [
            {
              "endPosition": "1247",
              "kind": "BREAK",
              "startPosition": "1242"
            }
          ],
          "startPosition": "1233"
        }
      ],
      "expression": {
        "endPosition": "1181",
        "kind": "IDENTIFIER",
        "name": "key",
        "startPosition": "1178"
      },
      "endPosition": "1249",
      "kind": "SWITCH",
      "startPosition": "1170"
    }
  ],
  "sourceName": "parsertests/switchStat.js",
  "strict": "false",
  "startPosition": "1111"
}
,
{
  "endPosition": "1110",
  "kind": "COMPILATION_UNIT",
  "sourceElements": [
    {
      "expression": {
        "endPosition": "1119",
        "kind": "IDENTIFIER",
        "name": "err",
        "startPosition": "1116"
      },
      "endPosition": "1120",
      "kind": "THROW",
      "startPosition": "1110"
    },
    {
      "expression": {
        "endPosition": "1133",
        "kind": "STRING_LITERAL",
        "value": "wrong",
        "startPosition": "1128"
      },
      "endPosition": "1135",
      "kind": "THROW",
      "startPosition": "1121"
    },
    {
      "expression": {
        "constructorExpression": {
          "endPosition": "1155",
          "kind": "FUNCTION_INVOCATION",
          "functionSelect": {
            "endPosition": "1155",
            "kind": "IDENTIFIER",
            "name": "TypeError",
            "startPosition": "1146"
          },
          "arguments": [],
          "startPosition": "1146"
        },
        "endPosition": "1155",
        "kind": "NEW",
        "startPosition": "1142"
      },
      "endPosition": "1156",
      "kind": "THROW",
      "startPosition": "1136"
    },
    {
      "expression": {
        "constructorExpression": {
          "endPosition": "1192",
          "kind": "FUNCTION_INVOCATION",
          "functionSelect": {
            "endPosition": "1176",
            "kind": "IDENTIFIER",
            "name": "TypeError",
            "startPosition": "1167"
          },
          "arguments": [
            {
              "endPosition": "1190",
              "kind": "STRING_LITERAL",
              "value": "not an array",
              "startPosition": "1178"
            }
          ],
          "startPosition": "1167"
        },
        "endPosition": "1192",
        "kind": "NEW",
        "startPosition": "1163"
      },
      "endPosition": "1193",
      "kind": "THROW",
      "startPosition": "1157"
    },
    {
      "expression": {
        "endPosition": "1217",
        "kind": "OBJECT_LITERAL",
        "startPosition": "1200",
        "properties": [
          {
            "endPosition": "1214",
            "kind": "PROPERTY",
            "value": {
              "endPosition": "1214",
              "kind": "STRING_LITERAL",
              "value": "wrong!",
              "startPosition": "1208"
            },
            "startPosition": "1202",
            "key": {
              "endPosition": "1205",
              "kind": "IDENTIFIER",
              "name": "msg",
              "startPosition": "1202"
            }
          }
        ]
      },
      "endPosition": "1218",
      "kind": "THROW",
      "startPosition": "1194"
    }
  ],
  "sourceName": "parsertests/throwStat.js",
  "strict": "false",
  "startPosition": "1110"
}
,
{
  "endPosition": "1121",
  "kind": "COMPILATION_UNIT",
  "sourceElements": [
    {
      "endPosition": "1142",
      "kind": "TRY",
      "catches": [
        {
          "endPosition": "1142",
          "kind": "CATCH",
          "parameter": {
            "endPosition": "1137",
            "kind": "IDENTIFIER",
            "name": "e",
            "startPosition": "1136"
          },
          "block": {
            "endPosition": "1142",
            "kind": "BLOCK",
            "statements": [],
            "startPosition": "1139"
          },
          "startPosition": "1129"
        }
      ],
      "block": {
        "endPosition": "1128",
        "kind": "BLOCK",
        "statements": [],
        "startPosition": "1125"
      },
      "startPosition": "1121"
    },
    {
      "endPosition": "1175",
      "kind": "TRY",
      "catches": [
        {
          "endPosition": "1164",
          "kind": "CATCH",
          "parameter": {
            "endPosition": "1159",
            "kind": "IDENTIFIER",
            "name": "e",
            "startPosition": "1158"
          },
          "block": {
            "endPosition": "1164",
            "kind": "BLOCK",
            "statements": [],
            "startPosition": "1161"
          },
          "startPosition": "1151"
        }
      ],
      "block": {
        "endPosition": "1150",
        "kind": "BLOCK",
        "statements": [],
        "startPosition": "1147"
      },
      "finallyBlock": {
        "endPosition": "1175",
        "kind": "BLOCK",
        "statements": [],
        "startPosition": "1173"
      },
      "startPosition": "1143"
    },
    {
      "endPosition": "1194",
      "kind": "TRY",
      "catches": [],
      "block": {
        "endPosition": "1183",
        "kind": "BLOCK",
        "statements": [],
        "startPosition": "1180"
      },
      "finallyBlock": {
        "endPosition": "1194",
        "kind": "BLOCK",
        "statements": [],
        "startPosition": "1192"
      },
      "startPosition": "1176"
    },
    {
      "endPosition": "1225",
      "kind": "TRY",
      "catches": [
        {
          "endPosition": "1225",
          "kind": "CATCH",
          "parameter": {
            "endPosition": "1211",
            "kind": "IDENTIFIER",
            "name": "e",
            "startPosition": "1210"
          },
          "block": {
            "endPosition": "1225",
            "kind": "BLOCK",
            "statements": [
              {
                "expression": {
                  "endPosition": "1223",
                  "kind": "FUNCTION_INVOCATION",
                  "functionSelect": {
                    "endPosition": "1221",
                    "kind": "IDENTIFIER",
                    "name": "handle",
                    "startPosition": "1215"
                  },
                  "arguments": [],
                  "startPosition": "1215"
                },
                "endPosition": "1223",
                "kind": "EXPRESSION_STATEMENT",
                "startPosition": "1215"
              }
            ],
            "startPosition": "1213"
          },
          "startPosition": "1203"
        }
      ],
      "block": {
        "endPosition": "1202",
        "kind": "BLOCK",
        "statements": [],
        "startPosition": "1199"
      },
      "startPosition": "1195"
    },
    {
      "endPosition": "1283",
      "kind": "TRY",
      "catches": [
        {
          "endPosition": "1263",
          "kind": "CATCH",
          "parameter": {
            "endPosition": "1249",
            "kind": "IDENTIFIER",
            "name": "e",
            "startPosition": "1248"
          },
          "block": {
            "endPosition": "1263",
            "kind": "BLOCK",
            "statements": [
              {
                "expression": {
                  "endPosition": "1261",
                  "kind": "FUNCTION_INVOCATION",
                  "functionSelect": {
                    "endPosition": "1259",
                    "kind": "IDENTIFIER",
                    "name": "handle",
                    "startPosition": "1253"
                  },
                  "arguments": [],
                  "startPosition": "1253"
                },
                "endPosition": "1261",
                "kind": "EXPRESSION_STATEMENT",
                "startPosition": "1253"
              }
            ],
            "startPosition": "1251"
          },
          "startPosition": "1241"
        }
      ],
      "block": {
        "endPosition": "1240",
        "kind": "BLOCK",
        "statements": [
          {
            "expression": {
              "endPosition": "1238",
              "kind": "FUNCTION_INVOCATION",
              "functionSelect": {
                "endPosition": "1236",
                "kind": "IDENTIFIER",
                "name": "that",
                "startPosition": "1232"
              },
              "arguments": [],
              "startPosition": "1232"
            },
            "endPosition": "1238",
            "kind": "EXPRESSION_STATEMENT",
            "startPosition": "1232"
          }
        ],
        "startPosition": "1230"
      },
      "finallyBlock": {
        "endPosition": "1283",
        "kind": "BLOCK",
        "statements": [
          {
            "expression": {
              "endPosition": "1281",
              "kind": "FUNCTION_INVOCATION",
              "functionSelect": {
                "endPosition": "1279",
                "kind": "IDENTIFIER",
                "name": "clean",
                "startPosition": "1274"
              },
              "arguments": [],
              "startPosition": "1274"
            },
            "endPosition": "1281",
            "kind": "EXPRESSION_STATEMENT",
            "startPosition": "1274"
          }
        ],
        "startPosition": "1272"
      },
      "startPosition": "1226"
    },
    {
      "endPosition": "1368",
      "kind": "TRY",
      "catches": [
        {
          "condition": {
            "leftOperand": {
              "endPosition": "1312",
              "kind": "IDENTIFIER",
              "name": "e",
              "startPosition": "1311"
            },
            "expression": {
              "endPosition": "1312",
              "kind": "IDENTIFIER",
              "name": "e",
              "startPosition": "1311"
            },
            "endPosition": "1333",
            "kind": "INSTANCE_OF",
            "rightOperand": {
              "endPosition": "1333",
              "kind": "IDENTIFIER",
              "name": "TypeError",
              "startPosition": "1324"
            },
            "type": {
              "endPosition": "1333",
              "kind": "IDENTIFIER",
              "name": "TypeError",
              "startPosition": "1324"
            },
            "startPosition": "1311"
          },
          "endPosition": "1347",
          "kind": "CATCH",
          "parameter": {
            "endPosition": "1307",
            "kind": "IDENTIFIER",
            "name": "e",
            "startPosition": "1306"
          },
          "block": {
            "endPosition": "1347",
            "kind": "BLOCK",
            "statements": [
              {
                "expression": {
                  "endPosition": "1345",
                  "kind": "FUNCTION_INVOCATION",
                  "functionSelect": {
                    "endPosition": "1343",
                    "kind": "IDENTIFIER",
                    "name": "handle",
                    "startPosition": "1337"
                  },
                  "arguments": [],
                  "startPosition": "1337"
                },
                "endPosition": "1345",
                "kind": "EXPRESSION_STATEMENT",
                "startPosition": "1337"
              }
            ],
            "startPosition": "1335"
          },
          "startPosition": "1299"
        },
        {
          "endPosition": "1368",
          "kind": "CATCH",
          "parameter": {
            "endPosition": "1356",
            "kind": "IDENTIFIER",
            "name": "e",
            "startPosition": "1355"
          },
          "block": {
            "endPosition": "1368",
            "kind": "BLOCK",
            "statements": [
              {
                "expression": {
                  "endPosition": "1366",
                  "kind": "FUNCTION_INVOCATION",
                  "functionSelect": {
                    "endPosition": "1364",
                    "kind": "IDENTIFIER",
                    "name": "rest",
                    "startPosition": "1360"
                  },
                  "arguments": [],
                  "startPosition": "1360"
                },
                "endPosition": "1366",
                "kind": "EXPRESSION_STATEMENT",
                "startPosition": "1360"
              }
            ],
            "startPosition": "1358"
          },
          "startPosition": "1348"
        }
      ],
      "block": {
        "endPosition": "1298",
        "kind": "BLOCK",
        "statements": [
          {
            "expression": {
              "endPosition": "1296",
              "kind": "FUNCTION_INVOCATION",
              "functionSelect": {
                "endPosition": "1294",
                "kind": "IDENTIFIER",
                "name": "that",
                "startPosition": "1290"
              },
              "arguments": [],
              "startPosition": "1290"
            },
            "endPosition": "1296",
            "kind": "EXPRESSION_STATEMENT",
            "startPosition": "1290"
          }
        ],
        "startPosition": "1288"
      },
      "startPosition": "1284"
    }
  ],
  "sourceName": "parsertests/tryCatchStat.js",
  "strict": "false",
  "startPosition": "1121"
}
,
{
  "endPosition": "1115",
  "kind": "COMPILATION_UNIT",
  "sourceElements": [
    {
      "expression": {
        "expression": {
          "endPosition": "1116",
          "kind": "IDENTIFIER",
          "name": "x",
          "startPosition": "1115"
        },
        "endPosition": "1118",
        "kind": "POSTFIX_INCREMENT",
        "startPosition": "1115"
      },
      "endPosition": "1118",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1115"
    },
    {
      "expression": {
        "expression": {
          "endPosition": "1121",
          "kind": "IDENTIFIER",
          "name": "x",
          "startPosition": "1120"
        },
        "endPosition": "1123",
        "kind": "POSTFIX_DECREMENT",
        "startPosition": "1120"
      },
      "endPosition": "1123",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1120"
    },
    {
      "expression": {
        "expression": {
          "endPosition": "1133",
          "kind": "IDENTIFIER",
          "name": "x",
          "startPosition": "1132"
        },
        "endPosition": "1133",
        "kind": "DELETE",
        "startPosition": "1125"
      },
      "endPosition": "1133",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1125"
    },
    {
      "expression": {
        "expression": {
          "endPosition": "1141",
          "kind": "IDENTIFIER",
          "name": "x",
          "startPosition": "1140"
        },
        "endPosition": "1141",
        "kind": "VOID",
        "startPosition": "1135"
      },
      "endPosition": "1141",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1135"
    },
    {
      "expression": {
        "expression": {
          "endPosition": "1151",
          "kind": "IDENTIFIER",
          "name": "x",
          "startPosition": "1150"
        },
        "endPosition": "1151",
        "kind": "TYPEOF",
        "startPosition": "1143"
      },
      "endPosition": "1151",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1143"
    },
    {
      "expression": {
        "expression": {
          "endPosition": "1156",
          "kind": "IDENTIFIER",
          "name": "x",
          "startPosition": "1155"
        },
        "endPosition": "1156",
        "kind": "PREFIX_INCREMENT",
        "startPosition": "1153"
      },
      "endPosition": "1156",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1153"
    },
    {
      "expression": {
        "expression": {
          "endPosition": "1161",
          "kind": "IDENTIFIER",
          "name": "x",
          "startPosition": "1160"
        },
        "endPosition": "1161",
        "kind": "PREFIX_DECREMENT",
        "startPosition": "1158"
      },
      "endPosition": "1161",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1158"
    },
    {
      "expression": {
        "expression": {
          "endPosition": "1165",
          "kind": "IDENTIFIER",
          "name": "x",
          "startPosition": "1164"
        },
        "endPosition": "1165",
        "kind": "PLUS",
        "startPosition": "1163"
      },
      "endPosition": "1165",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1163"
    },
    {
      "expression": {
        "expression": {
          "endPosition": "1169",
          "kind": "IDENTIFIER",
          "name": "x",
          "startPosition": "1168"
        },
        "endPosition": "1169",
        "kind": "MINUS",
        "startPosition": "1167"
      },
      "endPosition": "1169",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1167"
    },
    {
      "expression": {
        "expression": {
          "endPosition": "1173",
          "kind": "IDENTIFIER",
          "name": "x",
          "startPosition": "1172"
        },
        "endPosition": "1173",
        "kind": "BITWISE_COMPLEMENT",
        "startPosition": "1171"
      },
      "endPosition": "1173",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1171"
    },
    {
      "expression": {
        "expression": {
          "endPosition": "1177",
          "kind": "IDENTIFIER",
          "name": "x",
          "startPosition": "1176"
        },
        "endPosition": "1177",
        "kind": "LOGICAL_COMPLEMENT",
        "startPosition": "1175"
      },
      "endPosition": "1177",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1175"
    }
  ],
  "sourceName": "parsertests/unaryExpr.js",
  "strict": "false",
  "startPosition": "1115"
}
,
{
  "endPosition": "1122",
  "kind": "COMPILATION_UNIT",
  "sourceElements": [
    {
      "expression": {
        "endPosition": "1133",
        "kind": "STRING_LITERAL",
        "value": "use strict",
        "startPosition": "1123"
      },
      "endPosition": "1133",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1123"
    },
    {
      "endPosition": "1165",
      "kind": "FUNCTION",
      "name": "f",
      "body": {
        "endPosition": "1162",
        "kind": "BLOCK",
        "statements": [
          {
            "expression": {
              "endPosition": "1162",
              "kind": "STRING_LITERAL",
              "value": "use strict",
              "startPosition": "1152"
            },
            "endPosition": "1162",
            "kind": "EXPRESSION_STATEMENT",
            "startPosition": "1152"
          }
        ],
        "startPosition": "1149"
      },
      "strict": "true",
      "startPosition": "1136",
      "parameters": []
    }
  ],
  "sourceName": "parsertests/useStrict.js",
  "strict": "true",
  "startPosition": "1122"
}
,
{
  "endPosition": "1143",
  "kind": "COMPILATION_UNIT",
  "sourceElements": [
    {
      "endPosition": "1148",
      "kind": "VARIABLE",
      "name": "a",
      "startPosition": "1147"
    },
    {
      "endPosition": "1155",
      "kind": "VARIABLE",
      "name": "a",
      "startPosition": "1154"
    },
    {
      "endPosition": "1158",
      "kind": "VARIABLE",
      "name": "b",
      "startPosition": "1157"
    },
    {
      "endPosition": "1200",
      "kind": "VARIABLE",
      "name": "a",
      "startPosition": "1190",
      "initializer": {
        "endPosition": "1200",
        "kind": "STRING_LITERAL",
        "value": "hello",
        "startPosition": "1195"
      }
    },
    {
      "endPosition": "1212",
      "kind": "VARIABLE",
      "name": "a",
      "startPosition": "1207",
      "initializer": {
        "endPosition": "1212",
        "kind": "NUMBER_LITERAL",
        "value": "1",
        "startPosition": "1211"
      }
    },
    {
      "endPosition": "1219",
      "kind": "VARIABLE",
      "name": "b",
      "startPosition": "1214",
      "initializer": {
        "endPosition": "1219",
        "kind": "NUMBER_LITERAL",
        "value": "2",
        "startPosition": "1218"
      }
    },
    {
      "endPosition": "1226",
      "kind": "VARIABLE",
      "name": "c",
      "startPosition": "1221",
      "initializer": {
        "endPosition": "1226",
        "kind": "NUMBER_LITERAL",
        "value": "3",
        "startPosition": "1225"
      }
    }
  ],
  "sourceName": "parsertests/varDecl.js",
  "strict": "false",
  "startPosition": "1143"
}
,
{
  "endPosition": "1111",
  "kind": "COMPILATION_UNIT",
  "sourceElements": [
    {
      "endPosition": "1133",
      "kind": "WITH",
      "scope": {
        "endPosition": "1122",
        "kind": "IDENTIFIER",
        "name": "scope",
        "startPosition": "1117"
      },
      "statement": {
        "endPosition": "1133",
        "kind": "BLOCK",
        "statements": [
          {
            "expression": {
              "expression": {
                "endPosition": "1131",
                "kind": "IDENTIFIER",
                "name": "y",
                "startPosition": "1130"
              },
              "endPosition": "1131",
              "kind": "ASSIGNMENT",
              "variable": {
                "endPosition": "1127",
                "kind": "IDENTIFIER",
                "name": "x",
                "startPosition": "1126"
              },
              "startPosition": "1126"
            },
            "endPosition": "1131",
            "kind": "EXPRESSION_STATEMENT",
            "startPosition": "1126"
          }
        ],
        "startPosition": "1124"
      },
      "startPosition": "1111"
    }
  ],
  "sourceName": "parsertests/withStat.js",
  "strict": "false",
  "startPosition": "1111"
}
,
{
  "fileName": "parsernegativetests/caseoutofswitch.js",
  "code": "case (1090, 4)",
  "columnNumber": "0",
  "kind": "ERROR",
  "position": "1090",
  "message": "parsernegativetests/caseoutofswitch.js:29:0 Expected an operand but found case\ncase 23:\n^",
  "lineNumber": "29"
}
,
{
  "fileName": "parsernegativetests/caseoutofswitch.js",
  "code": "default (1112, 7)",
  "columnNumber": "0",
  "kind": "ERROR",
  "position": "1112",
  "message": "parsernegativetests/caseoutofswitch.js:31:0 Expected an operand but found default\ndefault:\n^",
  "lineNumber": "31"
}
,
{
  "endPosition": "1090",
  "kind": "COMPILATION_UNIT",
  "sourceElements": [
    {
      "expression": {
        "endPosition": "1098",
        "kind": "ERROR",
        "startPosition": "1090"
      },
      "endPosition": "1098",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1090"
    },
    {
      "expression": {
        "endPosition": "1110",
        "kind": "FUNCTION_INVOCATION",
        "functionSelect": {
          "endPosition": "1104",
          "kind": "IDENTIFIER",
          "name": "print",
          "startPosition": "1099"
        },
        "arguments": [
          {
            "endPosition": "1108",
            "kind": "STRING_LITERAL",
            "value": "23",
            "startPosition": "1106"
          }
        ],
        "startPosition": "1099"
      },
      "endPosition": "1110",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1099"
    },
    {
      "expression": {
        "endPosition": "1120",
        "kind": "ERROR",
        "startPosition": "1112"
      },
      "endPosition": "1120",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1112"
    },
    {
      "expression": {
        "endPosition": "1135",
        "kind": "FUNCTION_INVOCATION",
        "functionSelect": {
          "endPosition": "1126",
          "kind": "IDENTIFIER",
          "name": "print",
          "startPosition": "1121"
        },
        "arguments": [
          {
            "endPosition": "1133",
            "kind": "STRING_LITERAL",
            "value": "hello",
            "startPosition": "1128"
          }
        ],
        "startPosition": "1121"
      },
      "endPosition": "1135",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1121"
    }
  ],
  "sourceName": "parsernegativetests/caseoutofswitch.js",
  "strict": "false",
  "startPosition": "1090"
}
,
{
  "fileName": "parsernegativetests/illegalbreak.js",
  "code": "break (1090, 5)",
  "columnNumber": "0",
  "kind": "ERROR",
  "position": "1090",
  "message": "parsernegativetests/illegalbreak.js:29:0 Illegal break statement\nbreak;\n^",
  "lineNumber": "29"
}
,
{
  "fileName": "parsernegativetests/illegalbreak.js",
  "code": "ident (1103, 3)",
  "columnNumber": "6",
  "kind": "ERROR",
  "position": "1103",
  "message": "parsernegativetests/illegalbreak.js:30:6 Undefined Label \"foo\"\nbreak foo;\n      ^",
  "lineNumber": "30"
}
,
{
  "endPosition": "1090",
  "kind": "COMPILATION_UNIT",
  "sourceElements": [
    {
      "expression": {
        "endPosition": "1096",
        "kind": "ERROR",
        "startPosition": "1095"
      },
      "endPosition": "1096",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1095"
    },
    {
      "expression": {
        "endPosition": "1107",
        "kind": "ERROR",
        "startPosition": "1106"
      },
      "endPosition": "1107",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1106"
    }
  ],
  "sourceName": "parsernegativetests/illegalbreak.js",
  "strict": "false",
  "startPosition": "1090"
}
,
{
  "fileName": "parsernegativetests/illegalcontinue.js",
  "code": "continue (1090, 8)",
  "columnNumber": "0",
  "kind": "ERROR",
  "position": "1090",
  "message": "parsernegativetests/illegalcontinue.js:29:0 Illegal continue statement\ncontinue;\n^",
  "lineNumber": "29"
}
,
{
  "fileName": "parsernegativetests/illegalcontinue.js",
  "code": "ident (1109, 3)",
  "columnNumber": "9",
  "kind": "ERROR",
  "position": "1109",
  "message": "parsernegativetests/illegalcontinue.js:30:9 Undefined Label \"foo\"\ncontinue foo;\n         ^",
  "lineNumber": "30"
}
,
{
  "endPosition": "1090",
  "kind": "COMPILATION_UNIT",
  "sourceElements": [
    {
      "expression": {
        "endPosition": "1099",
        "kind": "ERROR",
        "startPosition": "1098"
      },
      "endPosition": "1099",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1098"
    },
    {
      "expression": {
        "endPosition": "1113",
        "kind": "ERROR",
        "startPosition": "1112"
      },
      "endPosition": "1113",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1112"
    }
  ],
  "sourceName": "parsernegativetests/illegalcontinue.js",
  "strict": "false",
  "startPosition": "1090"
}
,
{
  "fileName": "parsernegativetests/illegallvalue.js",
  "code": "decimal (1090, 2)",
  "columnNumber": "0",
  "kind": "ERROR",
  "position": "1090",
  "message": "parsernegativetests/illegallvalue.js:29:0 Invalid left hand side for assignment\n44 = 54;\n^",
  "lineNumber": "29"
}
,
{
  "fileName": "parsernegativetests/illegallvalue.js",
  "code": "decimal (1099, 3)",
  "columnNumber": "0",
  "kind": "ERROR",
  "position": "1099",
  "message": "parsernegativetests/illegallvalue.js:30:0 Invalid left hand side for assignment\n233 += 33;\n^",
  "lineNumber": "30"
}
,
{
  "fileName": "parsernegativetests/illegallvalue.js",
  "code": "decimal (1110, 4)",
  "columnNumber": "0",
  "kind": "ERROR",
  "position": "1110",
  "message": "parsernegativetests/illegallvalue.js:31:0 Invalid left hand side for assignment\n3423 -= 234;\n^",
  "lineNumber": "31"
}
,
{
  "endPosition": "1090",
  "kind": "COMPILATION_UNIT",
  "sourceElements": [
    {
      "expression": {
        "endPosition": "1098",
        "kind": "ERROR",
        "startPosition": "1097"
      },
      "endPosition": "1098",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1097"
    },
    {
      "expression": {
        "endPosition": "1109",
        "kind": "ERROR",
        "startPosition": "1108"
      },
      "endPosition": "1109",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1108"
    },
    {
      "expression": {
        "endPosition": "1122",
        "kind": "ERROR",
        "startPosition": "1121"
      },
      "endPosition": "1122",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1121"
    }
  ],
  "sourceName": "parsernegativetests/illegallvalue.js",
  "strict": "false",
  "startPosition": "1090"
}
,
{
  "fileName": "parsernegativetests/illegaloperator.js",
  "code": "* (1093, 1)",
  "columnNumber": "3",
  "kind": "ERROR",
  "position": "1093",
  "message": "parsernegativetests/illegaloperator.js:29:3 Expected an operand but found *\nx ** y\n   ^",
  "lineNumber": "29"
}
,
{
  "endPosition": "1090",
  "kind": "COMPILATION_UNIT",
  "sourceElements": [
    {
      "expression": {
        "endPosition": "1096",
        "kind": "ERROR",
        "startPosition": "1093"
      },
      "endPosition": "1096",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1093"
    }
  ],
  "sourceName": "parsernegativetests/illegaloperator.js",
  "strict": "false",
  "startPosition": "1090"
}
,
{
  "fileName": "parsernegativetests/keywordident.js",
  "code": "var (1094, 3)",
  "columnNumber": "4",
  "kind": "ERROR",
  "position": "1094",
  "message": "parsernegativetests/keywordident.js:29:4 Expected ident but found var\nvar var = 23;\n    ^",
  "lineNumber": "29"
}
,
{
  "endPosition": "1090",
  "kind": "COMPILATION_UNIT",
  "sourceElements": [
    {
      "expression": {
        "endPosition": "1103",
        "kind": "ERROR",
        "startPosition": "1094"
      },
      "endPosition": "1103",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1094"
    },
    {
      "endPosition": "1115",
      "kind": "VARIABLE",
      "name": "x",
      "startPosition": "1108",
      "initializer": {
        "endPosition": "1115",
        "kind": "NUMBER_LITERAL",
        "value": "223",
        "startPosition": "1112"
      }
    }
  ],
  "sourceName": "parsernegativetests/keywordident.js",
  "strict": "false",
  "startPosition": "1090"
}
,
{
  "fileName": "parsernegativetests/parenmissing.js",
  "code": "; (1096, 1)",
  "columnNumber": "6",
  "kind": "ERROR",
  "position": "1096",
  "message": "parsernegativetests/parenmissing.js:29:6 Expected ) but found ;\n(1 + 2;\n      ^",
  "lineNumber": "29"
}
,
{
  "fileName": "parsernegativetests/parenmissing.js",
  "code": ") (1103, 1)",
  "columnNumber": "5",
  "kind": "ERROR",
  "position": "1103",
  "message": "parsernegativetests/parenmissing.js:30:5 Expected ; but found )\nx * y);\n     ^",
  "lineNumber": "30"
}
,
{
  "endPosition": "1090",
  "kind": "COMPILATION_UNIT",
  "sourceElements": [
    {
      "expression": {
        "endPosition": "1097",
        "kind": "ERROR",
        "startPosition": "1096"
      },
      "endPosition": "1097",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1096"
    },
    {
      "expression": {
        "leftOperand": {
          "endPosition": "1099",
          "kind": "IDENTIFIER",
          "name": "x",
          "startPosition": "1098"
        },
        "endPosition": "1103",
        "kind": "MULTIPLY",
        "rightOperand": {
          "endPosition": "1103",
          "kind": "IDENTIFIER",
          "name": "y",
          "startPosition": "1102"
        },
        "startPosition": "1098"
      },
      "endPosition": "1103",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1098"
    },
    {
      "expression": {
        "endPosition": "1105",
        "kind": "ERROR",
        "startPosition": "1103"
      },
      "endPosition": "1105",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1103"
    }
  ],
  "sourceName": "parsernegativetests/parenmissing.js",
  "strict": "false",
  "startPosition": "1090"
}
,
{
  "fileName": "parsernegativetests/repeatedproperty.js",
  "code": "ident (1111, 3)",
  "columnNumber": "21",
  "kind": "ERROR",
  "position": "1111",
  "message": "parsernegativetests/repeatedproperty.js:29:21 Property \"foo\" already defined\nvar obj = { foo: 34, get foo() { return 'hello' } };\n                     ^",
  "lineNumber": "29"
}
,
{
  "fileName": "parsernegativetests/repeatedproperty.js",
  "code": "ident (1165, 3)",
  "columnNumber": "22",
  "kind": "ERROR",
  "position": "1165",
  "message": "parsernegativetests/repeatedproperty.js:30:22 Property \"foo\" already defined\nvar obj1 = { foo: 34, set foo(x) { } };\n                      ^",
  "lineNumber": "30"
}
,
{
  "fileName": "parsernegativetests/repeatedproperty.js",
  "code": "ident (1205, 3)",
  "columnNumber": "22",
  "kind": "ERROR",
  "position": "1205",
  "message": "parsernegativetests/repeatedproperty.js:31:22 Property \"foo\" already defined\nvar obj2 = { foo: 34, set foo(x) { } };\n                      ^",
  "lineNumber": "31"
}
,
{
  "fileName": "parsernegativetests/repeatedproperty.js",
  "code": "ident (1251, 3)",
  "columnNumber": "28",
  "kind": "ERROR",
  "position": "1251",
  "message": "parsernegativetests/repeatedproperty.js:32:28 Property \"bar\" already defined\nvar obj3 = { get bar() { }, get bar() {} };\n                            ^",
  "lineNumber": "32"
}
,
{
  "fileName": "parsernegativetests/repeatedproperty.js",
  "code": "ident (1296, 3)",
  "columnNumber": "29",
  "kind": "ERROR",
  "position": "1296",
  "message": "parsernegativetests/repeatedproperty.js:33:29 Property \"bar\" already defined\nvar obj4 = { set bar(x) { }, set bar(x) {} };\n                             ^",
  "lineNumber": "33"
}
,
{
  "endPosition": "1090",
  "kind": "COMPILATION_UNIT",
  "sourceElements": [
    {
      "expression": {
        "endPosition": "1141",
        "kind": "ERROR",
        "startPosition": "1140"
      },
      "endPosition": "1141",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1140"
    },
    {
      "expression": {
        "endPosition": "1181",
        "kind": "ERROR",
        "startPosition": "1180"
      },
      "endPosition": "1181",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1180"
    },
    {
      "expression": {
        "endPosition": "1221",
        "kind": "ERROR",
        "startPosition": "1220"
      },
      "endPosition": "1221",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1220"
    },
    {
      "expression": {
        "endPosition": "1265",
        "kind": "ERROR",
        "startPosition": "1264"
      },
      "endPosition": "1265",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1264"
    },
    {
      "expression": {
        "endPosition": "1311",
        "kind": "ERROR",
        "startPosition": "1310"
      },
      "endPosition": "1311",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1310"
    }
  ],
  "sourceName": "parsernegativetests/repeatedproperty.js",
  "strict": "false",
  "startPosition": "1090"
}
,
{
  "fileName": "parsernegativetests/strict_repeatedproperty.js",
  "code": "ident (1126, 3)",
  "columnNumber": "21",
  "kind": "ERROR",
  "position": "1126",
  "message": "parsernegativetests/strict_repeatedproperty.js:31:21 Property \"foo\" already defined\nvar obj = { foo: 34, foo: 'hello' };\n                     ^",
  "lineNumber": "31"
}
,
{
  "endPosition": "1090",
  "kind": "COMPILATION_UNIT",
  "sourceElements": [
    {
      "expression": {
        "endPosition": "1101",
        "kind": "STRING_LITERAL",
        "value": "use strict",
        "startPosition": "1091"
      },
      "endPosition": "1101",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1091"
    },
    {
      "expression": {
        "endPosition": "1140",
        "kind": "ERROR",
        "startPosition": "1139"
      },
      "endPosition": "1140",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1139"
    }
  ],
  "sourceName": "parsernegativetests/strict_repeatedproperty.js",
  "strict": "true",
  "startPosition": "1090"
}
,
{
  "fileName": "parsernegativetests/strict_repeatparam.js",
  "code": "ident (1122, 1)",
  "columnNumber": "17",
  "kind": "ERROR",
  "position": "1122",
  "message": "parsernegativetests/strict_repeatparam.js:31:17 strict mode function cannot have duplicate parameter name \"x\"\nfunction func(x, x) {}\n                 ^",
  "lineNumber": "31"
}
,
{
  "endPosition": "1090",
  "kind": "COMPILATION_UNIT",
  "sourceElements": [
    {
      "expression": {
        "endPosition": "1101",
        "kind": "STRING_LITERAL",
        "value": "use strict",
        "startPosition": "1091"
      },
      "endPosition": "1101",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1091"
    },
    {
      "expression": {
        "endPosition": "1127",
        "kind": "ERROR",
        "startPosition": "1128"
      },
      "endPosition": "1127",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1128"
    }
  ],
  "sourceName": "parsernegativetests/strict_repeatparam.js",
  "strict": "true",
  "startPosition": "1090"
}
,
{
  "fileName": "parsernegativetests/strict_with.js",
  "code": "with (1105, 4)",
  "columnNumber": "0",
  "kind": "ERROR",
  "position": "1105",
  "message": "parsernegativetests/strict_with.js:31:0 \"with\" statement cannot be used in strict mode\nwith({}) {}\n^",
  "lineNumber": "31"
}
,
{
  "fileName": "parsernegativetests/strict_with.js",
  "code": ") (1112, 1)",
  "columnNumber": "7",
  "kind": "ERROR",
  "position": "1112",
  "message": "parsernegativetests/strict_with.js:31:7 Expected ; but found )\nwith({}) {}\n       ^",
  "lineNumber": "31"
}
,
{
  "endPosition": "1090",
  "kind": "COMPILATION_UNIT",
  "sourceElements": [
    {
      "expression": {
        "endPosition": "1101",
        "kind": "STRING_LITERAL",
        "value": "use strict",
        "startPosition": "1091"
      },
      "endPosition": "1101",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1091"
    },
    {
      "expression": {
        "endPosition": "1112",
        "kind": "ERROR",
        "startPosition": "1109"
      },
      "endPosition": "1112",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1109"
    },
    {
      "expression": {
        "endPosition": "1116",
        "kind": "ERROR",
        "startPosition": "1112"
      },
      "endPosition": "1116",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1112"
    }
  ],
  "sourceName": "parsernegativetests/strict_with.js",
  "strict": "true",
  "startPosition": "1090"
}
,
{
  "fileName": "parsernegativetests/toplevelreturn.js",
  "code": "return (1090, 6)",
  "columnNumber": "0",
  "kind": "ERROR",
  "position": "1090",
  "message": "parsernegativetests/toplevelreturn.js:29:0 Invalid return statement\nreturn;\n^",
  "lineNumber": "29"
}
,
{
  "fileName": "parsernegativetests/toplevelreturn.js",
  "code": "return (1098, 6)",
  "columnNumber": "0",
  "kind": "ERROR",
  "position": "1098",
  "message": "parsernegativetests/toplevelreturn.js:30:0 Invalid return statement\nreturn 23;\n^",
  "lineNumber": "30"
}
,
{
  "endPosition": "1090",
  "kind": "COMPILATION_UNIT",
  "sourceElements": [
    {
      "expression": {
        "endPosition": "1097",
        "kind": "ERROR",
        "startPosition": "1090"
      },
      "endPosition": "1097",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1090"
    },
    {
      "expression": {
        "endPosition": "1108",
        "kind": "ERROR",
        "startPosition": "1098"
      },
      "endPosition": "1108",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1098"
    }
  ],
  "sourceName": "parsernegativetests/toplevelreturn.js",
  "strict": "false",
  "startPosition": "1090"
}
,
{
  "endPosition": "1136",
  "kind": "COMPILATION_UNIT",
  "sourceElements": [
    {
      "endPosition": "1242",
      "kind": "FUNCTION",
      "name": "Parser",
      "body": {
        "endPosition": "1220",
        "kind": "BLOCK",
        "statements": [
          {
            "expression": {
              "expression": {
                "endPosition": "1219",
                "kind": "FUNCTION_INVOCATION",
                "functionSelect": {
                  "identifier": "create",
                  "expression": {
                    "endPosition": "1210",
                    "kind": "IDENTIFIER",
                    "name": "Parser",
                    "startPosition": "1204"
                  },
                  "endPosition": "1217",
                  "kind": "MEMBER_SELECT",
                  "startPosition": "1204"
                },
                "arguments": [],
                "startPosition": "1204"
              },
              "endPosition": "1219",
              "kind": "ASSIGNMENT",
              "variable": {
                "identifier": "_parser",
                "expression": {
                  "endPosition": "1193",
                  "kind": "IDENTIFIER",
                  "name": "this",
                  "startPosition": "1189"
                },
                "endPosition": "1201",
                "kind": "MEMBER_SELECT",
                "startPosition": "1189"
              },
              "startPosition": "1189"
            },
            "endPosition": "1219",
            "kind": "EXPRESSION_STATEMENT",
            "startPosition": "1189"
          }
        ],
        "startPosition": "1154"
      },
      "strict": "false",
      "startPosition": "1136",
      "parameters": []
    },
    {
      "expression": {
        "expression": {
          "endPosition": "1307",
          "kind": "FUNCTION_INVOCATION",
          "functionSelect": {
            "identifier": "type",
            "expression": {
              "endPosition": "1267",
              "kind": "IDENTIFIER",
              "name": "Java",
              "startPosition": "1263"
            },
            "endPosition": "1272",
            "kind": "MEMBER_SELECT",
            "startPosition": "1263"
          },
          "arguments": [
            {
              "endPosition": "1305",
              "kind": "STRING_LITERAL",
              "value": "jdk.nashorn.api.tree.Diagnostic",
              "startPosition": "1274"
            }
          ],
          "startPosition": "1263"
        },
        "endPosition": "1307",
        "kind": "ASSIGNMENT",
        "variable": {
          "identifier": "Diagnostic",
          "expression": {
            "endPosition": "1249",
            "kind": "IDENTIFIER",
            "name": "Parser",
            "startPosition": "1243"
          },
          "endPosition": "1260",
          "kind": "MEMBER_SELECT",
          "startPosition": "1243"
        },
        "startPosition": "1243"
      },
      "endPosition": "1307",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1243"
    },
    {
      "expression": {
        "expression": {
          "endPosition": "1392",
          "kind": "FUNCTION_INVOCATION",
          "functionSelect": {
            "identifier": "type",
            "expression": {
              "endPosition": "1340",
              "kind": "IDENTIFIER",
              "name": "Java",
              "startPosition": "1336"
            },
            "endPosition": "1345",
            "kind": "MEMBER_SELECT",
            "startPosition": "1336"
          },
          "arguments": [
            {
              "endPosition": "1390",
              "kind": "STRING_LITERAL",
              "value": "jdk.nashorn.api.tree.SimpleTreeVisitorES5_1",
              "startPosition": "1347"
            }
          ],
          "startPosition": "1336"
        },
        "endPosition": "1392",
        "kind": "ASSIGNMENT",
        "variable": {
          "identifier": "SimpleTreeVisitor",
          "expression": {
            "endPosition": "1315",
            "kind": "IDENTIFIER",
            "name": "Parser",
            "startPosition": "1309"
          },
          "endPosition": "1333",
          "kind": "MEMBER_SELECT",
          "startPosition": "1309"
        },
        "startPosition": "1309"
      },
      "endPosition": "1392",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1309"
    },
    {
      "expression": {
        "expression": {
          "endPosition": "1446",
          "kind": "FUNCTION_INVOCATION",
          "functionSelect": {
            "identifier": "type",
            "expression": {
              "endPosition": "1412",
              "kind": "IDENTIFIER",
              "name": "Java",
              "startPosition": "1408"
            },
            "endPosition": "1417",
            "kind": "MEMBER_SELECT",
            "startPosition": "1408"
          },
          "arguments": [
            {
              "endPosition": "1444",
              "kind": "STRING_LITERAL",
              "value": "jdk.nashorn.api.tree.Tree",
              "startPosition": "1419"
            }
          ],
          "startPosition": "1408"
        },
        "endPosition": "1446",
        "kind": "ASSIGNMENT",
        "variable": {
          "identifier": "Tree",
          "expression": {
            "endPosition": "1400",
            "kind": "IDENTIFIER",
            "name": "Parser",
            "startPosition": "1394"
          },
          "endPosition": "1405",
          "kind": "MEMBER_SELECT",
          "startPosition": "1394"
        },
        "startPosition": "1394"
      },
      "endPosition": "1446",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1394"
    },
    {
      "expression": {
        "expression": {
          "endPosition": "1489",
          "kind": "FUNCTION_INVOCATION",
          "functionSelect": {
            "identifier": "type",
            "expression": {
              "endPosition": "1466",
              "kind": "IDENTIFIER",
              "name": "Java",
              "startPosition": "1462"
            },
            "endPosition": "1471",
            "kind": "MEMBER_SELECT",
            "startPosition": "1462"
          },
          "arguments": [
            {
              "endPosition": "1487",
              "kind": "STRING_LITERAL",
              "value": "java.util.List",
              "startPosition": "1473"
            }
          ],
          "startPosition": "1462"
        },
        "endPosition": "1489",
        "kind": "ASSIGNMENT",
        "variable": {
          "identifier": "List",
          "expression": {
            "endPosition": "1454",
            "kind": "IDENTIFIER",
            "name": "Parser",
            "startPosition": "1448"
          },
          "endPosition": "1459",
          "kind": "MEMBER_SELECT",
          "startPosition": "1448"
        },
        "startPosition": "1448"
      },
      "endPosition": "1489",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1448"
    },
    {
      "expression": {
        "expression": {
          "endPosition": "1532",
          "kind": "FUNCTION_INVOCATION",
          "functionSelect": {
            "identifier": "type",
            "expression": {
              "endPosition": "1509",
              "kind": "IDENTIFIER",
              "name": "Java",
              "startPosition": "1505"
            },
            "endPosition": "1514",
            "kind": "MEMBER_SELECT",
            "startPosition": "1505"
          },
          "arguments": [
            {
              "endPosition": "1530",
              "kind": "STRING_LITERAL",
              "value": "java.lang.Enum",
              "startPosition": "1516"
            }
          ],
          "startPosition": "1505"
        },
        "endPosition": "1532",
        "kind": "ASSIGNMENT",
        "variable": {
          "identifier": "Enum",
          "expression": {
            "endPosition": "1497",
            "kind": "IDENTIFIER",
            "name": "Parser",
            "startPosition": "1491"
          },
          "endPosition": "1502",
          "kind": "MEMBER_SELECT",
          "startPosition": "1491"
        },
        "startPosition": "1491"
      },
      "endPosition": "1532",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1491"
    },
    {
      "expression": {
        "expression": {
          "endPosition": "1659",
          "kind": "FUNCTION_EXPRESSION",
          "body": {
            "endPosition": "1805",
            "kind": "BLOCK",
            "statements": [
              {
                "endPosition": "1718",
                "kind": "VARIABLE",
                "name": "tree",
                "startPosition": "1669",
                "initializer": {
                  "endPosition": "1718",
                  "kind": "FUNCTION_INVOCATION",
                  "functionSelect": {
                    "identifier": "parse",
                    "expression": {
                      "identifier": "_parser",
                      "expression": {
                        "endPosition": "1680",
                        "kind": "IDENTIFIER",
                        "name": "this",
                        "startPosition": "1676"
                      },
                      "endPosition": "1688",
                      "kind": "MEMBER_SELECT",
                      "startPosition": "1676"
                    },
                    "endPosition": "1694",
                    "kind": "MEMBER_SELECT",
                    "startPosition": "1676"
                  },
                  "arguments": [
                    {
                      "endPosition": "1699",
                      "kind": "IDENTIFIER",
                      "name": "name",
                      "startPosition": "1695"
                    },
                    {
                      "endPosition": "1707",
                      "kind": "IDENTIFIER",
                      "name": "script",
                      "startPosition": "1701"
                    },
                    {
                      "endPosition": "1717",
                      "kind": "IDENTIFIER",
                      "name": "listener",
                      "startPosition": "1709"
                    }
                  ],
                  "startPosition": "1676"
                }
              },
              {
                "expression": {
                  "endPosition": "1773",
                  "kind": "FUNCTION_INVOCATION",
                  "functionSelect": {
                    "identifier": "accept",
                    "expression": {
                      "endPosition": "1728",
                      "kind": "IDENTIFIER",
                      "name": "tree",
                      "startPosition": "1724"
                    },
                    "endPosition": "1735",
                    "kind": "MEMBER_SELECT",
                    "startPosition": "1724"
                  },
                  "arguments": [
                    {
                      "constructorExpression": {
                        "endPosition": "1766",
                        "kind": "FUNCTION_INVOCATION",
                        "functionSelect": {
                          "identifier": "SimpleTreeVisitor",
                          "expression": {
                            "endPosition": "1746",
                            "kind": "IDENTIFIER",
                            "name": "Parser",
                            "startPosition": "1740"
                          },
                          "endPosition": "1764",
                          "kind": "MEMBER_SELECT",
                          "startPosition": "1740"
                        },
                        "arguments": [],
                        "startPosition": "1746"
                      },
                      "endPosition": "1766",
                      "kind": "NEW",
                      "startPosition": "1736"
                    },
                    {
                      "endPosition": "1772",
                      "kind": "NULL_LITERAL",
                      "startPosition": "1768"
                    }
                  ],
                  "startPosition": "1724"
                },
                "endPosition": "1773",
                "kind": "EXPRESSION_STATEMENT",
                "startPosition": "1724"
              },
              {
                "expression": {
                  "endPosition": "1804",
                  "kind": "FUNCTION_INVOCATION",
                  "functionSelect": {
                    "identifier": "convert",
                    "expression": {
                      "endPosition": "1790",
                      "kind": "IDENTIFIER",
                      "name": "this",
                      "startPosition": "1786"
                    },
                    "endPosition": "1798",
                    "kind": "MEMBER_SELECT",
                    "startPosition": "1786"
                  },
                  "arguments": [
                    {
                      "endPosition": "1803",
                      "kind": "IDENTIFIER",
                      "name": "tree",
                      "startPosition": "1799"
                    }
                  ],
                  "startPosition": "1786"
                },
                "endPosition": "1805",
                "kind": "RETURN",
                "startPosition": "1779"
              }
            ],
            "startPosition": "1659"
          },
          "strict": "false",
          "startPosition": "1659",
          "parameters": [
            {
              "endPosition": "1639",
              "kind": "IDENTIFIER",
              "name": "name",
              "startPosition": "1635"
            },
            {
              "endPosition": "1647",
              "kind": "IDENTIFIER",
              "name": "script",
              "startPosition": "1641"
            },
            {
              "endPosition": "1657",
              "kind": "IDENTIFIER",
              "name": "listener",
              "startPosition": "1649"
            }
          ]
        },
        "endPosition": "1659",
        "kind": "ASSIGNMENT",
        "variable": {
          "identifier": "parse",
          "expression": {
            "identifier": "prototype",
            "expression": {
              "endPosition": "1607",
              "kind": "IDENTIFIER",
              "name": "Parser",
              "startPosition": "1601"
            },
            "endPosition": "1617",
            "kind": "MEMBER_SELECT",
            "startPosition": "1601"
          },
          "endPosition": "1623",
          "kind": "MEMBER_SELECT",
          "startPosition": "1601"
        },
        "startPosition": "1601"
      },
      "endPosition": "1807",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1601"
    },
    {
      "expression": {
        "expression": {
          "endPosition": "1836",
          "kind": "FUNCTION_EXPRESSION",
          "body": {
            "endPosition": "1899",
            "kind": "BLOCK",
            "statements": [
              {
                "expression": {
                  "endPosition": "1898",
                  "kind": "FUNCTION_INVOCATION",
                  "functionSelect": {
                    "identifier": "create",
                    "expression": {
                      "endPosition": "1889",
                      "kind": "FUNCTION_INVOCATION",
                      "functionSelect": {
                        "identifier": "type",
                        "expression": {
                          "endPosition": "1853",
                          "kind": "IDENTIFIER",
                          "name": "Java",
                          "startPosition": "1849"
                        },
                        "endPosition": "1858",
                        "kind": "MEMBER_SELECT",
                        "startPosition": "1849"
                      },
                      "arguments": [
                        {
                          "endPosition": "1887",
                          "kind": "STRING_LITERAL",
                          "value": "jdk.nashorn.api.tree.Parser",
                          "startPosition": "1860"
                        }
                      ],
                      "startPosition": "1849"
                    },
                    "endPosition": "1896",
                    "kind": "MEMBER_SELECT",
                    "startPosition": "1849"
                  },
                  "arguments": [],
                  "startPosition": "1896"
                },
                "endPosition": "1899",
                "kind": "RETURN",
                "startPosition": "1842"
              }
            ],
            "startPosition": "1836"
          },
          "strict": "false",
          "startPosition": "1836",
          "parameters": []
        },
        "endPosition": "1836",
        "kind": "ASSIGNMENT",
        "variable": {
          "identifier": "create",
          "expression": {
            "endPosition": "1815",
            "kind": "IDENTIFIER",
            "name": "Parser",
            "startPosition": "1809"
          },
          "endPosition": "1822",
          "kind": "MEMBER_SELECT",
          "startPosition": "1809"
        },
        "startPosition": "1809"
      },
      "endPosition": "1973",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1809"
    },
    {
      "expression": {
        "expression": {
          "endPosition": "2016",
          "kind": "FUNCTION_EXPRESSION",
          "body": {
            "endPosition": "2994",
            "kind": "BLOCK",
            "statements": [
              {
                "condition": {
                  "leftOperand": {
                    "leftOperand": {
                      "expression": {
                        "endPosition": "2031",
                        "kind": "IDENTIFIER",
                        "name": "tree",
                        "startPosition": "2027"
                      },
                      "endPosition": "2031",
                      "kind": "LOGICAL_COMPLEMENT",
                      "startPosition": "2026"
                    },
                    "endPosition": "2057",
                    "kind": "CONDITIONAL_OR",
                    "rightOperand": {
                      "leftOperand": {
                        "expression": {
                          "endPosition": "2046",
                          "kind": "IDENTIFIER",
                          "name": "tree",
                          "startPosition": "2042"
                        },
                        "endPosition": "2046",
                        "kind": "TYPEOF",
                        "startPosition": "2035"
                      },
                      "endPosition": "2057",
                      "kind": "NOT_EQUAL_TO",
                      "rightOperand": {
                        "endPosition": "2057",
                        "kind": "STRING_LITERAL",
                        "value": "object",
                        "startPosition": "2051"
                      },
                      "startPosition": "2035"
                    },
                    "startPosition": "2026"
                  },
                  "endPosition": "2092",
                  "kind": "CONDITIONAL_OR",
                  "rightOperand": {
                    "leftOperand": {
                      "endPosition": "2066",
                      "kind": "IDENTIFIER",
                      "name": "tree",
                      "startPosition": "2062"
                    },
                    "expression": {
                      "endPosition": "2066",
                      "kind": "IDENTIFIER",
                      "name": "tree",
                      "startPosition": "2062"
                    },
                    "endPosition": "2092",
                    "kind": "INSTANCE_OF",
                    "rightOperand": {
                      "identifier": "Long",
                      "expression": {
                        "identifier": "lang",
                        "expression": {
                          "endPosition": "2082",
                          "kind": "IDENTIFIER",
                          "name": "java",
                          "startPosition": "2078"
                        },
                        "endPosition": "2087",
                        "kind": "MEMBER_SELECT",
                        "startPosition": "2078"
                      },
                      "endPosition": "2092",
                      "kind": "MEMBER_SELECT",
                      "startPosition": "2078"
                    },
                    "type": {
                      "identifier": "Long",
                      "expression": {
                        "identifier": "lang",
                        "expression": {
                          "endPosition": "2082",
                          "kind": "IDENTIFIER",
                          "name": "java",
                          "startPosition": "2078"
                        },
                        "endPosition": "2087",
                        "kind": "MEMBER_SELECT",
                        "startPosition": "2078"
                      },
                      "endPosition": "2092",
                      "kind": "MEMBER_SELECT",
                      "startPosition": "2078"
                    },
                    "startPosition": "2062"
                  },
                  "startPosition": "2026"
                },
                "endPosition": "2122",
                "kind": "IF",
                "startPosition": "2022",
                "thenStatement": {
                  "endPosition": "2122",
                  "kind": "BLOCK",
                  "statements": [
                    {
                      "expression": {
                        "endPosition": "2115",
                        "kind": "IDENTIFIER",
                        "name": "tree",
                        "startPosition": "2111"
                      },
                      "endPosition": "2116",
                      "kind": "RETURN",
                      "startPosition": "2104"
                    }
                  ],
                  "startPosition": "2094"
                }
              },
              {
                "endPosition": "2169",
                "kind": "VARIABLE",
                "name": "obj",
                "startPosition": "2132",
                "initializer": {
                  "endPosition": "2169",
                  "kind": "FUNCTION_INVOCATION",
                  "functionSelect": {
                    "identifier": "bindProperties",
                    "expression": {
                      "endPosition": "2144",
                      "kind": "IDENTIFIER",
                      "name": "Object",
                      "startPosition": "2138"
                    },
                    "endPosition": "2159",
                    "kind": "MEMBER_SELECT",
                    "startPosition": "2138"
                  },
                  "arguments": [
                    {
                      "endPosition": "2162",
                      "kind": "OBJECT_LITERAL",
                      "startPosition": "2160",
                      "properties": []
                    },
                    {
                      "endPosition": "2168",
                      "kind": "IDENTIFIER",
                      "name": "tree",
                      "startPosition": "2164"
                    }
                  ],
                  "startPosition": "2138"
                }
              },
              {
                "endPosition": "2190",
                "kind": "VARIABLE",
                "name": "result",
                "startPosition": "2179",
                "initializer": {
                  "endPosition": "2190",
                  "kind": "OBJECT_LITERAL",
                  "startPosition": "2188",
                  "properties": []
                }
              },
              {
                "endPosition": "2206",
                "kind": "VARIABLE",
                "name": "i",
                "startPosition": "2205"
              },
              {
                "expression": {
                  "endPosition": "2213",
                  "kind": "IDENTIFIER",
                  "name": "obj",
                  "startPosition": "2210"
                },
                "endPosition": "2975",
                "kind": "FOR_IN_LOOP",
                "forEach": "false",
                "variable": {
                  "endPosition": "2206",
                  "kind": "IDENTIFIER",
                  "name": "i",
                  "startPosition": "2205"
                },
                "statement": {
                  "endPosition": "2975",
                  "kind": "BLOCK",
                  "statements": [
                    {
                      "endPosition": "2241",
                      "kind": "VARIABLE",
                      "name": "val",
                      "startPosition": "2229",
                      "initializer": {
                        "expression": {
                          "endPosition": "2238",
                          "kind": "IDENTIFIER",
                          "name": "obj",
                          "startPosition": "2235"
                        },
                        "endPosition": "2241",
                        "kind": "ARRAY_ACCESS",
                        "index": {
                          "endPosition": "2240",
                          "kind": "IDENTIFIER",
                          "name": "i",
                          "startPosition": "2239"
                        },
                        "startPosition": "2235"
                      }
                    },
                    {
                      "condition": {
                        "leftOperand": {
                          "endPosition": "2258",
                          "kind": "IDENTIFIER",
                          "name": "val",
                          "startPosition": "2255"
                        },
                        "expression": {
                          "endPosition": "2258",
                          "kind": "IDENTIFIER",
                          "name": "val",
                          "startPosition": "2255"
                        },
                        "endPosition": "2281",
                        "kind": "INSTANCE_OF",
                        "rightOperand": {
                          "identifier": "Tree",
                          "expression": {
                            "endPosition": "2276",
                            "kind": "IDENTIFIER",
                            "name": "Parser",
                            "startPosition": "2270"
                          },
                          "endPosition": "2281",
                          "kind": "MEMBER_SELECT",
                          "startPosition": "2270"
                        },
                        "type": {
                          "identifier": "Tree",
                          "expression": {
                            "endPosition": "2276",
                            "kind": "IDENTIFIER",
                            "name": "Parser",
                            "startPosition": "2270"
                          },
                          "endPosition": "2281",
                          "kind": "MEMBER_SELECT",
                          "startPosition": "2270"
                        },
                        "startPosition": "2255"
                      },
                      "elseStatement": {
                        "condition": {
                          "leftOperand": {
                            "endPosition": "2350",
                            "kind": "IDENTIFIER",
                            "name": "val",
                            "startPosition": "2347"
                          },
                          "expression": {
                            "endPosition": "2350",
                            "kind": "IDENTIFIER",
                            "name": "val",
                            "startPosition": "2347"
                          },
                          "endPosition": "2373",
                          "kind": "INSTANCE_OF",
                          "rightOperand": {
                            "identifier": "List",
                            "expression": {
                              "endPosition": "2368",
                              "kind": "IDENTIFIER",
                              "name": "Parser",
                              "startPosition": "2362"
                            },
                            "endPosition": "2373",
                            "kind": "MEMBER_SELECT",
                            "startPosition": "2362"
                          },
                          "type": {
                            "identifier": "List",
                            "expression": {
                              "endPosition": "2368",
                              "kind": "IDENTIFIER",
                              "name": "Parser",
                              "startPosition": "2362"
                            },
                            "endPosition": "2373",
                            "kind": "MEMBER_SELECT",
                            "startPosition": "2362"
                          },
                          "startPosition": "2347"
                        },
                        "elseStatement": {
                          "endPosition": "2969",
                          "kind": "BLOCK",
                          "statements": [
                            {
                              "cases": [
                                {
                                  "expression": {
                                    "endPosition": "2625",
                                    "kind": "STRING_LITERAL",
                                    "value": "number",
                                    "startPosition": "2619"
                                  },
                                  "endPosition": "2627",
                                  "kind": "CASE",
                                  "statements": [],
                                  "startPosition": "2613"
                                },
                                {
                                  "expression": {
                                    "endPosition": "2656",
                                    "kind": "STRING_LITERAL",
                                    "value": "string",
                                    "startPosition": "2650"
                                  },
                                  "endPosition": "2658",
                                  "kind": "CASE",
                                  "statements": [],
                                  "startPosition": "2644"
                                },
                                {
                                  "expression": {
                                    "endPosition": "2688",
                                    "kind": "STRING_LITERAL",
                                    "value": "boolean",
                                    "startPosition": "2681"
                                  },
                                  "endPosition": "2762",
                                  "kind": "CASE",
                                  "statements": [
                                    {
                                      "expression": {
                                        "expression": {
                                          "endPosition": "2734",
                                          "kind": "FUNCTION_INVOCATION",
                                          "functionSelect": {
                                            "endPosition": "2729",
                                            "kind": "IDENTIFIER",
                                            "name": "String",
                                            "startPosition": "2723"
                                          },
                                          "arguments": [
                                            {
                                              "endPosition": "2733",
                                              "kind": "IDENTIFIER",
                                              "name": "val",
                                              "startPosition": "2730"
                                            }
                                          ],
                                          "startPosition": "2723"
                                        },
                                        "endPosition": "2734",
                                        "kind": "ASSIGNMENT",
                                        "variable": {
                                          "expression": {
                                            "endPosition": "2717",
                                            "kind": "IDENTIFIER",
                                            "name": "result",
                                            "startPosition": "2711"
                                          },
                                          "endPosition": "2720",
                                          "kind": "ARRAY_ACCESS",
                                          "index": {
                                            "endPosition": "2719",
                                            "kind": "IDENTIFIER",
                                            "name": "i",
                                            "startPosition": "2718"
                                          },
                                          "startPosition": "2711"
                                        },
                                        "startPosition": "2711"
                                      },
                                      "endPosition": "2734",
                                      "kind": "EXPRESSION_STATEMENT",
                                      "startPosition": "2711"
                                    },
                                    {
                                      "endPosition": "2762",
                                      "kind": "BREAK",
                                      "startPosition": "2756"
                                    }
                                  ],
                                  "startPosition": "2675"
                                },
                                {
                                  "endPosition": "2945",
                                  "kind": "CASE",
                                  "statements": [
                                    {
                                      "condition": {
                                        "leftOperand": {
                                          "leftOperand": {
                                            "endPosition": "2815",
                                            "kind": "IDENTIFIER",
                                            "name": "val",
                                            "startPosition": "2812"
                                          },
                                          "expression": {
                                            "endPosition": "2815",
                                            "kind": "IDENTIFIER",
                                            "name": "val",
                                            "startPosition": "2812"
                                          },
                                          "endPosition": "2841",
                                          "kind": "INSTANCE_OF",
                                          "rightOperand": {
                                            "identifier": "Long",
                                            "expression": {
                                              "identifier": "lang",
                                              "expression": {
                                                "endPosition": "2831",
                                                "kind": "IDENTIFIER",
                                                "name": "java",
                                                "startPosition": "2827"
                                              },
                                              "endPosition": "2836",
                                              "kind": "MEMBER_SELECT",
                                              "startPosition": "2827"
                                            },
                                            "endPosition": "2841",
                                            "kind": "MEMBER_SELECT",
                                            "startPosition": "2827"
                                          },
                                          "type": {
                                            "identifier": "Long",
                                            "expression": {
                                              "identifier": "lang",
                                              "expression": {
                                                "endPosition": "2831",
                                                "kind": "IDENTIFIER",
                                                "name": "java",
                                                "startPosition": "2827"
                                              },
                                              "endPosition": "2836",
                                              "kind": "MEMBER_SELECT",
                                              "startPosition": "2827"
                                            },
                                            "endPosition": "2841",
                                            "kind": "MEMBER_SELECT",
                                            "startPosition": "2827"
                                          },
                                          "startPosition": "2812"
                                        },
                                        "endPosition": "2871",
                                        "kind": "CONDITIONAL_OR",
                                        "rightOperand": {
                                          "leftOperand": {
                                            "endPosition": "2848",
                                            "kind": "IDENTIFIER",
                                            "name": "val",
                                            "startPosition": "2845"
                                          },
                                          "expression": {
                                            "endPosition": "2848",
                                            "kind": "IDENTIFIER",
                                            "name": "val",
                                            "startPosition": "2845"
                                          },
                                          "endPosition": "2871",
                                          "kind": "INSTANCE_OF",
                                          "rightOperand": {
                                            "identifier": "Enum",
                                            "expression": {
                                              "endPosition": "2866",
                                              "kind": "IDENTIFIER",
                                              "name": "Parser",
                                              "startPosition": "2860"
                                            },
                                            "endPosition": "2871",
                                            "kind": "MEMBER_SELECT",
                                            "startPosition": "2860"
                                          },
                                          "type": {
                                            "identifier": "Enum",
                                            "expression": {
                                              "endPosition": "2866",
                                              "kind": "IDENTIFIER",
                                              "name": "Parser",
                                              "startPosition": "2860"
                                            },
                                            "endPosition": "2871",
                                            "kind": "MEMBER_SELECT",
                                            "startPosition": "2860"
                                          },
                                          "startPosition": "2845"
                                        },
                                        "startPosition": "2812"
                                      },
                                      "endPosition": "2945",
                                      "kind": "IF",
                                      "startPosition": "2808",
                                      "thenStatement": {
                                        "endPosition": "2945",
                                        "kind": "BLOCK",
                                        "statements": [
                                          {
                                            "expression": {
                                              "expression": {
                                                "endPosition": "2922",
                                                "kind": "FUNCTION_INVOCATION",
                                                "functionSelect": {
                                                  "endPosition": "2917",
                                                  "kind": "IDENTIFIER",
                                                  "name": "String",
                                                  "startPosition": "2911"
                                                },
                                                "arguments": [
                                                  {
                                                    "endPosition": "2921",
                                                    "kind": "IDENTIFIER",
                                                    "name": "val",
                                                    "startPosition": "2918"
                                                  }
                                                ],
                                                "startPosition": "2911"
                                              },
                                              "endPosition": "2922",
                                              "kind": "ASSIGNMENT",
                                              "variable": {
                                                "expression": {
                                                  "endPosition": "2905",
                                                  "kind": "IDENTIFIER",
                                                  "name": "result",
                                                  "startPosition": "2899"
                                                },
                                                "endPosition": "2908",
                                                "kind": "ARRAY_ACCESS",
                                                "index": {
                                                  "endPosition": "2907",
                                                  "kind": "IDENTIFIER",
                                                  "name": "i",
                                                  "startPosition": "2906"
                                                },
                                                "startPosition": "2899"
                                              },
                                              "startPosition": "2899"
                                            },
                                            "endPosition": "2922",
                                            "kind": "EXPRESSION_STATEMENT",
                                            "startPosition": "2899"
                                          }
                                        ],
                                        "startPosition": "2873"
                                      }
                                    }
                                  ],
                                  "startPosition": "2779"
                                }
                              ],
                              "expression": {
                                "expression": {
                                  "endPosition": "2593",
                                  "kind": "IDENTIFIER",
                                  "name": "val",
                                  "startPosition": "2590"
                                },
                                "endPosition": "2593",
                                "kind": "TYPEOF",
                                "startPosition": "2583"
                              },
                              "endPosition": "2959",
                              "kind": "SWITCH",
                              "startPosition": "2575"
                            }
                          ],
                          "startPosition": "2561"
                        },
                        "endPosition": "2969",
                        "kind": "IF",
                        "startPosition": "2343",
                        "thenStatement": {
                          "endPosition": "2555",
                          "kind": "BLOCK",
                          "statements": [
                            {
                              "endPosition": "2420",
                              "kind": "VARIABLE",
                              "name": "arr",
                              "startPosition": "2393",
                              "initializer": {
                                "constructorExpression": {
                                  "endPosition": "2420",
                                  "kind": "FUNCTION_INVOCATION",
                                  "functionSelect": {
                                    "endPosition": "2408",
                                    "kind": "IDENTIFIER",
                                    "name": "Array",
                                    "startPosition": "2403"
                                  },
                                  "arguments": [
                                    {
                                      "endPosition": "2419",
                                      "kind": "FUNCTION_INVOCATION",
                                      "functionSelect": {
                                        "identifier": "size",
                                        "expression": {
                                          "endPosition": "2412",
                                          "kind": "IDENTIFIER",
                                          "name": "val",
                                          "startPosition": "2409"
                                        },
                                        "endPosition": "2417",
                                        "kind": "MEMBER_SELECT",
                                        "startPosition": "2409"
                                      },
                                      "arguments": [],
                                      "startPosition": "2409"
                                    }
                                  ],
                                  "startPosition": "2403"
                                },
                                "endPosition": "2420",
                                "kind": "NEW",
                                "startPosition": "2399"
                              }
                            },
                            {
                              "endPosition": "2444",
                              "kind": "VARIABLE",
                              "name": "j",
                              "startPosition": "2443"
                            },
                            {
                              "expression": {
                                "endPosition": "2451",
                                "kind": "IDENTIFIER",
                                "name": "val",
                                "startPosition": "2448"
                              },
                              "endPosition": "2515",
                              "kind": "FOR_IN_LOOP",
                              "forEach": "false",
                              "variable": {
                                "endPosition": "2444",
                                "kind": "IDENTIFIER",
                                "name": "j",
                                "startPosition": "2443"
                              },
                              "statement": {
                                "endPosition": "2515",
                                "kind": "BLOCK",
                                "statements": [
                                  {
                                    "expression": {
                                      "expression": {
                                        "endPosition": "2500",
                                        "kind": "FUNCTION_INVOCATION",
                                        "functionSelect": {
                                          "identifier": "convert",
                                          "expression": {
                                            "endPosition": "2484",
                                            "kind": "IDENTIFIER",
                                            "name": "this",
                                            "startPosition": "2480"
                                          },
                                          "endPosition": "2492",
                                          "kind": "MEMBER_SELECT",
                                          "startPosition": "2480"
                                        },
                                        "arguments": [
                                          {
                                            "expression": {
                                              "endPosition": "2496",
                                              "kind": "IDENTIFIER",
                                              "name": "val",
                                              "startPosition": "2493"
                                            },
                                            "endPosition": "2499",
                                            "kind": "ARRAY_ACCESS",
                                            "index": {
                                              "endPosition": "2498",
                                              "kind": "IDENTIFIER",
                                              "name": "j",
                                              "startPosition": "2497"
                                            },
                                            "startPosition": "2493"
                                          }
                                        ],
                                        "startPosition": "2480"
                                      },
                                      "endPosition": "2500",
                                      "kind": "ASSIGNMENT",
                                      "variable": {
                                        "expression": {
                                          "endPosition": "2474",
                                          "kind": "IDENTIFIER",
                                          "name": "arr",
                                          "startPosition": "2471"
                                        },
                                        "endPosition": "2477",
                                        "kind": "ARRAY_ACCESS",
                                        "index": {
                                          "endPosition": "2476",
                                          "kind": "IDENTIFIER",
                                          "name": "j",
                                          "startPosition": "2475"
                                        },
                                        "startPosition": "2471"
                                      },
                                      "startPosition": "2471"
                                    },
                                    "endPosition": "2500",
                                    "kind": "EXPRESSION_STATEMENT",
                                    "startPosition": "2471"
                                  }
                                ],
                                "startPosition": "2453"
                              },
                              "startPosition": "2434"
                            },
                            {
                              "expression": {
                                "expression": {
                                  "endPosition": "2544",
                                  "kind": "IDENTIFIER",
                                  "name": "arr",
                                  "startPosition": "2541"
                                },
                                "endPosition": "2544",
                                "kind": "ASSIGNMENT",
                                "variable": {
                                  "expression": {
                                    "endPosition": "2535",
                                    "kind": "IDENTIFIER",
                                    "name": "result",
                                    "startPosition": "2529"
                                  },
                                  "endPosition": "2538",
                                  "kind": "ARRAY_ACCESS",
                                  "index": {
                                    "endPosition": "2537",
                                    "kind": "IDENTIFIER",
                                    "name": "i",
                                    "startPosition": "2536"
                                  },
                                  "startPosition": "2529"
                                },
                                "startPosition": "2529"
                              },
                              "endPosition": "2544",
                              "kind": "EXPRESSION_STATEMENT",
                              "startPosition": "2529"
                            }
                          ],
                          "startPosition": "2375"
                        }
                      },
                      "endPosition": "2969",
                      "kind": "IF",
                      "startPosition": "2251",
                      "thenStatement": {
                        "endPosition": "2337",
                        "kind": "BLOCK",
                        "statements": [
                          {
                            "expression": {
                              "expression": {
                                "endPosition": "2326",
                                "kind": "FUNCTION_INVOCATION",
                                "functionSelect": {
                                  "identifier": "convert",
                                  "expression": {
                                    "endPosition": "2313",
                                    "kind": "IDENTIFIER",
                                    "name": "this",
                                    "startPosition": "2309"
                                  },
                                  "endPosition": "2321",
                                  "kind": "MEMBER_SELECT",
                                  "startPosition": "2309"
                                },
                                "arguments": [
                                  {
                                    "endPosition": "2325",
                                    "kind": "IDENTIFIER",
                                    "name": "val",
                                    "startPosition": "2322"
                                  }
                                ],
                                "startPosition": "2309"
                              },
                              "endPosition": "2326",
                              "kind": "ASSIGNMENT",
                              "variable": {
                                "expression": {
                                  "endPosition": "2303",
                                  "kind": "IDENTIFIER",
                                  "name": "result",
                                  "startPosition": "2297"
                                },
                                "endPosition": "2306",
                                "kind": "ARRAY_ACCESS",
                                "index": {
                                  "endPosition": "2305",
                                  "kind": "IDENTIFIER",
                                  "name": "i",
                                  "startPosition": "2304"
                                },
                                "startPosition": "2297"
                              },
                              "startPosition": "2297"
                            },
                            "endPosition": "2326",
                            "kind": "EXPRESSION_STATEMENT",
                            "startPosition": "2297"
                          }
                        ],
                        "startPosition": "2283"
                      }
                    }
                  ],
                  "startPosition": "2215"
                },
                "startPosition": "2196"
              },
              {
                "expression": {
                  "endPosition": "2993",
                  "kind": "IDENTIFIER",
                  "name": "result",
                  "startPosition": "2987"
                },
                "endPosition": "2994",
                "kind": "RETURN",
                "startPosition": "2980"
              }
            ],
            "startPosition": "2016"
          },
          "strict": "false",
          "startPosition": "2016",
          "parameters": [
            {
              "endPosition": "2014",
              "kind": "IDENTIFIER",
              "name": "tree",
              "startPosition": "2010"
            }
          ]
        },
        "endPosition": "2016",
        "kind": "ASSIGNMENT",
        "variable": {
          "identifier": "convert",
          "expression": {
            "identifier": "prototype",
            "expression": {
              "endPosition": "1980",
              "kind": "IDENTIFIER",
              "name": "Parser",
              "startPosition": "1974"
            },
            "endPosition": "1990",
            "kind": "MEMBER_SELECT",
            "startPosition": "1974"
          },
          "endPosition": "1998",
          "kind": "MEMBER_SELECT",
          "startPosition": "1974"
        },
        "startPosition": "1974"
      },
      "endPosition": "2996",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1974"
    },
    {
      "endPosition": "3767",
      "kind": "FUNCTION",
      "name": "processFiles",
      "body": {
        "endPosition": "3724",
        "kind": "BLOCK",
        "statements": [
          {
            "endPosition": "3070",
            "kind": "VARIABLE",
            "name": "File",
            "startPosition": "3038",
            "initializer": {
              "endPosition": "3070",
              "kind": "FUNCTION_INVOCATION",
              "functionSelect": {
                "identifier": "type",
                "expression": {
                  "endPosition": "3049",
                  "kind": "IDENTIFIER",
                  "name": "Java",
                  "startPosition": "3045"
                },
                "endPosition": "3054",
                "kind": "MEMBER_SELECT",
                "startPosition": "3045"
              },
              "arguments": [
                {
                  "endPosition": "3068",
                  "kind": "STRING_LITERAL",
                  "value": "java.io.File",
                  "startPosition": "3056"
                }
              ],
              "startPosition": "3045"
            }
          },
          {
            "endPosition": "3126",
            "kind": "VARIABLE",
            "name": "files",
            "startPosition": "3080",
            "initializer": {
              "endPosition": "3126",
              "kind": "FUNCTION_INVOCATION",
              "functionSelect": {
                "identifier": "listFiles",
                "expression": {
                  "constructorExpression": {
                    "endPosition": "3114",
                    "kind": "FUNCTION_INVOCATION",
                    "functionSelect": {
                      "endPosition": "3096",
                      "kind": "IDENTIFIER",
                      "name": "File",
                      "startPosition": "3092"
                    },
                    "arguments": [
                      {
                        "leftOperand": {
                          "endPosition": "3104",
                          "kind": "IDENTIFIER",
                          "name": "__DIR__",
                          "startPosition": "3097"
                        },
                        "endPosition": "3113",
                        "kind": "PLUS",
                        "rightOperand": {
                          "endPosition": "3113",
                          "kind": "IDENTIFIER",
                          "name": "subdir",
                          "startPosition": "3107"
                        },
                        "startPosition": "3097"
                      }
                    ],
                    "startPosition": "3092"
                  },
                  "endPosition": "3114",
                  "kind": "NEW",
                  "startPosition": "3088"
                },
                "endPosition": "3124",
                "kind": "MEMBER_SELECT",
                "startPosition": "3088"
              },
              "arguments": [],
              "startPosition": "3088"
            }
          },
          {
            "expression": {
              "endPosition": "3160",
              "kind": "FUNCTION_INVOCATION",
              "functionSelect": {
                "identifier": "sort",
                "expression": {
                  "identifier": "Arrays",
                  "expression": {
                    "identifier": "util",
                    "expression": {
                      "endPosition": "3136",
                      "kind": "IDENTIFIER",
                      "name": "java",
                      "startPosition": "3132"
                    },
                    "endPosition": "3141",
                    "kind": "MEMBER_SELECT",
                    "startPosition": "3132"
                  },
                  "endPosition": "3148",
                  "kind": "MEMBER_SELECT",
                  "startPosition": "3132"
                },
                "endPosition": "3153",
                "kind": "MEMBER_SELECT",
                "startPosition": "3132"
              },
              "arguments": [
                {
                  "endPosition": "3159",
                  "kind": "IDENTIFIER",
                  "name": "files",
                  "startPosition": "3154"
                }
              ],
              "startPosition": "3132"
            },
            "endPosition": "3160",
            "kind": "EXPRESSION_STATEMENT",
            "startPosition": "3132"
          },
          {
            "endPosition": "3184",
            "kind": "VARIABLE",
            "name": "file",
            "startPosition": "3180"
          },
          {
            "expression": {
              "endPosition": "3193",
              "kind": "IDENTIFIER",
              "name": "files",
              "startPosition": "3188"
            },
            "endPosition": "3724",
            "kind": "FOR_IN_LOOP",
            "forEach": "true",
            "variable": {
              "endPosition": "3184",
              "kind": "IDENTIFIER",
              "name": "file",
              "startPosition": "3180"
            },
            "statement": {
              "endPosition": "3724",
              "kind": "BLOCK",
              "statements": [
                {
                  "condition": {
                    "endPosition": "3234",
                    "kind": "FUNCTION_INVOCATION",
                    "functionSelect": {
                      "identifier": "endsWith",
                      "expression": {
                        "identifier": "name",
                        "expression": {
                          "endPosition": "3213",
                          "kind": "IDENTIFIER",
                          "name": "file",
                          "startPosition": "3209"
                        },
                        "endPosition": "3218",
                        "kind": "MEMBER_SELECT",
                        "startPosition": "3209"
                      },
                      "endPosition": "3227",
                      "kind": "MEMBER_SELECT",
                      "startPosition": "3209"
                    },
                    "arguments": [
                      {
                        "endPosition": "3232",
                        "kind": "STRING_LITERAL",
                        "value": ".js",
                        "startPosition": "3229"
                      }
                    ],
                    "startPosition": "3209"
                  },
                  "endPosition": "3718",
                  "kind": "IF",
                  "startPosition": "3205",
                  "thenStatement": {
                    "endPosition": "3718",
                    "kind": "BLOCK",
                    "statements": [
                      {
                        "endPosition": "3278",
                        "kind": "VARIABLE",
                        "name": "script",
                        "startPosition": "3254",
                        "initializer": {
                          "endPosition": "3278",
                          "kind": "FUNCTION_INVOCATION",
                          "functionSelect": {
                            "endPosition": "3272",
                            "kind": "IDENTIFIER",
                            "name": "readFully",
                            "startPosition": "3263"
                          },
                          "arguments": [
                            {
                              "endPosition": "3277",
                              "kind": "IDENTIFIER",
                              "name": "file",
                              "startPosition": "3273"
                            }
                          ],
                          "startPosition": "3263"
                        }
                      },
                      {
                        "endPosition": "3317",
                        "kind": "VARIABLE",
                        "name": "parser",
                        "startPosition": "3296",
                        "initializer": {
                          "constructorExpression": {
                            "endPosition": "3317",
                            "kind": "FUNCTION_INVOCATION",
                            "functionSelect": {
                              "endPosition": "3315",
                              "kind": "IDENTIFIER",
                              "name": "Parser",
                              "startPosition": "3309"
                            },
                            "arguments": [],
                            "startPosition": "3309"
                          },
                          "endPosition": "3317",
                          "kind": "NEW",
                          "startPosition": "3305"
                        }
                      },
                      {
                        "endPosition": "3578",
                        "kind": "VARIABLE",
                        "name": "tree",
                        "startPosition": "3335",
                        "initializer": {
                          "endPosition": "3578",
                          "kind": "FUNCTION_INVOCATION",
                          "functionSelect": {
                            "identifier": "parse",
                            "expression": {
                              "endPosition": "3348",
                              "kind": "IDENTIFIER",
                              "name": "parser",
                              "startPosition": "3342"
                            },
                            "endPosition": "3354",
                            "kind": "MEMBER_SELECT",
                            "startPosition": "3342"
                          },
                          "arguments": [
                            {
                              "leftOperand": {
                                "leftOperand": {
                                  "endPosition": "3361",
                                  "kind": "IDENTIFIER",
                                  "name": "subdir",
                                  "startPosition": "3355"
                                },
                                "endPosition": "3366",
                                "kind": "PLUS",
                                "rightOperand": {
                                  "endPosition": "3366",
                                  "kind": "STRING_LITERAL",
                                  "value": "/",
                                  "startPosition": "3365"
                                },
                                "startPosition": "3355"
                              },
                              "endPosition": "3379",
                              "kind": "PLUS",
                              "rightOperand": {
                                "identifier": "name",
                                "expression": {
                                  "endPosition": "3374",
                                  "kind": "IDENTIFIER",
                                  "name": "file",
                                  "startPosition": "3370"
                                },
                                "endPosition": "3379",
                                "kind": "MEMBER_SELECT",
                                "startPosition": "3370"
                              },
                              "startPosition": "3355"
                            },
                            {
                              "endPosition": "3387",
                              "kind": "IDENTIFIER",
                              "name": "script",
                              "startPosition": "3381"
                            },
                            {
                              "endPosition": "3426",
                              "kind": "FUNCTION_EXPRESSION",
                              "body": {
                                "endPosition": "3559",
                                "kind": "BLOCK",
                                "statements": [
                                  {
                                    "expression": {
                                      "endPosition": "3526",
                                      "kind": "FUNCTION_INVOCATION",
                                      "functionSelect": {
                                        "endPosition": "3453",
                                        "kind": "IDENTIFIER",
                                        "name": "print",
                                        "startPosition": "3448"
                                      },
                                      "arguments": [
                                        {
                                          "endPosition": "3525",
                                          "kind": "FUNCTION_INVOCATION",
                                          "functionSelect": {
                                            "identifier": "replace",
                                            "expression": {
                                              "endPosition": "3505",
                                              "kind": "FUNCTION_INVOCATION",
                                              "functionSelect": {
                                                "identifier": "stringify",
                                                "expression": {
                                                  "endPosition": "3458",
                                                  "kind": "IDENTIFIER",
                                                  "name": "JSON",
                                                  "startPosition": "3454"
                                                },
                                                "endPosition": "3468",
                                                "kind": "MEMBER_SELECT",
                                                "startPosition": "3454"
                                              },
                                              "arguments": [
                                                {
                                                  "endPosition": "3495",
                                                  "kind": "FUNCTION_INVOCATION",
                                                  "functionSelect": {
                                                    "identifier": "convert",
                                                    "expression": {
                                                      "endPosition": "3475",
                                                      "kind": "IDENTIFIER",
                                                      "name": "parser",
                                                      "startPosition": "3469"
                                                    },
                                                    "endPosition": "3483",
                                                    "kind": "MEMBER_SELECT",
                                                    "startPosition": "3469"
                                                  },
                                                  "arguments": [
                                                    {
                                                      "endPosition": "3494",
                                                      "kind": "IDENTIFIER",
                                                      "name": "diagnostic",
                                                      "startPosition": "3484"
                                                    }
                                                  ],
                                                  "startPosition": "3469"
                                                },
                                                {
                                                  "endPosition": "3501",
                                                  "kind": "NULL_LITERAL",
                                                  "startPosition": "3497"
                                                },
                                                {
                                                  "endPosition": "3504",
                                                  "kind": "NUMBER_LITERAL",
                                                  "value": "2",
                                                  "startPosition": "3503"
                                                }
                                              ],
                                              "startPosition": "3454"
                                            },
                                            "endPosition": "3513",
                                            "kind": "MEMBER_SELECT",
                                            "startPosition": "3454"
                                          },
                                          "arguments": [
                                            {
                                              "endPosition": "3520",
                                              "kind": "REGEXP_LITERAL",
                                              "options": "g",
                                              "pattern": "\\\\r",
                                              "startPosition": "3514"
                                            },
                                            {
                                              "endPosition": "3523",
                                              "kind": "STRING_LITERAL",
                                              "value": "",
                                              "startPosition": "3523"
                                            }
                                          ],
                                          "startPosition": "3513"
                                        }
                                      ],
                                      "startPosition": "3448"
                                    },
                                    "endPosition": "3526",
                                    "kind": "EXPRESSION_STATEMENT",
                                    "startPosition": "3448"
                                  },
                                  {
                                    "expression": {
                                      "endPosition": "3558",
                                      "kind": "FUNCTION_INVOCATION",
                                      "functionSelect": {
                                        "endPosition": "3553",
                                        "kind": "IDENTIFIER",
                                        "name": "print",
                                        "startPosition": "3548"
                                      },
                                      "arguments": [
                                        {
                                          "endPosition": "3556",
                                          "kind": "STRING_LITERAL",
                                          "value": ",",
                                          "startPosition": "3555"
                                        }
                                      ],
                                      "startPosition": "3548"
                                    },
                                    "endPosition": "3558",
                                    "kind": "EXPRESSION_STATEMENT",
                                    "startPosition": "3548"
                                  }
                                ],
                                "startPosition": "3426"
                              },
                              "strict": "false",
                              "startPosition": "3426",
                              "parameters": [
                                {
                                  "endPosition": "3424",
                                  "kind": "IDENTIFIER",
                                  "name": "diagnostic",
                                  "startPosition": "3414"
                                }
                              ]
                            }
                          ],
                          "startPosition": "3342"
                        }
                      },
                      {
                        "condition": {
                          "leftOperand": {
                            "endPosition": "3601",
                            "kind": "IDENTIFIER",
                            "name": "tree",
                            "startPosition": "3597"
                          },
                          "endPosition": "3609",
                          "kind": "NOT_EQUAL_TO",
                          "rightOperand": {
                            "endPosition": "3609",
                            "kind": "NULL_LITERAL",
                            "startPosition": "3605"
                          },
                          "startPosition": "3597"
                        },
                        "endPosition": "3708",
                        "kind": "IF",
                        "startPosition": "3593",
                        "thenStatement": {
                          "endPosition": "3708",
                          "kind": "BLOCK",
                          "statements": [
                            {
                              "expression": {
                                "endPosition": "3665",
                                "kind": "FUNCTION_INVOCATION",
                                "functionSelect": {
                                  "endPosition": "3634",
                                  "kind": "IDENTIFIER",
                                  "name": "print",
                                  "startPosition": "3629"
                                },
                                "arguments": [
                                  {
                                    "endPosition": "3664",
                                    "kind": "FUNCTION_INVOCATION",
                                    "functionSelect": {
                                      "identifier": "stringify",
                                      "expression": {
                                        "endPosition": "3639",
                                        "kind": "IDENTIFIER",
                                        "name": "JSON",
                                        "startPosition": "3635"
                                      },
                                      "endPosition": "3649",
                                      "kind": "MEMBER_SELECT",
                                      "startPosition": "3635"
                                    },
                                    "arguments": [
                                      {
                                        "endPosition": "3654",
                                        "kind": "IDENTIFIER",
                                        "name": "tree",
                                        "startPosition": "3650"
                                      },
                                      {
                                        "endPosition": "3660",
                                        "kind": "NULL_LITERAL",
                                        "startPosition": "3656"
                                      },
                                      {
                                        "endPosition": "3663",
                                        "kind": "NUMBER_LITERAL",
                                        "value": "2",
                                        "startPosition": "3662"
                                      }
                                    ],
                                    "startPosition": "3635"
                                  }
                                ],
                                "startPosition": "3629"
                              },
                              "endPosition": "3665",
                              "kind": "EXPRESSION_STATEMENT",
                              "startPosition": "3629"
                            },
                            {
                              "expression": {
                                "endPosition": "3693",
                                "kind": "FUNCTION_INVOCATION",
                                "functionSelect": {
                                  "endPosition": "3688",
                                  "kind": "IDENTIFIER",
                                  "name": "print",
                                  "startPosition": "3683"
                                },
                                "arguments": [
                                  {
                                    "endPosition": "3691",
                                    "kind": "STRING_LITERAL",
                                    "value": ",",
                                    "startPosition": "3690"
                                  }
                                ],
                                "startPosition": "3683"
                              },
                              "endPosition": "3693",
                              "kind": "EXPRESSION_STATEMENT",
                              "startPosition": "3683"
                            }
                          ],
                          "startPosition": "3611"
                        }
                      }
                    ],
                    "startPosition": "3236"
                  }
                }
              ],
              "startPosition": "3195"
            },
            "startPosition": "3166"
          }
        ],
        "startPosition": "3028"
      },
      "strict": "false",
      "startPosition": "2998",
      "parameters": [
        {
          "endPosition": "3026",
          "kind": "IDENTIFIER",
          "name": "subdir",
          "startPosition": "3020"
        }
      ]
    },
    {
      "endPosition": "4070",
      "kind": "FUNCTION",
      "name": "main",
      "body": {
        "endPosition": "4068",
        "kind": "BLOCK",
        "statements": [
          {
            "expression": {
              "endPosition": "3800",
              "kind": "FUNCTION_INVOCATION",
              "functionSelect": {
                "endPosition": "3795",
                "kind": "IDENTIFIER",
                "name": "print",
                "startPosition": "3790"
              },
              "arguments": [
                {
                  "endPosition": "3798",
                  "kind": "STRING_LITERAL",
                  "value": "[",
                  "startPosition": "3797"
                }
              ],
              "startPosition": "3790"
            },
            "endPosition": "3800",
            "kind": "EXPRESSION_STATEMENT",
            "startPosition": "3790"
          },
          {
            "expression": {
              "endPosition": "3834",
              "kind": "FUNCTION_INVOCATION",
              "functionSelect": {
                "endPosition": "3819",
                "kind": "IDENTIFIER",
                "name": "processFiles",
                "startPosition": "3807"
              },
              "arguments": [
                {
                  "endPosition": "3832",
                  "kind": "STRING_LITERAL",
                  "value": "parsertests",
                  "startPosition": "3821"
                }
              ],
              "startPosition": "3807"
            },
            "endPosition": "3834",
            "kind": "EXPRESSION_STATEMENT",
            "startPosition": "3807"
          },
          {
            "expression": {
              "endPosition": "3875",
              "kind": "FUNCTION_INVOCATION",
              "functionSelect": {
                "endPosition": "3852",
                "kind": "IDENTIFIER",
                "name": "processFiles",
                "startPosition": "3840"
              },
              "arguments": [
                {
                  "endPosition": "3873",
                  "kind": "STRING_LITERAL",
                  "value": "parsernegativetests",
                  "startPosition": "3854"
                }
              ],
              "startPosition": "3840"
            },
            "endPosition": "3875",
            "kind": "EXPRESSION_STATEMENT",
            "startPosition": "3840"
          },
          {
            "endPosition": "3944",
            "kind": "VARIABLE",
            "name": "script",
            "startPosition": "3916",
            "initializer": {
              "endPosition": "3944",
              "kind": "FUNCTION_INVOCATION",
              "functionSelect": {
                "endPosition": "3934",
                "kind": "IDENTIFIER",
                "name": "readFully",
                "startPosition": "3925"
              },
              "arguments": [
                {
                  "endPosition": "3943",
                  "kind": "IDENTIFIER",
                  "name": "__FILE__",
                  "startPosition": "3935"
                }
              ],
              "startPosition": "3925"
            }
          },
          {
            "endPosition": "4009",
            "kind": "VARIABLE",
            "name": "tree",
            "startPosition": "3954",
            "initializer": {
              "endPosition": "4009",
              "kind": "FUNCTION_INVOCATION",
              "functionSelect": {
                "identifier": "parse",
                "expression": {
                  "constructorExpression": {
                    "endPosition": "3973",
                    "kind": "FUNCTION_INVOCATION",
                    "functionSelect": {
                      "endPosition": "3971",
                      "kind": "IDENTIFIER",
                      "name": "Parser",
                      "startPosition": "3965"
                    },
                    "arguments": [],
                    "startPosition": "3965"
                  },
                  "endPosition": "3973",
                  "kind": "NEW",
                  "startPosition": "3961"
                },
                "endPosition": "3979",
                "kind": "MEMBER_SELECT",
                "startPosition": "3961"
              },
              "arguments": [
                {
                  "endPosition": "3993",
                  "kind": "STRING_LITERAL",
                  "value": "parserapi.js",
                  "startPosition": "3981"
                },
                {
                  "endPosition": "4002",
                  "kind": "IDENTIFIER",
                  "name": "script",
                  "startPosition": "3996"
                },
                {
                  "endPosition": "4008",
                  "kind": "NULL_LITERAL",
                  "startPosition": "4004"
                }
              ],
              "startPosition": "3961"
            }
          },
          {
            "expression": {
              "endPosition": "4051",
              "kind": "FUNCTION_INVOCATION",
              "functionSelect": {
                "endPosition": "4020",
                "kind": "IDENTIFIER",
                "name": "print",
                "startPosition": "4015"
              },
              "arguments": [
                {
                  "endPosition": "4050",
                  "kind": "FUNCTION_INVOCATION",
                  "functionSelect": {
                    "identifier": "stringify",
                    "expression": {
                      "endPosition": "4025",
                      "kind": "IDENTIFIER",
                      "name": "JSON",
                      "startPosition": "4021"
                    },
                    "endPosition": "4035",
                    "kind": "MEMBER_SELECT",
                    "startPosition": "4021"
                  },
                  "arguments": [
                    {
                      "endPosition": "4040",
                      "kind": "IDENTIFIER",
                      "name": "tree",
                      "startPosition": "4036"
                    },
                    {
                      "endPosition": "4046",
                      "kind": "NULL_LITERAL",
                      "startPosition": "4042"
                    },
                    {
                      "endPosition": "4049",
                      "kind": "NUMBER_LITERAL",
                      "value": "2",
                      "startPosition": "4048"
                    }
                  ],
                  "startPosition": "4021"
                }
              ],
              "startPosition": "4015"
            },
            "endPosition": "4051",
            "kind": "EXPRESSION_STATEMENT",
            "startPosition": "4015"
          },
          {
            "expression": {
              "endPosition": "4067",
              "kind": "FUNCTION_INVOCATION",
              "functionSelect": {
                "endPosition": "4062",
                "kind": "IDENTIFIER",
                "name": "print",
                "startPosition": "4057"
              },
              "arguments": [
                {
                  "endPosition": "4065",
                  "kind": "STRING_LITERAL",
                  "value": "]",
                  "startPosition": "4064"
                }
              ],
              "startPosition": "4057"
            },
            "endPosition": "4067",
            "kind": "EXPRESSION_STATEMENT",
            "startPosition": "4057"
          }
        ],
        "startPosition": "3784"
      },
      "strict": "false",
      "startPosition": "3768",
      "parameters": []
    },
    {
      "expression": {
        "endPosition": "4078",
        "kind": "FUNCTION_INVOCATION",
        "functionSelect": {
          "endPosition": "4076",
          "kind": "IDENTIFIER",
          "name": "main",
          "startPosition": "4072"
        },
        "arguments": [],
        "startPosition": "4072"
      },
      "endPosition": "4078",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "4072"
    }
  ],
  "sourceName": "parserapi.js",
  "strict": "false",
  "startPosition": "1136"
}
]