nashorn/test/script/nosecurity/parserapi.js.EXPECTED
author sundar
Wed, 18 Mar 2015 21:54:58 +0530
changeset 29539 b2a8fb583979
parent 29536 805894cd3c6b
child 29626 83f509969bee
permissions -rw-r--r--
8075448: nashorn parser API returns init variable tree object of a for loop after for loop statement tree object Reviewed-by: lagergren, hannesw, attila

[
{
  "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": "1185",
                "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": "1143",
              "kind": "PROPERTY",
              "value": {
                "endPosition": "1146",
                "kind": "NUMBER_LITERAL",
                "value": "10",
                "startPosition": "1144"
              },
              "startPosition": "1141",
              "key": {
                "endPosition": "1142",
                "kind": "IDENTIFIER",
                "name": "x",
                "startPosition": "1141"
              }
            },
            {
              "endPosition": "1150",
              "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": "1166",
              "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": "1175",
              "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": "1182",
            "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": "1206",
            "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 (1119, 1)",
  "columnNumber": "14",
  "kind": "ERROR",
  "position": "1119",
  "message": "parsernegativetests/strict_repeatparam.js:31:14 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": "1240",
      "kind": "FUNCTION",
      "name": "Parser",
      "body": {
        "endPosition": "1218",
        "kind": "BLOCK",
        "statements": [
          {
            "expression": {
              "expression": {
                "endPosition": "1217",
                "kind": "FUNCTION_INVOCATION",
                "functionSelect": {
                  "identifier": "create",
                  "expression": {
                    "endPosition": "1208",
                    "kind": "IDENTIFIER",
                    "name": "Parser",
                    "startPosition": "1202"
                  },
                  "endPosition": "1215",
                  "kind": "MEMBER_SELECT",
                  "startPosition": "1202"
                },
                "arguments": [],
                "startPosition": "1202"
              },
              "endPosition": "1217",
              "kind": "ASSIGNMENT",
              "variable": {
                "identifier": "_parser",
                "expression": {
                  "endPosition": "1191",
                  "kind": "IDENTIFIER",
                  "name": "this",
                  "startPosition": "1187"
                },
                "endPosition": "1199",
                "kind": "MEMBER_SELECT",
                "startPosition": "1187"
              },
              "startPosition": "1187"
            },
            "endPosition": "1217",
            "kind": "EXPRESSION_STATEMENT",
            "startPosition": "1187"
          }
        ],
        "startPosition": "1154"
      },
      "strict": "false",
      "startPosition": "1136",
      "parameters": []
    },
    {
      "expression": {
        "expression": {
          "endPosition": "1305",
          "kind": "FUNCTION_INVOCATION",
          "functionSelect": {
            "identifier": "type",
            "expression": {
              "endPosition": "1265",
              "kind": "IDENTIFIER",
              "name": "Java",
              "startPosition": "1261"
            },
            "endPosition": "1270",
            "kind": "MEMBER_SELECT",
            "startPosition": "1261"
          },
          "arguments": [
            {
              "endPosition": "1303",
              "kind": "STRING_LITERAL",
              "value": "jdk.nashorn.api.tree.Diagnostic",
              "startPosition": "1272"
            }
          ],
          "startPosition": "1261"
        },
        "endPosition": "1305",
        "kind": "ASSIGNMENT",
        "variable": {
          "identifier": "Diagnostic",
          "expression": {
            "endPosition": "1247",
            "kind": "IDENTIFIER",
            "name": "Parser",
            "startPosition": "1241"
          },
          "endPosition": "1258",
          "kind": "MEMBER_SELECT",
          "startPosition": "1241"
        },
        "startPosition": "1241"
      },
      "endPosition": "1305",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1241"
    },
    {
      "expression": {
        "expression": {
          "endPosition": "1390",
          "kind": "FUNCTION_INVOCATION",
          "functionSelect": {
            "identifier": "type",
            "expression": {
              "endPosition": "1338",
              "kind": "IDENTIFIER",
              "name": "Java",
              "startPosition": "1334"
            },
            "endPosition": "1343",
            "kind": "MEMBER_SELECT",
            "startPosition": "1334"
          },
          "arguments": [
            {
              "endPosition": "1388",
              "kind": "STRING_LITERAL",
              "value": "jdk.nashorn.api.tree.SimpleTreeVisitorES5_1",
              "startPosition": "1345"
            }
          ],
          "startPosition": "1334"
        },
        "endPosition": "1390",
        "kind": "ASSIGNMENT",
        "variable": {
          "identifier": "SimpleTreeVisitor",
          "expression": {
            "endPosition": "1313",
            "kind": "IDENTIFIER",
            "name": "Parser",
            "startPosition": "1307"
          },
          "endPosition": "1331",
          "kind": "MEMBER_SELECT",
          "startPosition": "1307"
        },
        "startPosition": "1307"
      },
      "endPosition": "1390",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1307"
    },
    {
      "expression": {
        "expression": {
          "endPosition": "1444",
          "kind": "FUNCTION_INVOCATION",
          "functionSelect": {
            "identifier": "type",
            "expression": {
              "endPosition": "1410",
              "kind": "IDENTIFIER",
              "name": "Java",
              "startPosition": "1406"
            },
            "endPosition": "1415",
            "kind": "MEMBER_SELECT",
            "startPosition": "1406"
          },
          "arguments": [
            {
              "endPosition": "1442",
              "kind": "STRING_LITERAL",
              "value": "jdk.nashorn.api.tree.Tree",
              "startPosition": "1417"
            }
          ],
          "startPosition": "1406"
        },
        "endPosition": "1444",
        "kind": "ASSIGNMENT",
        "variable": {
          "identifier": "Tree",
          "expression": {
            "endPosition": "1398",
            "kind": "IDENTIFIER",
            "name": "Parser",
            "startPosition": "1392"
          },
          "endPosition": "1403",
          "kind": "MEMBER_SELECT",
          "startPosition": "1392"
        },
        "startPosition": "1392"
      },
      "endPosition": "1444",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1392"
    },
    {
      "expression": {
        "expression": {
          "endPosition": "1487",
          "kind": "FUNCTION_INVOCATION",
          "functionSelect": {
            "identifier": "type",
            "expression": {
              "endPosition": "1464",
              "kind": "IDENTIFIER",
              "name": "Java",
              "startPosition": "1460"
            },
            "endPosition": "1469",
            "kind": "MEMBER_SELECT",
            "startPosition": "1460"
          },
          "arguments": [
            {
              "endPosition": "1485",
              "kind": "STRING_LITERAL",
              "value": "java.util.List",
              "startPosition": "1471"
            }
          ],
          "startPosition": "1460"
        },
        "endPosition": "1487",
        "kind": "ASSIGNMENT",
        "variable": {
          "identifier": "List",
          "expression": {
            "endPosition": "1452",
            "kind": "IDENTIFIER",
            "name": "Parser",
            "startPosition": "1446"
          },
          "endPosition": "1457",
          "kind": "MEMBER_SELECT",
          "startPosition": "1446"
        },
        "startPosition": "1446"
      },
      "endPosition": "1487",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1446"
    },
    {
      "expression": {
        "expression": {
          "endPosition": "1530",
          "kind": "FUNCTION_INVOCATION",
          "functionSelect": {
            "identifier": "type",
            "expression": {
              "endPosition": "1507",
              "kind": "IDENTIFIER",
              "name": "Java",
              "startPosition": "1503"
            },
            "endPosition": "1512",
            "kind": "MEMBER_SELECT",
            "startPosition": "1503"
          },
          "arguments": [
            {
              "endPosition": "1528",
              "kind": "STRING_LITERAL",
              "value": "java.lang.Enum",
              "startPosition": "1514"
            }
          ],
          "startPosition": "1503"
        },
        "endPosition": "1530",
        "kind": "ASSIGNMENT",
        "variable": {
          "identifier": "Enum",
          "expression": {
            "endPosition": "1495",
            "kind": "IDENTIFIER",
            "name": "Parser",
            "startPosition": "1489"
          },
          "endPosition": "1500",
          "kind": "MEMBER_SELECT",
          "startPosition": "1489"
        },
        "startPosition": "1489"
      },
      "endPosition": "1530",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1489"
    },
    {
      "expression": {
        "expression": {
          "endPosition": "1657",
          "kind": "FUNCTION_EXPRESSION",
          "body": {
            "endPosition": "1803",
            "kind": "BLOCK",
            "statements": [
              {
                "endPosition": "1716",
                "kind": "VARIABLE",
                "name": "tree",
                "startPosition": "1667",
                "initializer": {
                  "endPosition": "1716",
                  "kind": "FUNCTION_INVOCATION",
                  "functionSelect": {
                    "identifier": "parse",
                    "expression": {
                      "identifier": "_parser",
                      "expression": {
                        "endPosition": "1678",
                        "kind": "IDENTIFIER",
                        "name": "this",
                        "startPosition": "1674"
                      },
                      "endPosition": "1686",
                      "kind": "MEMBER_SELECT",
                      "startPosition": "1674"
                    },
                    "endPosition": "1692",
                    "kind": "MEMBER_SELECT",
                    "startPosition": "1674"
                  },
                  "arguments": [
                    {
                      "endPosition": "1697",
                      "kind": "IDENTIFIER",
                      "name": "name",
                      "startPosition": "1693"
                    },
                    {
                      "endPosition": "1705",
                      "kind": "IDENTIFIER",
                      "name": "script",
                      "startPosition": "1699"
                    },
                    {
                      "endPosition": "1715",
                      "kind": "IDENTIFIER",
                      "name": "listener",
                      "startPosition": "1707"
                    }
                  ],
                  "startPosition": "1674"
                }
              },
              {
                "expression": {
                  "endPosition": "1771",
                  "kind": "FUNCTION_INVOCATION",
                  "functionSelect": {
                    "identifier": "accept",
                    "expression": {
                      "endPosition": "1726",
                      "kind": "IDENTIFIER",
                      "name": "tree",
                      "startPosition": "1722"
                    },
                    "endPosition": "1733",
                    "kind": "MEMBER_SELECT",
                    "startPosition": "1722"
                  },
                  "arguments": [
                    {
                      "constructorExpression": {
                        "endPosition": "1764",
                        "kind": "FUNCTION_INVOCATION",
                        "functionSelect": {
                          "identifier": "SimpleTreeVisitor",
                          "expression": {
                            "endPosition": "1744",
                            "kind": "IDENTIFIER",
                            "name": "Parser",
                            "startPosition": "1738"
                          },
                          "endPosition": "1762",
                          "kind": "MEMBER_SELECT",
                          "startPosition": "1738"
                        },
                        "arguments": [],
                        "startPosition": "1744"
                      },
                      "endPosition": "1764",
                      "kind": "NEW",
                      "startPosition": "1734"
                    },
                    {
                      "endPosition": "1770",
                      "kind": "NULL_LITERAL",
                      "startPosition": "1766"
                    }
                  ],
                  "startPosition": "1722"
                },
                "endPosition": "1771",
                "kind": "EXPRESSION_STATEMENT",
                "startPosition": "1722"
              },
              {
                "expression": {
                  "endPosition": "1802",
                  "kind": "FUNCTION_INVOCATION",
                  "functionSelect": {
                    "identifier": "convert",
                    "expression": {
                      "endPosition": "1788",
                      "kind": "IDENTIFIER",
                      "name": "this",
                      "startPosition": "1784"
                    },
                    "endPosition": "1796",
                    "kind": "MEMBER_SELECT",
                    "startPosition": "1784"
                  },
                  "arguments": [
                    {
                      "endPosition": "1801",
                      "kind": "IDENTIFIER",
                      "name": "tree",
                      "startPosition": "1797"
                    }
                  ],
                  "startPosition": "1784"
                },
                "endPosition": "1803",
                "kind": "RETURN",
                "startPosition": "1777"
              }
            ],
            "startPosition": "1657"
          },
          "strict": "false",
          "startPosition": "1657",
          "parameters": [
            {
              "endPosition": "1637",
              "kind": "IDENTIFIER",
              "name": "name",
              "startPosition": "1633"
            },
            {
              "endPosition": "1645",
              "kind": "IDENTIFIER",
              "name": "script",
              "startPosition": "1639"
            },
            {
              "endPosition": "1655",
              "kind": "IDENTIFIER",
              "name": "listener",
              "startPosition": "1647"
            }
          ]
        },
        "endPosition": "1657",
        "kind": "ASSIGNMENT",
        "variable": {
          "identifier": "parse",
          "expression": {
            "identifier": "prototype",
            "expression": {
              "endPosition": "1605",
              "kind": "IDENTIFIER",
              "name": "Parser",
              "startPosition": "1599"
            },
            "endPosition": "1615",
            "kind": "MEMBER_SELECT",
            "startPosition": "1599"
          },
          "endPosition": "1621",
          "kind": "MEMBER_SELECT",
          "startPosition": "1599"
        },
        "startPosition": "1599"
      },
      "endPosition": "1805",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1599"
    },
    {
      "expression": {
        "expression": {
          "endPosition": "1834",
          "kind": "FUNCTION_EXPRESSION",
          "body": {
            "endPosition": "1897",
            "kind": "BLOCK",
            "statements": [
              {
                "expression": {
                  "endPosition": "1896",
                  "kind": "FUNCTION_INVOCATION",
                  "functionSelect": {
                    "identifier": "create",
                    "expression": {
                      "endPosition": "1887",
                      "kind": "FUNCTION_INVOCATION",
                      "functionSelect": {
                        "identifier": "type",
                        "expression": {
                          "endPosition": "1851",
                          "kind": "IDENTIFIER",
                          "name": "Java",
                          "startPosition": "1847"
                        },
                        "endPosition": "1856",
                        "kind": "MEMBER_SELECT",
                        "startPosition": "1847"
                      },
                      "arguments": [
                        {
                          "endPosition": "1885",
                          "kind": "STRING_LITERAL",
                          "value": "jdk.nashorn.api.tree.Parser",
                          "startPosition": "1858"
                        }
                      ],
                      "startPosition": "1847"
                    },
                    "endPosition": "1894",
                    "kind": "MEMBER_SELECT",
                    "startPosition": "1847"
                  },
                  "arguments": [],
                  "startPosition": "1894"
                },
                "endPosition": "1897",
                "kind": "RETURN",
                "startPosition": "1840"
              }
            ],
            "startPosition": "1834"
          },
          "strict": "false",
          "startPosition": "1834",
          "parameters": []
        },
        "endPosition": "1834",
        "kind": "ASSIGNMENT",
        "variable": {
          "identifier": "create",
          "expression": {
            "endPosition": "1813",
            "kind": "IDENTIFIER",
            "name": "Parser",
            "startPosition": "1807"
          },
          "endPosition": "1820",
          "kind": "MEMBER_SELECT",
          "startPosition": "1807"
        },
        "startPosition": "1807"
      },
      "endPosition": "1971",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1807"
    },
    {
      "expression": {
        "expression": {
          "endPosition": "2014",
          "kind": "FUNCTION_EXPRESSION",
          "body": {
            "endPosition": "2863",
            "kind": "BLOCK",
            "statements": [
              {
                "condition": {
                  "leftOperand": {
                    "expression": {
                      "endPosition": "2029",
                      "kind": "IDENTIFIER",
                      "name": "tree",
                      "startPosition": "2025"
                    },
                    "endPosition": "2029",
                    "kind": "LOGICAL_COMPLEMENT",
                    "startPosition": "2024"
                  },
                  "endPosition": "2055",
                  "kind": "CONDITIONAL_OR",
                  "rightOperand": {
                    "leftOperand": {
                      "expression": {
                        "endPosition": "2044",
                        "kind": "IDENTIFIER",
                        "name": "tree",
                        "startPosition": "2040"
                      },
                      "endPosition": "2044",
                      "kind": "TYPEOF",
                      "startPosition": "2033"
                    },
                    "endPosition": "2055",
                    "kind": "NOT_EQUAL_TO",
                    "rightOperand": {
                      "endPosition": "2055",
                      "kind": "STRING_LITERAL",
                      "value": "object",
                      "startPosition": "2049"
                    },
                    "startPosition": "2033"
                  },
                  "startPosition": "2024"
                },
                "endPosition": "2086",
                "kind": "IF",
                "startPosition": "2020",
                "thenStatement": {
                  "endPosition": "2086",
                  "kind": "BLOCK",
                  "statements": [
                    {
                      "expression": {
                        "endPosition": "2079",
                        "kind": "IDENTIFIER",
                        "name": "tree",
                        "startPosition": "2075"
                      },
                      "endPosition": "2080",
                      "kind": "RETURN",
                      "startPosition": "2068"
                    }
                  ],
                  "startPosition": "2058"
                }
              },
              {
                "endPosition": "2133",
                "kind": "VARIABLE",
                "name": "obj",
                "startPosition": "2096",
                "initializer": {
                  "endPosition": "2133",
                  "kind": "FUNCTION_INVOCATION",
                  "functionSelect": {
                    "identifier": "bindProperties",
                    "expression": {
                      "endPosition": "2108",
                      "kind": "IDENTIFIER",
                      "name": "Object",
                      "startPosition": "2102"
                    },
                    "endPosition": "2123",
                    "kind": "MEMBER_SELECT",
                    "startPosition": "2102"
                  },
                  "arguments": [
                    {
                      "endPosition": "2126",
                      "kind": "OBJECT_LITERAL",
                      "startPosition": "2124",
                      "properties": []
                    },
                    {
                      "endPosition": "2132",
                      "kind": "IDENTIFIER",
                      "name": "tree",
                      "startPosition": "2128"
                    }
                  ],
                  "startPosition": "2102"
                }
              },
              {
                "endPosition": "2154",
                "kind": "VARIABLE",
                "name": "result",
                "startPosition": "2143",
                "initializer": {
                  "endPosition": "2154",
                  "kind": "OBJECT_LITERAL",
                  "startPosition": "2152",
                  "properties": []
                }
              },
              {
                "endPosition": "2170",
                "kind": "VARIABLE",
                "name": "i",
                "startPosition": "2169"
              },
              {
                "expression": {
                  "endPosition": "2177",
                  "kind": "IDENTIFIER",
                  "name": "obj",
                  "startPosition": "2174"
                },
                "endPosition": "2845",
                "kind": "FOR_IN_LOOP",
                "forEach": "false",
                "variable": {
                  "endPosition": "2170",
                  "kind": "IDENTIFIER",
                  "name": "i",
                  "startPosition": "2169"
                },
                "statement": {
                  "endPosition": "2845",
                  "kind": "BLOCK",
                  "statements": [
                    {
                      "endPosition": "2204",
                      "kind": "VARIABLE",
                      "name": "val",
                      "startPosition": "2192",
                      "initializer": {
                        "expression": {
                          "endPosition": "2201",
                          "kind": "IDENTIFIER",
                          "name": "obj",
                          "startPosition": "2198"
                        },
                        "endPosition": "2204",
                        "kind": "ARRAY_ACCESS",
                        "index": {
                          "endPosition": "2203",
                          "kind": "IDENTIFIER",
                          "name": "i",
                          "startPosition": "2202"
                        },
                        "startPosition": "2198"
                      }
                    },
                    {
                      "condition": {
                        "leftOperand": {
                          "endPosition": "2220",
                          "kind": "IDENTIFIER",
                          "name": "val",
                          "startPosition": "2217"
                        },
                        "expression": {
                          "endPosition": "2220",
                          "kind": "IDENTIFIER",
                          "name": "val",
                          "startPosition": "2217"
                        },
                        "endPosition": "2243",
                        "kind": "INSTANCE_OF",
                        "rightOperand": {
                          "identifier": "Tree",
                          "expression": {
                            "endPosition": "2238",
                            "kind": "IDENTIFIER",
                            "name": "Parser",
                            "startPosition": "2232"
                          },
                          "endPosition": "2243",
                          "kind": "MEMBER_SELECT",
                          "startPosition": "2232"
                        },
                        "type": {
                          "identifier": "Tree",
                          "expression": {
                            "endPosition": "2238",
                            "kind": "IDENTIFIER",
                            "name": "Parser",
                            "startPosition": "2232"
                          },
                          "endPosition": "2243",
                          "kind": "MEMBER_SELECT",
                          "startPosition": "2232"
                        },
                        "startPosition": "2217"
                      },
                      "elseStatement": {
                        "condition": {
                          "leftOperand": {
                            "endPosition": "2309",
                            "kind": "IDENTIFIER",
                            "name": "val",
                            "startPosition": "2306"
                          },
                          "expression": {
                            "endPosition": "2309",
                            "kind": "IDENTIFIER",
                            "name": "val",
                            "startPosition": "2306"
                          },
                          "endPosition": "2332",
                          "kind": "INSTANCE_OF",
                          "rightOperand": {
                            "identifier": "List",
                            "expression": {
                              "endPosition": "2327",
                              "kind": "IDENTIFIER",
                              "name": "Parser",
                              "startPosition": "2321"
                            },
                            "endPosition": "2332",
                            "kind": "MEMBER_SELECT",
                            "startPosition": "2321"
                          },
                          "type": {
                            "identifier": "List",
                            "expression": {
                              "endPosition": "2327",
                              "kind": "IDENTIFIER",
                              "name": "Parser",
                              "startPosition": "2321"
                            },
                            "endPosition": "2332",
                            "kind": "MEMBER_SELECT",
                            "startPosition": "2321"
                          },
                          "startPosition": "2306"
                        },
                        "elseStatement": {
                          "endPosition": "2840",
                          "kind": "BLOCK",
                          "statements": [
                            {
                              "cases": [
                                {
                                  "expression": {
                                    "endPosition": "2574",
                                    "kind": "STRING_LITERAL",
                                    "value": "number",
                                    "startPosition": "2568"
                                  },
                                  "endPosition": "2576",
                                  "kind": "CASE",
                                  "statements": [],
                                  "startPosition": "2562"
                                },
                                {
                                  "expression": {
                                    "endPosition": "2603",
                                    "kind": "STRING_LITERAL",
                                    "value": "string",
                                    "startPosition": "2597"
                                  },
                                  "endPosition": "2605",
                                  "kind": "CASE",
                                  "statements": [],
                                  "startPosition": "2591"
                                },
                                {
                                  "expression": {
                                    "endPosition": "2633",
                                    "kind": "STRING_LITERAL",
                                    "value": "boolean",
                                    "startPosition": "2626"
                                  },
                                  "endPosition": "2678",
                                  "kind": "CASE",
                                  "statements": [
                                    {
                                      "expression": {
                                        "expression": {
                                          "endPosition": "2677",
                                          "kind": "FUNCTION_INVOCATION",
                                          "functionSelect": {
                                            "endPosition": "2672",
                                            "kind": "IDENTIFIER",
                                            "name": "String",
                                            "startPosition": "2666"
                                          },
                                          "arguments": [
                                            {
                                              "endPosition": "2676",
                                              "kind": "IDENTIFIER",
                                              "name": "val",
                                              "startPosition": "2673"
                                            }
                                          ],
                                          "startPosition": "2666"
                                        },
                                        "endPosition": "2677",
                                        "kind": "ASSIGNMENT",
                                        "variable": {
                                          "expression": {
                                            "endPosition": "2660",
                                            "kind": "IDENTIFIER",
                                            "name": "result",
                                            "startPosition": "2654"
                                          },
                                          "endPosition": "2663",
                                          "kind": "ARRAY_ACCESS",
                                          "index": {
                                            "endPosition": "2662",
                                            "kind": "IDENTIFIER",
                                            "name": "i",
                                            "startPosition": "2661"
                                          },
                                          "startPosition": "2654"
                                        },
                                        "startPosition": "2654"
                                      },
                                      "endPosition": "2677",
                                      "kind": "EXPRESSION_STATEMENT",
                                      "startPosition": "2654"
                                    }
                                  ],
                                  "startPosition": "2620"
                                },
                                {
                                  "endPosition": "2820",
                                  "kind": "CASE",
                                  "statements": [
                                    {
                                      "condition": {
                                        "leftOperand": {
                                          "endPosition": "2727",
                                          "kind": "IDENTIFIER",
                                          "name": "val",
                                          "startPosition": "2724"
                                        },
                                        "expression": {
                                          "endPosition": "2727",
                                          "kind": "IDENTIFIER",
                                          "name": "val",
                                          "startPosition": "2724"
                                        },
                                        "endPosition": "2750",
                                        "kind": "INSTANCE_OF",
                                        "rightOperand": {
                                          "identifier": "Enum",
                                          "expression": {
                                            "endPosition": "2745",
                                            "kind": "IDENTIFIER",
                                            "name": "Parser",
                                            "startPosition": "2739"
                                          },
                                          "endPosition": "2750",
                                          "kind": "MEMBER_SELECT",
                                          "startPosition": "2739"
                                        },
                                        "type": {
                                          "identifier": "Enum",
                                          "expression": {
                                            "endPosition": "2745",
                                            "kind": "IDENTIFIER",
                                            "name": "Parser",
                                            "startPosition": "2739"
                                          },
                                          "endPosition": "2750",
                                          "kind": "MEMBER_SELECT",
                                          "startPosition": "2739"
                                        },
                                        "startPosition": "2724"
                                      },
                                      "endPosition": "2820",
                                      "kind": "IF",
                                      "startPosition": "2720",
                                      "thenStatement": {
                                        "endPosition": "2820",
                                        "kind": "BLOCK",
                                        "statements": [
                                          {
                                            "expression": {
                                              "expression": {
                                                "endPosition": "2799",
                                                "kind": "FUNCTION_INVOCATION",
                                                "functionSelect": {
                                                  "endPosition": "2794",
                                                  "kind": "IDENTIFIER",
                                                  "name": "String",
                                                  "startPosition": "2788"
                                                },
                                                "arguments": [
                                                  {
                                                    "endPosition": "2798",
                                                    "kind": "IDENTIFIER",
                                                    "name": "val",
                                                    "startPosition": "2795"
                                                  }
                                                ],
                                                "startPosition": "2788"
                                              },
                                              "endPosition": "2799",
                                              "kind": "ASSIGNMENT",
                                              "variable": {
                                                "expression": {
                                                  "endPosition": "2782",
                                                  "kind": "IDENTIFIER",
                                                  "name": "result",
                                                  "startPosition": "2776"
                                                },
                                                "endPosition": "2785",
                                                "kind": "ARRAY_ACCESS",
                                                "index": {
                                                  "endPosition": "2784",
                                                  "kind": "IDENTIFIER",
                                                  "name": "i",
                                                  "startPosition": "2783"
                                                },
                                                "startPosition": "2776"
                                              },
                                              "startPosition": "2776"
                                            },
                                            "endPosition": "2799",
                                            "kind": "EXPRESSION_STATEMENT",
                                            "startPosition": "2776"
                                          }
                                        ],
                                        "startPosition": "2752"
                                      }
                                    }
                                  ],
                                  "startPosition": "2693"
                                }
                              ],
                              "expression": {
                                "expression": {
                                  "endPosition": "2544",
                                  "kind": "IDENTIFIER",
                                  "name": "val",
                                  "startPosition": "2541"
                                },
                                "endPosition": "2544",
                                "kind": "TYPEOF",
                                "startPosition": "2534"
                              },
                              "endPosition": "2832",
                              "kind": "SWITCH",
                              "startPosition": "2526"
                            }
                          ],
                          "startPosition": "2514"
                        },
                        "endPosition": "2840",
                        "kind": "IF",
                        "startPosition": "2302",
                        "thenStatement": {
                          "endPosition": "2508",
                          "kind": "BLOCK",
                          "statements": [
                            {
                              "endPosition": "2377",
                              "kind": "VARIABLE",
                              "name": "arr",
                              "startPosition": "2350",
                              "initializer": {
                                "constructorExpression": {
                                  "endPosition": "2377",
                                  "kind": "FUNCTION_INVOCATION",
                                  "functionSelect": {
                                    "endPosition": "2365",
                                    "kind": "IDENTIFIER",
                                    "name": "Array",
                                    "startPosition": "2360"
                                  },
                                  "arguments": [
                                    {
                                      "endPosition": "2376",
                                      "kind": "FUNCTION_INVOCATION",
                                      "functionSelect": {
                                        "identifier": "size",
                                        "expression": {
                                          "endPosition": "2369",
                                          "kind": "IDENTIFIER",
                                          "name": "val",
                                          "startPosition": "2366"
                                        },
                                        "endPosition": "2374",
                                        "kind": "MEMBER_SELECT",
                                        "startPosition": "2366"
                                      },
                                      "arguments": [],
                                      "startPosition": "2366"
                                    }
                                  ],
                                  "startPosition": "2360"
                                },
                                "endPosition": "2377",
                                "kind": "NEW",
                                "startPosition": "2356"
                              }
                            },
                            {
                              "endPosition": "2399",
                              "kind": "VARIABLE",
                              "name": "j",
                              "startPosition": "2398"
                            },
                            {
                              "expression": {
                                "endPosition": "2406",
                                "kind": "IDENTIFIER",
                                "name": "val",
                                "startPosition": "2403"
                              },
                              "endPosition": "2466",
                              "kind": "FOR_IN_LOOP",
                              "forEach": "false",
                              "variable": {
                                "endPosition": "2399",
                                "kind": "IDENTIFIER",
                                "name": "j",
                                "startPosition": "2398"
                              },
                              "statement": {
                                "endPosition": "2466",
                                "kind": "BLOCK",
                                "statements": [
                                  {
                                    "expression": {
                                      "expression": {
                                        "endPosition": "2453",
                                        "kind": "FUNCTION_INVOCATION",
                                        "functionSelect": {
                                          "identifier": "convert",
                                          "expression": {
                                            "endPosition": "2437",
                                            "kind": "IDENTIFIER",
                                            "name": "this",
                                            "startPosition": "2433"
                                          },
                                          "endPosition": "2445",
                                          "kind": "MEMBER_SELECT",
                                          "startPosition": "2433"
                                        },
                                        "arguments": [
                                          {
                                            "expression": {
                                              "endPosition": "2449",
                                              "kind": "IDENTIFIER",
                                              "name": "val",
                                              "startPosition": "2446"
                                            },
                                            "endPosition": "2452",
                                            "kind": "ARRAY_ACCESS",
                                            "index": {
                                              "endPosition": "2451",
                                              "kind": "IDENTIFIER",
                                              "name": "j",
                                              "startPosition": "2450"
                                            },
                                            "startPosition": "2446"
                                          }
                                        ],
                                        "startPosition": "2433"
                                      },
                                      "endPosition": "2453",
                                      "kind": "ASSIGNMENT",
                                      "variable": {
                                        "expression": {
                                          "endPosition": "2427",
                                          "kind": "IDENTIFIER",
                                          "name": "arr",
                                          "startPosition": "2424"
                                        },
                                        "endPosition": "2430",
                                        "kind": "ARRAY_ACCESS",
                                        "index": {
                                          "endPosition": "2429",
                                          "kind": "IDENTIFIER",
                                          "name": "j",
                                          "startPosition": "2428"
                                        },
                                        "startPosition": "2424"
                                      },
                                      "startPosition": "2424"
                                    },
                                    "endPosition": "2453",
                                    "kind": "EXPRESSION_STATEMENT",
                                    "startPosition": "2424"
                                  }
                                ],
                                "startPosition": "2408"
                              },
                              "startPosition": "2389"
                            },
                            {
                              "expression": {
                                "expression": {
                                  "endPosition": "2499",
                                  "kind": "IDENTIFIER",
                                  "name": "arr",
                                  "startPosition": "2496"
                                },
                                "endPosition": "2499",
                                "kind": "ASSIGNMENT",
                                "variable": {
                                  "expression": {
                                    "endPosition": "2490",
                                    "kind": "IDENTIFIER",
                                    "name": "result",
                                    "startPosition": "2484"
                                  },
                                  "endPosition": "2493",
                                  "kind": "ARRAY_ACCESS",
                                  "index": {
                                    "endPosition": "2492",
                                    "kind": "IDENTIFIER",
                                    "name": "i",
                                    "startPosition": "2491"
                                  },
                                  "startPosition": "2484"
                                },
                                "startPosition": "2484"
                              },
                              "endPosition": "2499",
                              "kind": "EXPRESSION_STATEMENT",
                              "startPosition": "2484"
                            }
                          ],
                          "startPosition": "2334"
                        }
                      },
                      "endPosition": "2840",
                      "kind": "IF",
                      "startPosition": "2213",
                      "thenStatement": {
                        "endPosition": "2296",
                        "kind": "BLOCK",
                        "statements": [
                          {
                            "expression": {
                              "expression": {
                                "endPosition": "2286",
                                "kind": "FUNCTION_INVOCATION",
                                "functionSelect": {
                                  "identifier": "convert",
                                  "expression": {
                                    "endPosition": "2273",
                                    "kind": "IDENTIFIER",
                                    "name": "this",
                                    "startPosition": "2269"
                                  },
                                  "endPosition": "2281",
                                  "kind": "MEMBER_SELECT",
                                  "startPosition": "2269"
                                },
                                "arguments": [
                                  {
                                    "endPosition": "2285",
                                    "kind": "IDENTIFIER",
                                    "name": "val",
                                    "startPosition": "2282"
                                  }
                                ],
                                "startPosition": "2269"
                              },
                              "endPosition": "2286",
                              "kind": "ASSIGNMENT",
                              "variable": {
                                "expression": {
                                  "endPosition": "2263",
                                  "kind": "IDENTIFIER",
                                  "name": "result",
                                  "startPosition": "2257"
                                },
                                "endPosition": "2266",
                                "kind": "ARRAY_ACCESS",
                                "index": {
                                  "endPosition": "2265",
                                  "kind": "IDENTIFIER",
                                  "name": "i",
                                  "startPosition": "2264"
                                },
                                "startPosition": "2257"
                              },
                              "startPosition": "2257"
                            },
                            "endPosition": "2286",
                            "kind": "EXPRESSION_STATEMENT",
                            "startPosition": "2257"
                          }
                        ],
                        "startPosition": "2245"
                      }
                    }
                  ],
                  "startPosition": "2179"
                },
                "startPosition": "2160"
              },
              {
                "expression": {
                  "endPosition": "2862",
                  "kind": "IDENTIFIER",
                  "name": "result",
                  "startPosition": "2856"
                },
                "endPosition": "2863",
                "kind": "RETURN",
                "startPosition": "2849"
              }
            ],
            "startPosition": "2014"
          },
          "strict": "false",
          "startPosition": "2014",
          "parameters": [
            {
              "endPosition": "2012",
              "kind": "IDENTIFIER",
              "name": "tree",
              "startPosition": "2008"
            }
          ]
        },
        "endPosition": "2014",
        "kind": "ASSIGNMENT",
        "variable": {
          "identifier": "convert",
          "expression": {
            "identifier": "prototype",
            "expression": {
              "endPosition": "1978",
              "kind": "IDENTIFIER",
              "name": "Parser",
              "startPosition": "1972"
            },
            "endPosition": "1988",
            "kind": "MEMBER_SELECT",
            "startPosition": "1972"
          },
          "endPosition": "1996",
          "kind": "MEMBER_SELECT",
          "startPosition": "1972"
        },
        "startPosition": "1972"
      },
      "endPosition": "2865",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "1972"
    },
    {
      "endPosition": "3598",
      "kind": "FUNCTION",
      "name": "processFiles",
      "body": {
        "endPosition": "3555",
        "kind": "BLOCK",
        "statements": [
          {
            "endPosition": "2938",
            "kind": "VARIABLE",
            "name": "File",
            "startPosition": "2906",
            "initializer": {
              "endPosition": "2938",
              "kind": "FUNCTION_INVOCATION",
              "functionSelect": {
                "identifier": "type",
                "expression": {
                  "endPosition": "2917",
                  "kind": "IDENTIFIER",
                  "name": "Java",
                  "startPosition": "2913"
                },
                "endPosition": "2922",
                "kind": "MEMBER_SELECT",
                "startPosition": "2913"
              },
              "arguments": [
                {
                  "endPosition": "2936",
                  "kind": "STRING_LITERAL",
                  "value": "java.io.File",
                  "startPosition": "2924"
                }
              ],
              "startPosition": "2913"
            }
          },
          {
            "endPosition": "2993",
            "kind": "VARIABLE",
            "name": "files",
            "startPosition": "2947",
            "initializer": {
              "endPosition": "2993",
              "kind": "FUNCTION_INVOCATION",
              "functionSelect": {
                "identifier": "listFiles",
                "expression": {
                  "constructorExpression": {
                    "endPosition": "2981",
                    "kind": "FUNCTION_INVOCATION",
                    "functionSelect": {
                      "endPosition": "2963",
                      "kind": "IDENTIFIER",
                      "name": "File",
                      "startPosition": "2959"
                    },
                    "arguments": [
                      {
                        "leftOperand": {
                          "endPosition": "2971",
                          "kind": "IDENTIFIER",
                          "name": "__DIR__",
                          "startPosition": "2964"
                        },
                        "endPosition": "2980",
                        "kind": "PLUS",
                        "rightOperand": {
                          "endPosition": "2980",
                          "kind": "IDENTIFIER",
                          "name": "subdir",
                          "startPosition": "2974"
                        },
                        "startPosition": "2964"
                      }
                    ],
                    "startPosition": "2959"
                  },
                  "endPosition": "2981",
                  "kind": "NEW",
                  "startPosition": "2955"
                },
                "endPosition": "2991",
                "kind": "MEMBER_SELECT",
                "startPosition": "2955"
              },
              "arguments": [],
              "startPosition": "2955"
            }
          },
          {
            "expression": {
              "endPosition": "3026",
              "kind": "FUNCTION_INVOCATION",
              "functionSelect": {
                "identifier": "sort",
                "expression": {
                  "identifier": "Arrays",
                  "expression": {
                    "identifier": "util",
                    "expression": {
                      "endPosition": "3002",
                      "kind": "IDENTIFIER",
                      "name": "java",
                      "startPosition": "2998"
                    },
                    "endPosition": "3007",
                    "kind": "MEMBER_SELECT",
                    "startPosition": "2998"
                  },
                  "endPosition": "3014",
                  "kind": "MEMBER_SELECT",
                  "startPosition": "2998"
                },
                "endPosition": "3019",
                "kind": "MEMBER_SELECT",
                "startPosition": "2998"
              },
              "arguments": [
                {
                  "endPosition": "3025",
                  "kind": "IDENTIFIER",
                  "name": "files",
                  "startPosition": "3020"
                }
              ],
              "startPosition": "2998"
            },
            "endPosition": "3026",
            "kind": "EXPRESSION_STATEMENT",
            "startPosition": "2998"
          },
          {
            "endPosition": "3049",
            "kind": "VARIABLE",
            "name": "file",
            "startPosition": "3045"
          },
          {
            "expression": {
              "endPosition": "3058",
              "kind": "IDENTIFIER",
              "name": "files",
              "startPosition": "3053"
            },
            "endPosition": "3555",
            "kind": "FOR_IN_LOOP",
            "forEach": "true",
            "variable": {
              "endPosition": "3049",
              "kind": "IDENTIFIER",
              "name": "file",
              "startPosition": "3045"
            },
            "statement": {
              "endPosition": "3555",
              "kind": "BLOCK",
              "statements": [
                {
                  "condition": {
                    "endPosition": "3098",
                    "kind": "FUNCTION_INVOCATION",
                    "functionSelect": {
                      "identifier": "endsWith",
                      "expression": {
                        "identifier": "name",
                        "expression": {
                          "endPosition": "3077",
                          "kind": "IDENTIFIER",
                          "name": "file",
                          "startPosition": "3073"
                        },
                        "endPosition": "3082",
                        "kind": "MEMBER_SELECT",
                        "startPosition": "3073"
                      },
                      "endPosition": "3091",
                      "kind": "MEMBER_SELECT",
                      "startPosition": "3073"
                    },
                    "arguments": [
                      {
                        "endPosition": "3096",
                        "kind": "STRING_LITERAL",
                        "value": ".js",
                        "startPosition": "3093"
                      }
                    ],
                    "startPosition": "3073"
                  },
                  "endPosition": "3550",
                  "kind": "IF",
                  "startPosition": "3069",
                  "thenStatement": {
                    "endPosition": "3550",
                    "kind": "BLOCK",
                    "statements": [
                      {
                        "endPosition": "3141",
                        "kind": "VARIABLE",
                        "name": "script",
                        "startPosition": "3117",
                        "initializer": {
                          "endPosition": "3141",
                          "kind": "FUNCTION_INVOCATION",
                          "functionSelect": {
                            "endPosition": "3135",
                            "kind": "IDENTIFIER",
                            "name": "readFully",
                            "startPosition": "3126"
                          },
                          "arguments": [
                            {
                              "endPosition": "3140",
                              "kind": "IDENTIFIER",
                              "name": "file",
                              "startPosition": "3136"
                            }
                          ],
                          "startPosition": "3126"
                        }
                      },
                      {
                        "endPosition": "3179",
                        "kind": "VARIABLE",
                        "name": "parser",
                        "startPosition": "3158",
                        "initializer": {
                          "constructorExpression": {
                            "endPosition": "3179",
                            "kind": "FUNCTION_INVOCATION",
                            "functionSelect": {
                              "endPosition": "3177",
                              "kind": "IDENTIFIER",
                              "name": "Parser",
                              "startPosition": "3171"
                            },
                            "arguments": [],
                            "startPosition": "3171"
                          },
                          "endPosition": "3179",
                          "kind": "NEW",
                          "startPosition": "3167"
                        }
                      },
                      {
                        "endPosition": "3415",
                        "kind": "VARIABLE",
                        "name": "tree",
                        "startPosition": "3196",
                        "initializer": {
                          "endPosition": "3415",
                          "kind": "FUNCTION_INVOCATION",
                          "functionSelect": {
                            "identifier": "parse",
                            "expression": {
                              "endPosition": "3209",
                              "kind": "IDENTIFIER",
                              "name": "parser",
                              "startPosition": "3203"
                            },
                            "endPosition": "3215",
                            "kind": "MEMBER_SELECT",
                            "startPosition": "3203"
                          },
                          "arguments": [
                            {
                              "leftOperand": {
                                "leftOperand": {
                                  "endPosition": "3222",
                                  "kind": "IDENTIFIER",
                                  "name": "subdir",
                                  "startPosition": "3216"
                                },
                                "endPosition": "3227",
                                "kind": "PLUS",
                                "rightOperand": {
                                  "endPosition": "3227",
                                  "kind": "STRING_LITERAL",
                                  "value": "/",
                                  "startPosition": "3226"
                                },
                                "startPosition": "3216"
                              },
                              "endPosition": "3240",
                              "kind": "PLUS",
                              "rightOperand": {
                                "identifier": "name",
                                "expression": {
                                  "endPosition": "3235",
                                  "kind": "IDENTIFIER",
                                  "name": "file",
                                  "startPosition": "3231"
                                },
                                "endPosition": "3240",
                                "kind": "MEMBER_SELECT",
                                "startPosition": "3231"
                              },
                              "startPosition": "3216"
                            },
                            {
                              "endPosition": "3248",
                              "kind": "IDENTIFIER",
                              "name": "script",
                              "startPosition": "3242"
                            },
                            {
                              "endPosition": "3286",
                              "kind": "FUNCTION_EXPRESSION",
                              "body": {
                                "endPosition": "3397",
                                "kind": "BLOCK",
                                "statements": [
                                  {
                                    "expression": {
                                      "endPosition": "3365",
                                      "kind": "FUNCTION_INVOCATION",
                                      "functionSelect": {
                                        "endPosition": "3312",
                                        "kind": "IDENTIFIER",
                                        "name": "print",
                                        "startPosition": "3307"
                                      },
                                      "arguments": [
                                        {
                                          "endPosition": "3364",
                                          "kind": "FUNCTION_INVOCATION",
                                          "functionSelect": {
                                            "identifier": "stringify",
                                            "expression": {
                                              "endPosition": "3317",
                                              "kind": "IDENTIFIER",
                                              "name": "JSON",
                                              "startPosition": "3313"
                                            },
                                            "endPosition": "3327",
                                            "kind": "MEMBER_SELECT",
                                            "startPosition": "3313"
                                          },
                                          "arguments": [
                                            {
                                              "endPosition": "3354",
                                              "kind": "FUNCTION_INVOCATION",
                                              "functionSelect": {
                                                "identifier": "convert",
                                                "expression": {
                                                  "endPosition": "3334",
                                                  "kind": "IDENTIFIER",
                                                  "name": "parser",
                                                  "startPosition": "3328"
                                                },
                                                "endPosition": "3342",
                                                "kind": "MEMBER_SELECT",
                                                "startPosition": "3328"
                                              },
                                              "arguments": [
                                                {
                                                  "endPosition": "3353",
                                                  "kind": "IDENTIFIER",
                                                  "name": "diagnostic",
                                                  "startPosition": "3343"
                                                }
                                              ],
                                              "startPosition": "3328"
                                            },
                                            {
                                              "endPosition": "3360",
                                              "kind": "NULL_LITERAL",
                                              "startPosition": "3356"
                                            },
                                            {
                                              "endPosition": "3363",
                                              "kind": "NUMBER_LITERAL",
                                              "value": "2",
                                              "startPosition": "3362"
                                            }
                                          ],
                                          "startPosition": "3313"
                                        }
                                      ],
                                      "startPosition": "3307"
                                    },
                                    "endPosition": "3365",
                                    "kind": "EXPRESSION_STATEMENT",
                                    "startPosition": "3307"
                                  },
                                  {
                                    "expression": {
                                      "endPosition": "3396",
                                      "kind": "FUNCTION_INVOCATION",
                                      "functionSelect": {
                                        "endPosition": "3391",
                                        "kind": "IDENTIFIER",
                                        "name": "print",
                                        "startPosition": "3386"
                                      },
                                      "arguments": [
                                        {
                                          "endPosition": "3394",
                                          "kind": "STRING_LITERAL",
                                          "value": ",",
                                          "startPosition": "3393"
                                        }
                                      ],
                                      "startPosition": "3386"
                                    },
                                    "endPosition": "3396",
                                    "kind": "EXPRESSION_STATEMENT",
                                    "startPosition": "3386"
                                  }
                                ],
                                "startPosition": "3286"
                              },
                              "strict": "false",
                              "startPosition": "3286",
                              "parameters": [
                                {
                                  "endPosition": "3284",
                                  "kind": "IDENTIFIER",
                                  "name": "diagnostic",
                                  "startPosition": "3274"
                                }
                              ]
                            }
                          ],
                          "startPosition": "3203"
                        }
                      },
                      {
                        "condition": {
                          "leftOperand": {
                            "endPosition": "3437",
                            "kind": "IDENTIFIER",
                            "name": "tree",
                            "startPosition": "3433"
                          },
                          "endPosition": "3445",
                          "kind": "NOT_EQUAL_TO",
                          "rightOperand": {
                            "endPosition": "3445",
                            "kind": "NULL_LITERAL",
                            "startPosition": "3441"
                          },
                          "startPosition": "3433"
                        },
                        "endPosition": "3541",
                        "kind": "IF",
                        "startPosition": "3429",
                        "thenStatement": {
                          "endPosition": "3541",
                          "kind": "BLOCK",
                          "statements": [
                            {
                              "expression": {
                                "endPosition": "3500",
                                "kind": "FUNCTION_INVOCATION",
                                "functionSelect": {
                                  "endPosition": "3469",
                                  "kind": "IDENTIFIER",
                                  "name": "print",
                                  "startPosition": "3464"
                                },
                                "arguments": [
                                  {
                                    "endPosition": "3499",
                                    "kind": "FUNCTION_INVOCATION",
                                    "functionSelect": {
                                      "identifier": "stringify",
                                      "expression": {
                                        "endPosition": "3474",
                                        "kind": "IDENTIFIER",
                                        "name": "JSON",
                                        "startPosition": "3470"
                                      },
                                      "endPosition": "3484",
                                      "kind": "MEMBER_SELECT",
                                      "startPosition": "3470"
                                    },
                                    "arguments": [
                                      {
                                        "endPosition": "3489",
                                        "kind": "IDENTIFIER",
                                        "name": "tree",
                                        "startPosition": "3485"
                                      },
                                      {
                                        "endPosition": "3495",
                                        "kind": "NULL_LITERAL",
                                        "startPosition": "3491"
                                      },
                                      {
                                        "endPosition": "3498",
                                        "kind": "NUMBER_LITERAL",
                                        "value": "2",
                                        "startPosition": "3497"
                                      }
                                    ],
                                    "startPosition": "3470"
                                  }
                                ],
                                "startPosition": "3464"
                              },
                              "endPosition": "3500",
                              "kind": "EXPRESSION_STATEMENT",
                              "startPosition": "3464"
                            },
                            {
                              "expression": {
                                "endPosition": "3527",
                                "kind": "FUNCTION_INVOCATION",
                                "functionSelect": {
                                  "endPosition": "3522",
                                  "kind": "IDENTIFIER",
                                  "name": "print",
                                  "startPosition": "3517"
                                },
                                "arguments": [
                                  {
                                    "endPosition": "3525",
                                    "kind": "STRING_LITERAL",
                                    "value": ",",
                                    "startPosition": "3524"
                                  }
                                ],
                                "startPosition": "3517"
                              },
                              "endPosition": "3527",
                              "kind": "EXPRESSION_STATEMENT",
                              "startPosition": "3517"
                            }
                          ],
                          "startPosition": "3447"
                        }
                      }
                    ],
                    "startPosition": "3100"
                  }
                }
              ],
              "startPosition": "3060"
            },
            "startPosition": "3031"
          }
        ],
        "startPosition": "2897"
      },
      "strict": "false",
      "startPosition": "2867",
      "parameters": [
        {
          "endPosition": "2895",
          "kind": "IDENTIFIER",
          "name": "subdir",
          "startPosition": "2889"
        }
      ]
    },
    {
      "endPosition": "3901",
      "kind": "FUNCTION",
      "name": "main",
      "body": {
        "endPosition": "3899",
        "kind": "BLOCK",
        "statements": [
          {
            "expression": {
              "endPosition": "3631",
              "kind": "FUNCTION_INVOCATION",
              "functionSelect": {
                "endPosition": "3626",
                "kind": "IDENTIFIER",
                "name": "print",
                "startPosition": "3621"
              },
              "arguments": [
                {
                  "endPosition": "3629",
                  "kind": "STRING_LITERAL",
                  "value": "[",
                  "startPosition": "3628"
                }
              ],
              "startPosition": "3621"
            },
            "endPosition": "3631",
            "kind": "EXPRESSION_STATEMENT",
            "startPosition": "3621"
          },
          {
            "expression": {
              "endPosition": "3665",
              "kind": "FUNCTION_INVOCATION",
              "functionSelect": {
                "endPosition": "3650",
                "kind": "IDENTIFIER",
                "name": "processFiles",
                "startPosition": "3638"
              },
              "arguments": [
                {
                  "endPosition": "3663",
                  "kind": "STRING_LITERAL",
                  "value": "parsertests",
                  "startPosition": "3652"
                }
              ],
              "startPosition": "3638"
            },
            "endPosition": "3665",
            "kind": "EXPRESSION_STATEMENT",
            "startPosition": "3638"
          },
          {
            "expression": {
              "endPosition": "3706",
              "kind": "FUNCTION_INVOCATION",
              "functionSelect": {
                "endPosition": "3683",
                "kind": "IDENTIFIER",
                "name": "processFiles",
                "startPosition": "3671"
              },
              "arguments": [
                {
                  "endPosition": "3704",
                  "kind": "STRING_LITERAL",
                  "value": "parsernegativetests",
                  "startPosition": "3685"
                }
              ],
              "startPosition": "3671"
            },
            "endPosition": "3706",
            "kind": "EXPRESSION_STATEMENT",
            "startPosition": "3671"
          },
          {
            "endPosition": "3775",
            "kind": "VARIABLE",
            "name": "script",
            "startPosition": "3747",
            "initializer": {
              "endPosition": "3775",
              "kind": "FUNCTION_INVOCATION",
              "functionSelect": {
                "endPosition": "3765",
                "kind": "IDENTIFIER",
                "name": "readFully",
                "startPosition": "3756"
              },
              "arguments": [
                {
                  "endPosition": "3774",
                  "kind": "IDENTIFIER",
                  "name": "__FILE__",
                  "startPosition": "3766"
                }
              ],
              "startPosition": "3756"
            }
          },
          {
            "endPosition": "3840",
            "kind": "VARIABLE",
            "name": "tree",
            "startPosition": "3785",
            "initializer": {
              "endPosition": "3840",
              "kind": "FUNCTION_INVOCATION",
              "functionSelect": {
                "identifier": "parse",
                "expression": {
                  "constructorExpression": {
                    "endPosition": "3804",
                    "kind": "FUNCTION_INVOCATION",
                    "functionSelect": {
                      "endPosition": "3802",
                      "kind": "IDENTIFIER",
                      "name": "Parser",
                      "startPosition": "3796"
                    },
                    "arguments": [],
                    "startPosition": "3796"
                  },
                  "endPosition": "3804",
                  "kind": "NEW",
                  "startPosition": "3792"
                },
                "endPosition": "3810",
                "kind": "MEMBER_SELECT",
                "startPosition": "3792"
              },
              "arguments": [
                {
                  "endPosition": "3824",
                  "kind": "STRING_LITERAL",
                  "value": "parserapi.js",
                  "startPosition": "3812"
                },
                {
                  "endPosition": "3833",
                  "kind": "IDENTIFIER",
                  "name": "script",
                  "startPosition": "3827"
                },
                {
                  "endPosition": "3839",
                  "kind": "NULL_LITERAL",
                  "startPosition": "3835"
                }
              ],
              "startPosition": "3792"
            }
          },
          {
            "expression": {
              "endPosition": "3882",
              "kind": "FUNCTION_INVOCATION",
              "functionSelect": {
                "endPosition": "3851",
                "kind": "IDENTIFIER",
                "name": "print",
                "startPosition": "3846"
              },
              "arguments": [
                {
                  "endPosition": "3881",
                  "kind": "FUNCTION_INVOCATION",
                  "functionSelect": {
                    "identifier": "stringify",
                    "expression": {
                      "endPosition": "3856",
                      "kind": "IDENTIFIER",
                      "name": "JSON",
                      "startPosition": "3852"
                    },
                    "endPosition": "3866",
                    "kind": "MEMBER_SELECT",
                    "startPosition": "3852"
                  },
                  "arguments": [
                    {
                      "endPosition": "3871",
                      "kind": "IDENTIFIER",
                      "name": "tree",
                      "startPosition": "3867"
                    },
                    {
                      "endPosition": "3877",
                      "kind": "NULL_LITERAL",
                      "startPosition": "3873"
                    },
                    {
                      "endPosition": "3880",
                      "kind": "NUMBER_LITERAL",
                      "value": "2",
                      "startPosition": "3879"
                    }
                  ],
                  "startPosition": "3852"
                }
              ],
              "startPosition": "3846"
            },
            "endPosition": "3882",
            "kind": "EXPRESSION_STATEMENT",
            "startPosition": "3846"
          },
          {
            "expression": {
              "endPosition": "3898",
              "kind": "FUNCTION_INVOCATION",
              "functionSelect": {
                "endPosition": "3893",
                "kind": "IDENTIFIER",
                "name": "print",
                "startPosition": "3888"
              },
              "arguments": [
                {
                  "endPosition": "3896",
                  "kind": "STRING_LITERAL",
                  "value": "]",
                  "startPosition": "3895"
                }
              ],
              "startPosition": "3888"
            },
            "endPosition": "3898",
            "kind": "EXPRESSION_STATEMENT",
            "startPosition": "3888"
          }
        ],
        "startPosition": "3615"
      },
      "strict": "false",
      "startPosition": "3599",
      "parameters": []
    },
    {
      "expression": {
        "endPosition": "3909",
        "kind": "FUNCTION_INVOCATION",
        "functionSelect": {
          "endPosition": "3907",
          "kind": "IDENTIFIER",
          "name": "main",
          "startPosition": "3903"
        },
        "arguments": [],
        "startPosition": "3903"
      },
      "endPosition": "3909",
      "kind": "EXPRESSION_STATEMENT",
      "startPosition": "3903"
    }
  ],
  "sourceName": "parserapi.js",
  "strict": "false",
  "startPosition": "1136"
}
]