{
  "programs": [
    "Program {\n    span: 330..1055,\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}"
  ],
  "stmts": [
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 644..694,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 691..741,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 738..788,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 785..836,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 854..904,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 901..951,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 948..998,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)"
  ],
  "decls": [
    "TsInterface(\n    TsInterfaceDecl {\n        span: 330..403,\n        ident: Ident {\n            span: 340..342,\n            sym: \"C1\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 349..370,\n                kind: Call,\n                name: None,\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 361..382,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 361..370,\n                            sym: \"prototype\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 380..393,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 380..382,\n                            sym: \"p1\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "TsInterface(\n    TsInterfaceDecl {\n        span: 394..467,\n        ident: Ident {\n            span: 404..406,\n            sym: \"C2\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 413..434,\n                kind: Call,\n                name: None,\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 425..446,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 425..434,\n                            sym: \"prototype\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 444..457,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 444..446,\n                            sym: \"p2\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "TsInterface(\n    TsInterfaceDecl {\n        span: 458..524,\n        ident: Ident {\n            span: 468..470,\n            sym: \"D1\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [\n            Ident {\n                span: 479..483,\n                sym: \"C1\",\n            },\n        ],\n        body: [\n            TsTypeMember {\n                span: 488..509,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 488..497,\n                            sym: \"prototype\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 507..520,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 507..509,\n                            sym: \"p3\",\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: 521..541,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 521..537,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 538..558,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 538..554,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 555..590,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 555..585,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 587..602,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 587..598,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 599..614,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 599..610,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 611..626,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 611..622,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 623..647,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 623..643,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 833..857,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 833..853,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 995..1055,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 995..1044,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)"
  ],
  "pats": [
    "Ident(\n    Ident {\n        span: 525..528,\n        sym: \"str\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 542..545,\n        sym: \"num\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 559..567,\n        sym: \"strOrNum\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 591..593,\n        sym: \"c1\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 603..605,\n        sym: \"c2\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 615..617,\n        sym: \"d1\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 627..633,\n        sym: \"c1Orc2\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 644..647,\n        sym: \"str\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 691..694,\n        sym: \"num\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 738..741,\n        sym: \"str\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 785..788,\n        sym: \"num\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 837..843,\n        sym: \"c2Ord1\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 854..857,\n        sym: \"num\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 901..904,\n        sym: \"num\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 948..951,\n        sym: \"str\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 999..1001,\n        sym: \"r2\",\n    },\n)"
  ],
  "exprs": [
    "Ident(\n    Ident {\n        span: 650..656,\n        sym: \"c1Orc2\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 668..670,\n        sym: \"c1\",\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 657..673,\n        op: InstanceOf,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 674..680,\n        sym: \"c1Orc2\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 680..684,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 681..683,\n                sym: \"p1\",\n            },\n        ),\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 671..684,\n        op: LogicalAnd,\n        left: _,\n        right: _,\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 648..684,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 697..703,\n        sym: \"c1Orc2\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 715..717,\n        sym: \"c2\",\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 704..720,\n        op: InstanceOf,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 721..727,\n        sym: \"c1Orc2\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 727..731,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 728..730,\n                sym: \"p2\",\n            },\n        ),\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 718..731,\n        op: LogicalAnd,\n        left: _,\n        right: _,\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 695..731,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 744..750,\n        sym: \"c1Orc2\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 762..764,\n        sym: \"d1\",\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 751..767,\n        op: InstanceOf,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 768..774,\n        sym: \"c1Orc2\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 774..778,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 775..777,\n                sym: \"p1\",\n            },\n        ),\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 765..778,\n        op: LogicalAnd,\n        left: _,\n        right: _,\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 742..778,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 791..797,\n        sym: \"c1Orc2\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 809..811,\n        sym: \"d1\",\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 798..814,\n        op: InstanceOf,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 815..821,\n        sym: \"c1Orc2\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 821..825,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 822..824,\n                sym: \"p3\",\n            },\n        ),\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 812..825,\n        op: LogicalAnd,\n        left: _,\n        right: _,\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 789..825,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 860..866,\n        sym: \"c2Ord1\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 878..880,\n        sym: \"c2\",\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 867..883,\n        op: InstanceOf,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 884..890,\n        sym: \"c2Ord1\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 890..894,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 891..893,\n                sym: \"p2\",\n            },\n        ),\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 881..894,\n        op: LogicalAnd,\n        left: _,\n        right: _,\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 858..894,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 907..913,\n        sym: \"c2Ord1\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 925..927,\n        sym: \"d1\",\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 914..930,\n        op: InstanceOf,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 931..937,\n        sym: \"c2Ord1\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 937..941,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 938..940,\n                sym: \"p3\",\n            },\n        ),\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 928..941,\n        op: LogicalAnd,\n        left: _,\n        right: _,\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 905..941,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 954..960,\n        sym: \"c2Ord1\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 972..974,\n        sym: \"d1\",\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 961..977,\n        op: InstanceOf,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 978..984,\n        sym: \"c2Ord1\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 984..988,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 985..987,\n                sym: \"p1\",\n            },\n        ),\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 975..988,\n        op: LogicalAnd,\n        left: _,\n        right: _,\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 952..988,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 1013..1019,\n        sym: \"c2Ord1\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1031..1033,\n        sym: \"c1\",\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 1020..1036,\n        op: InstanceOf,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 1037..1043,\n        sym: \"c2Ord1\",\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 1034..1044,\n        op: LogicalAnd,\n        left: _,\n        right: _,\n    },\n)"
  ],
  "module_decls": [],
  "functions": [],
  "classes": [],
  "class_members": [],
  "jsx_elements": [],
  "ts_types": [
    "TypeRef(\n    TsTypeRef {\n        span: 353..356,\n        name: Ident {\n            span: 353..356,\n            sym: \"C1\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 372..375,\n        name: Ident {\n            span: 372..375,\n            sym: \"C1\",\n        },\n        type_args: [],\n    },\n)",
    "Keyword(\n    String,\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 417..420,\n        name: Ident {\n            span: 417..420,\n            sym: \"C2\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 436..439,\n        name: Ident {\n            span: 436..439,\n            sym: \"C2\",\n        },\n        type_args: [],\n    },\n)",
    "Keyword(\n    Number,\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 499..502,\n        name: Ident {\n            span: 499..502,\n            sym: \"D1\",\n        },\n        type_args: [],\n    },\n)",
    "Keyword(\n    Number,\n)"
  ]
}
