{
  "programs": [
    "Program {\n    span: 28..482,\n    kind: Script,\n    body: [\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n    ],\n}"
  ],
  "stmts": [
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 41..51,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 59..68,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 67..80,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 91..100,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 99..110,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 119..130,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 140..151,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 167..178,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 201..214,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 228..240,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 250..267,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 302..315,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 337..343,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 350..361,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 381..389,\n        expr: _,\n    },\n)",
    "Return(\n    ReturnStmt {\n        span: 400..411,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 388..415,\n        expr: _,\n    },\n)",
    "Return(\n    ReturnStmt {\n        span: 433..444,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 414..456,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 474..482,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)"
  ],
  "decls": [
    "Var(\n    VarDecl {\n        span: 28..42,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 28..39,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 48..60,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 48..58,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 77..92,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 77..90,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 107..120,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 107..118,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 127..141,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 127..139,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 148..168,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 148..166,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 175..202,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 175..200,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "TsEnum(\n    TsEnumDecl {\n        span: 210..229,\n        ident: Ident {\n            span: 215..216,\n            sym: \"E\",\n        },\n        declare: false,\n        is_const: false,\n        members: [\n            TsEnumMember {\n                span: 223..226,\n                name: Ident(\n                    Ident {\n                        span: 223..224,\n                        sym: \"A\",\n                    },\n                ),\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 237..251,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 237..249,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "TsInterface(\n    TsInterfaceDecl {\n        span: 258..295,\n        ident: Ident {\n            span: 268..269,\n            sym: \"I\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 276..290,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 276..279,\n                            sym: \"foo\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 292..303,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 292..301,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 340..351,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 340..349,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 358..382,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 358..380,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 448..482,\n        ident: Ident {\n            span: 457..458,\n            sym: \"j\",\n        },\n        declare: false,\n        params: [\n            _,\n        ],\n        body: [\n            _,\n        ],\n    },\n)"
  ],
  "pats": [
    "Ident(\n    Ident {\n        span: 32..33,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 41..42,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 52..53,\n        sym: \"a\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 54..58,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 59..60,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 67..68,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 81..82,\n        sym: \"b\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 83..90,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 91..92,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 99..100,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 111..112,\n        sym: \"c\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 113..118,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 119..120,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 131..132,\n        sym: \"d\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 140..141,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 152..153,\n        sym: \"e\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 154..166,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 167..168,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 179..181,\n        sym: \"e2\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 201..202,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 228..229,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 241..242,\n        sym: \"f\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 243..249,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 250..251,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 296..297,\n        sym: \"g\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 302..303,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 344..345,\n        sym: \"h\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 350..351,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 362..363,\n        sym: \"i\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 381..382,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 388..389,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 425..426,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 414..415,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 462..463,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 474..475,\n        sym: \"x\",\n    },\n)"
  ],
  "exprs": [
    "Lit(\n    Num(\n        NumberLit {\n            span: 45..46,\n            value: 1.0,\n        },\n    ),\n)",
    "Assign(\n    AssignExpr {\n        span: 43..47,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 56..57,\n            value: 2.0,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 63..64,\n        sym: \"a\",\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 61..65,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Lit(\n    Bool(\n        BoolLit {\n            span: 71..75,\n            value: true,\n        },\n    ),\n)",
    "Assign(\n    AssignExpr {\n        span: 69..76,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Lit(\n    Bool(\n        BoolLit {\n            span: 85..89,\n            value: true,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 95..96,\n        sym: \"b\",\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 93..97,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 103..105,\n            value: \"\",\n        },\n    ),\n)",
    "Assign(\n    AssignExpr {\n        span: 101..106,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 115..117,\n            value: \"\",\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 123..124,\n        sym: \"c\",\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 121..125,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 144..145,\n        sym: \"d\",\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 142..146,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 156..165,\n        sym: \"undefined\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 171..172,\n        sym: \"e\",\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 169..173,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 205..207,\n        sym: \"e2\",\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 203..208,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 232..233,\n        sym: \"E\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 233..236,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 234..235,\n                sym: \"A\",\n            },\n        ),\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 230..236,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 245..246,\n        sym: \"E\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 246..249,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 247..248,\n                sym: \"A\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 254..255,\n        sym: \"f\",\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 252..256,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 306..307,\n        sym: \"g\",\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 304..308,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 354..355,\n        sym: \"h\",\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 352..356,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 385..386,\n        sym: \"i\",\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 383..387,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 407..408,\n            value: 1.0,\n        },\n    ),\n)",
    "Function(\n    _,\n)",
    "Object(\n    ObjectExpr {\n        span: 392..415,\n        props: [\n            KeyValueProp {\n                span: 394..413,\n                key: Ident(\n                    Ident {\n                        span: 394..395,\n                        sym: \"f\",\n                    },\n                ),\n                value: _,\n            },\n        ],\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 390..415,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 440..441,\n        sym: \"x\",\n    },\n)",
    "Function(\n    _,\n)",
    "Object(\n    ObjectExpr {\n        span: 418..456,\n        props: [\n            KeyValueProp {\n                span: 420..446,\n                key: Ident(\n                    Ident {\n                        span: 420..421,\n                        sym: \"f\",\n                    },\n                ),\n                value: _,\n            },\n        ],\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 416..456,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 478..479,\n        sym: \"a\",\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 476..480,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)"
  ],
  "module_decls": [],
  "functions": [
    "Function {\n    span: 394..413,\n    params: [],\n    body: [\n        _,\n    ],\n    is_async: false,\n    is_generator: false,\n}",
    "Function {\n    span: 420..446,\n    params: [\n        Param {\n            span: 425..430,\n            decorators: [],\n            pat: _,\n        },\n    ],\n    body: [\n        _,\n    ],\n    is_async: false,\n    is_generator: false,\n}"
  ],
  "classes": [],
  "class_members": [],
  "jsx_elements": [],
  "ts_types": [
    "Keyword(\n    String,\n)"
  ]
}
