SeraphScript/src/integration_tests/test_cases/class_with_many_statements/parsed_tree.json

544 lines
21 KiB
JSON

{
"data": {
"Script": {
"statements": [
{
"data": {
"ClassDeclaration": {
"modifiers": 10,
"name": "Foobar",
"inherits": [],
"statements": [
{
"data": {
"Var": {
"modifier": 0,
"var_type": {
"data": {
"Type": {
"is_const": false,
"scope": null,
"datatype": {
"data": {
"DataTypePrimType": {
"prim_type": "Int32"
}
},
"span": {
"start": 32,
"end": 35
}
},
"modifiers": []
}
},
"span": {
"start": 32,
"end": 35
}
},
"identifier": "_a",
"assignment": null
}
},
"span": {
"start": 32,
"end": 39
}
},
{
"data": {
"Var": {
"modifier": 0,
"var_type": {
"data": {
"Type": {
"is_const": false,
"scope": null,
"datatype": {
"data": {
"DataTypePrimType": {
"prim_type": "Int32"
}
},
"span": {
"start": 44,
"end": 47
}
},
"modifiers": []
}
},
"span": {
"start": 44,
"end": 47
}
},
"identifier": "_b",
"assignment": null
}
},
"span": {
"start": 44,
"end": 51
}
},
{
"data": {
"FuncDeclaration": {
"modifiers": 0,
"field_mod": null,
"is_destructor": false,
"is_constructor": true,
"returns_reference": false,
"return_type": {
"data": {
"Type": {
"is_const": false,
"scope": null,
"datatype": {
"data": {
"DataTypeIdentifier": {
"identifier": "Foobar"
}
},
"span": {
"start": 57,
"end": 63
}
},
"modifiers": []
}
},
"span": {
"start": 57,
"end": 63
}
},
"name": "Foobar",
"param_list": {
"data": {
"ParamList": {
"parameters": [
{
"parameter_type": {
"data": {
"Type": {
"is_const": false,
"scope": null,
"datatype": {
"data": {
"DataTypePrimType": {
"prim_type": "Int32"
}
},
"span": {
"start": 64,
"end": 67
}
},
"modifiers": []
}
},
"span": {
"start": 64,
"end": 67
}
},
"type_mod": null,
"identifier": "a",
"default": null
},
{
"parameter_type": {
"data": {
"Type": {
"is_const": false,
"scope": null,
"datatype": {
"data": {
"DataTypePrimType": {
"prim_type": "Int32"
}
},
"span": {
"start": 71,
"end": 74
}
},
"modifiers": []
}
},
"span": {
"start": 71,
"end": 74
}
},
"type_mod": null,
"identifier": "b",
"default": null
}
]
}
},
"span": {
"start": 63,
"end": 77
}
},
"is_const": false,
"func_attr": 0,
"block": {
"data": {
"StatBlock": {
"statements": [
{
"data": {
"Assignment": {
"left": {
"data": {
"VarAccess": {
"scope": null,
"identifier": "_a"
}
},
"span": {
"start": 88,
"end": 90
}
},
"operator": "Assignment",
"right": {
"data": {
"VarAccess": {
"scope": null,
"identifier": "a"
}
},
"span": {
"start": 93,
"end": 94
}
}
}
},
"span": {
"start": 88,
"end": 94
}
},
{
"data": {
"Assignment": {
"left": {
"data": {
"VarAccess": {
"scope": null,
"identifier": "_b"
}
},
"span": {
"start": 104,
"end": 106
}
},
"operator": "Assignment",
"right": {
"data": {
"VarAccess": {
"scope": null,
"identifier": "b"
}
},
"span": {
"start": 109,
"end": 110
}
}
}
},
"span": {
"start": 104,
"end": 110
}
}
]
}
},
"span": {
"start": 78,
"end": 117
}
}
}
},
"span": {
"start": 57,
"end": 117
}
},
{
"data": {
"FuncDeclaration": {
"modifiers": 0,
"field_mod": null,
"is_destructor": false,
"is_constructor": false,
"returns_reference": false,
"return_type": {
"data": {
"Type": {
"is_const": false,
"scope": null,
"datatype": {
"data": {
"DataTypePrimType": {
"prim_type": "Int32"
}
},
"span": {
"start": 123,
"end": 126
}
},
"modifiers": []
}
},
"span": {
"start": 123,
"end": 126
}
},
"name": "GetA",
"param_list": {
"data": {
"ParamList": {
"parameters": []
}
},
"span": {
"start": 131,
"end": 133
}
},
"is_const": false,
"func_attr": 0,
"block": {
"data": {
"StatBlock": {
"statements": [
{
"data": {
"ReturnStatement": {
"expression": {
"data": {
"VarAccess": {
"scope": null,
"identifier": "_a"
}
},
"span": {
"start": 150,
"end": 152
}
}
}
},
"span": {
"start": 143,
"end": 153
}
}
]
}
},
"span": {
"start": 133,
"end": 159
}
}
}
},
"span": {
"start": 123,
"end": 159
}
},
{
"data": {
"FuncDeclaration": {
"modifiers": 0,
"field_mod": null,
"is_destructor": false,
"is_constructor": false,
"returns_reference": false,
"return_type": {
"data": {
"Type": {
"is_const": false,
"scope": null,
"datatype": {
"data": {
"DataTypePrimType": {
"prim_type": "Int32"
}
},
"span": {
"start": 165,
"end": 168
}
},
"modifiers": []
}
},
"span": {
"start": 165,
"end": 168
}
},
"name": "Add",
"param_list": {
"data": {
"ParamList": {
"parameters": []
}
},
"span": {
"start": 172,
"end": 174
}
},
"is_const": false,
"func_attr": 0,
"block": {
"data": {
"StatBlock": {
"statements": [
{
"data": {
"ReturnStatement": {
"expression": {
"data": {
"BinaryExpr": {
"left": {
"data": {
"VarAccess": {
"scope": null,
"identifier": "_a"
}
},
"span": {
"start": 192,
"end": 194
}
},
"operator": "Addition",
"right": {
"data": {
"VarAccess": {
"scope": null,
"identifier": "_b"
}
},
"span": {
"start": 197,
"end": 199
}
}
}
},
"span": {
"start": 192,
"end": 199
}
}
}
},
"span": {
"start": 185,
"end": 200
}
}
]
}
},
"span": {
"start": 175,
"end": 206
}
}
}
},
"span": {
"start": 165,
"end": 206
}
},
{
"data": {
"ClassDeclaration": {
"modifiers": 0,
"name": "Inner",
"inherits": [],
"statements": [
{
"data": {
"Var": {
"modifier": 0,
"var_type": {
"data": {
"Type": {
"is_const": false,
"scope": null,
"datatype": {
"data": {
"DataTypePrimType": {
"prim_type": "Int32"
}
},
"span": {
"start": 234,
"end": 237
}
},
"modifiers": []
}
},
"span": {
"start": 234,
"end": 237
}
},
"identifier": "a",
"assignment": null
}
},
"span": {
"start": 234,
"end": 240
}
}
]
}
},
"span": {
"start": 212,
"end": 246
}
}
]
}
},
"span": {
"start": 0,
"end": 248
}
}
]
}
},
"span": {
"start": 0,
"end": 248
}
}