[
{
"Expression": {
"Call": {
"callee": {
"Variable": {
"name": "library"
}
},
"args": [
{
"Positional": {
"Literal": {
"String": "Point"
}
}
}
],
"id": 1
}
}
},
{
"TypeDecl": {
"name": "point",
"fields": [
{
"name": "x",
"type_annotation": "int",
"default_value": null
},
{
"name": "y",
"type_annotation": "float",
"default_value": null
}
],
"export": true
}
},
{
"MethodDecl": {
"name": "set",
"params": [
{
"type_annotation": "point",
"name": "this",
"default_value": null
}
],
"body": [
{
"Assignment": {
"target": {
"MemberAccess": {
"object": {
"Variable": {
"name": "this"
}
},
"member": "x"
}
},
"value": {
"Literal": {
"Int": 1
}
}
}
}
],
"export": true
}
},
{
"FunctionDecl": {
"name": "add",
"params": [
{
"name": "x"
},
{
"name": "y"
}
],
"body": [
{
"Expression": {
"Binary": {
"left": {
"Variable": {
"name": "x"
}
},
"op": "Add",
"right": {
"Variable": {
"name": "y"
}
}
}
}
}
],
"export": true
}
},
{
"EnumDecl": {
"name": "Signal",
"fields": [
{
"name": "buy",
"title": "Buy signal"
},
{
"name": "sell",
"title": "Sell signal"
}
],
"export": true
}
}
]