{
  "programs": [
    "Program {\n    span: 1..254,\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}"
  ],
  "stmts": [
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 14..22,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 21..30,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 29..44,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 53..61,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 60..75,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 92..97,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 104..121,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 150..159,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 158..180,\n        expr: _,\n    },\n)",
    "ModuleDecl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 205..221,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 239..247,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 248..254,\n        expr: _,\n    },\n)"
  ],
  "decls": [
    "Var(\n    VarDecl {\n        span: 1..15,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 1..13,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "TsEnum(\n    TsEnumDecl {\n        span: 40..54,\n        ident: Ident {\n            span: 45..46,\n            sym: \"E\",\n        },\n        declare: false,\n        is_const: false,\n        members: [\n            TsEnumMember {\n                span: 49..52,\n                name: Ident(\n                    Ident {\n                        span: 49..50,\n                        sym: \"A\",\n                    },\n                ),\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 94..105,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 94..103,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "TsInterface(\n    TsInterfaceDecl {\n        span: 112..143,\n        ident: Ident {\n            span: 122..123,\n            sym: \"I\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 126..139,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 126..129,\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: 140..151,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 140..149,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 192..204,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 192..202,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "TsModule(\n    TsModuleDecl {\n        span: 174..206,\n        declare: false,\n        global: false,\n        namespace: false,\n        id: Ident(\n            Ident {\n                span: 181..182,\n                sym: \"M\",\n            },\n        ),\n        body: Some(\n            ModuleBlock(\n                [\n                    _,\n                ],\n            ),\n        ),\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 213..249,\n        ident: Ident {\n            span: 222..223,\n            sym: \"f\",\n        },\n        declare: false,\n        params: [\n            _,\n        ],\n        body: [\n            _,\n        ],\n    },\n)"
  ],
  "pats": [
    "Ident(\n    Ident {\n        span: 5..6,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 14..15,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 21..22,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 29..30,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 53..54,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 60..61,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 98..99,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 104..105,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 144..145,\n        sym: \"b\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 150..151,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 158..159,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 196..197,\n        sym: \"x\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 198..202,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 205..206,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 227..228,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 239..240,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 248..249,\n        sym: \"x\",\n    },\n)"
  ],
  "exprs": [
    "Lit(\n    Num(\n        NumberLit {\n            span: 18..19,\n            value: 1.0,\n        },\n    ),\n)",
    "Assign(\n    AssignExpr {\n        span: 16..20,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 25..27,\n            value: \"\",\n        },\n    ),\n)",
    "Assign(\n    AssignExpr {\n        span: 23..28,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Lit(\n    Bool(\n        BoolLit {\n            span: 33..37,\n            value: true,\n        },\n    ),\n)",
    "Assign(\n    AssignExpr {\n        span: 31..38,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 57..58,\n        sym: \"E\",\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 55..59,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 64..65,\n        sym: \"E\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 65..68,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 66..67,\n                sym: \"A\",\n            },\n        ),\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 62..68,\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: 108..109,\n        sym: \"a\",\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 106..110,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 154..155,\n        sym: \"b\",\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 152..156,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Function(\n    _,\n)",
    "Object(\n    ObjectExpr {\n        span: 162..180,\n        props: [\n            KeyValueProp {\n                span: 164..172,\n                key: Ident(\n                    Ident {\n                        span: 164..165,\n                        sym: \"f\",\n                    },\n                ),\n                value: _,\n            },\n        ],\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 160..180,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 200..201,\n            value: 1.0,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 209..210,\n        sym: \"M\",\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 207..211,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 243..244,\n        sym: \"a\",\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 241..245,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 252..253,\n        sym: \"f\",\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 250..254,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)"
  ],
  "module_decls": [
    "ExportDecl(\n    ExportDecl {\n        span: 185..204,\n        decl: _,\n    },\n)"
  ],
  "functions": [
    "Function {\n    span: 164..172,\n    params: [],\n    body: [],\n    is_async: false,\n    is_generator: false,\n}"
  ],
  "classes": [],
  "class_members": [],
  "jsx_elements": [],
  "ts_types": [
    "Keyword(\n    String,\n)"
  ]
}
