bQUARKz f9120e740b
dev/pbs (#8)
Co-authored-by: Nilton Constantino <nilton.constantino@visma.com>
Reviewed-on: #8
2026-03-24 13:40:22 +00:00

1171 lines
27 KiB
JSON

{
"kind": "File",
"span": {
"file_id": 0,
"start": 79,
"end": 1181
},
"imports": [],
"decls": [
{
"kind": "TypeDecl",
"span": {
"file_id": 0,
"start": 79,
"end": 224
},
"vis": null,
"type_kind": "struct",
"name": "Color",
"is_host": false,
"params": [
{
"span": {
"file_id": 0,
"start": 100,
"end": 112
},
"name": "raw",
"ty": {
"kind": "TypeName",
"span": {
"file_id": 0,
"start": 105,
"end": 112
},
"name": "bounded"
}
}
],
"constructors": [],
"constants": [
{
"span": {
"file_id": 0,
"start": 119,
"end": 135
},
"name": "BLACK",
"value": {
"kind": "Call",
"span": {
"file_id": 0,
"start": 126,
"end": 135
},
"callee": {
"kind": "Ident",
"span": {
"file_id": 0,
"start": 126,
"end": 131
},
"name": "Color"
},
"args": [
{
"kind": "BoundedLit",
"span": {
"file_id": 0,
"start": 132,
"end": 134
},
"value": 0
}
]
}
},
{
"span": {
"file_id": 0,
"start": 139,
"end": 159
},
"name": "WHITE",
"value": {
"kind": "Call",
"span": {
"file_id": 0,
"start": 146,
"end": 159
},
"callee": {
"kind": "Ident",
"span": {
"file_id": 0,
"start": 146,
"end": 151
},
"name": "Color"
},
"args": [
{
"kind": "BoundedLit",
"span": {
"file_id": 0,
"start": 152,
"end": 158
},
"value": 65535
}
]
}
},
{
"span": {
"file_id": 0,
"start": 163,
"end": 181
},
"name": "RED",
"value": {
"kind": "Call",
"span": {
"file_id": 0,
"start": 168,
"end": 181
},
"callee": {
"kind": "Ident",
"span": {
"file_id": 0,
"start": 168,
"end": 173
},
"name": "Color"
},
"args": [
{
"kind": "BoundedLit",
"span": {
"file_id": 0,
"start": 174,
"end": 180
},
"value": 63488
}
]
}
},
{
"span": {
"file_id": 0,
"start": 185,
"end": 204
},
"name": "GREEN",
"value": {
"kind": "Call",
"span": {
"file_id": 0,
"start": 192,
"end": 204
},
"callee": {
"kind": "Ident",
"span": {
"file_id": 0,
"start": 192,
"end": 197
},
"name": "Color"
},
"args": [
{
"kind": "BoundedLit",
"span": {
"file_id": 0,
"start": 198,
"end": 203
},
"value": 2016
}
]
}
},
{
"span": {
"file_id": 0,
"start": 208,
"end": 224
},
"name": "BLUE",
"value": {
"kind": "Call",
"span": {
"file_id": 0,
"start": 214,
"end": 224
},
"callee": {
"kind": "Ident",
"span": {
"file_id": 0,
"start": 214,
"end": 219
},
"name": "Color"
},
"args": [
{
"kind": "BoundedLit",
"span": {
"file_id": 0,
"start": 220,
"end": 223
},
"value": 31
}
]
}
}
],
"body": null
},
{
"kind": "TypeDecl",
"span": {
"file_id": 0,
"start": 229,
"end": 336
},
"vis": null,
"type_kind": "struct",
"name": "ButtonState",
"is_host": false,
"params": [
{
"span": {
"file_id": 0,
"start": 261,
"end": 274
},
"name": "pressed",
"ty": {
"kind": "TypeName",
"span": {
"file_id": 0,
"start": 270,
"end": 274
},
"name": "bool"
}
},
{
"span": {
"file_id": 0,
"start": 280,
"end": 294
},
"name": "released",
"ty": {
"kind": "TypeName",
"span": {
"file_id": 0,
"start": 290,
"end": 294
},
"name": "bool"
}
},
{
"span": {
"file_id": 0,
"start": 300,
"end": 310
},
"name": "down",
"ty": {
"kind": "TypeName",
"span": {
"file_id": 0,
"start": 306,
"end": 310
},
"name": "bool"
}
},
{
"span": {
"file_id": 0,
"start": 316,
"end": 336
},
"name": "hold_frames",
"ty": {
"kind": "TypeName",
"span": {
"file_id": 0,
"start": 329,
"end": 336
},
"name": "bounded"
}
}
],
"constructors": [],
"constants": [],
"body": null
},
{
"kind": "TypeDecl",
"span": {
"file_id": 0,
"start": 340,
"end": 618
},
"vis": null,
"type_kind": "struct",
"name": "Pad",
"is_host": false,
"params": [
{
"span": {
"file_id": 0,
"start": 364,
"end": 379
},
"name": "up",
"ty": {
"kind": "TypeName",
"span": {
"file_id": 0,
"start": 368,
"end": 379
},
"name": "ButtonState"
}
},
{
"span": {
"file_id": 0,
"start": 385,
"end": 402
},
"name": "down",
"ty": {
"kind": "TypeName",
"span": {
"file_id": 0,
"start": 391,
"end": 402
},
"name": "ButtonState"
}
},
{
"span": {
"file_id": 0,
"start": 408,
"end": 425
},
"name": "left",
"ty": {
"kind": "TypeName",
"span": {
"file_id": 0,
"start": 414,
"end": 425
},
"name": "ButtonState"
}
},
{
"span": {
"file_id": 0,
"start": 431,
"end": 449
},
"name": "right",
"ty": {
"kind": "TypeName",
"span": {
"file_id": 0,
"start": 438,
"end": 449
},
"name": "ButtonState"
}
},
{
"span": {
"file_id": 0,
"start": 455,
"end": 469
},
"name": "a",
"ty": {
"kind": "TypeName",
"span": {
"file_id": 0,
"start": 458,
"end": 469
},
"name": "ButtonState"
}
},
{
"span": {
"file_id": 0,
"start": 475,
"end": 489
},
"name": "b",
"ty": {
"kind": "TypeName",
"span": {
"file_id": 0,
"start": 478,
"end": 489
},
"name": "ButtonState"
}
},
{
"span": {
"file_id": 0,
"start": 495,
"end": 509
},
"name": "x",
"ty": {
"kind": "TypeName",
"span": {
"file_id": 0,
"start": 498,
"end": 509
},
"name": "ButtonState"
}
},
{
"span": {
"file_id": 0,
"start": 515,
"end": 529
},
"name": "y",
"ty": {
"kind": "TypeName",
"span": {
"file_id": 0,
"start": 518,
"end": 529
},
"name": "ButtonState"
}
},
{
"span": {
"file_id": 0,
"start": 535,
"end": 549
},
"name": "l",
"ty": {
"kind": "TypeName",
"span": {
"file_id": 0,
"start": 538,
"end": 549
},
"name": "ButtonState"
}
},
{
"span": {
"file_id": 0,
"start": 555,
"end": 569
},
"name": "r",
"ty": {
"kind": "TypeName",
"span": {
"file_id": 0,
"start": 558,
"end": 569
},
"name": "ButtonState"
}
},
{
"span": {
"file_id": 0,
"start": 575,
"end": 593
},
"name": "start",
"ty": {
"kind": "TypeName",
"span": {
"file_id": 0,
"start": 582,
"end": 593
},
"name": "ButtonState"
}
},
{
"span": {
"file_id": 0,
"start": 599,
"end": 618
},
"name": "select",
"ty": {
"kind": "TypeName",
"span": {
"file_id": 0,
"start": 607,
"end": 618
},
"name": "ButtonState"
}
}
],
"constructors": [],
"constants": [],
"body": null
},
{
"kind": "TypeDecl",
"span": {
"file_id": 0,
"start": 622,
"end": 685
},
"vis": null,
"type_kind": "contract",
"name": "Gfx",
"is_host": true,
"params": [],
"constructors": [],
"constants": [],
"body": {
"kind": "TypeBody",
"span": {
"file_id": 0,
"start": 648,
"end": 685
},
"members": [],
"methods": [
{
"span": {
"file_id": 0,
"start": 654,
"end": 682
},
"name": "clear",
"params": [
{
"span": {
"file_id": 0,
"start": 663,
"end": 675
},
"name": "color",
"ty": {
"kind": "TypeName",
"span": {
"file_id": 0,
"start": 670,
"end": 675
},
"name": "Color"
}
}
],
"ret": {
"kind": "TypeName",
"span": {
"file_id": 0,
"start": 678,
"end": 682
},
"name": "void"
}
}
]
}
},
{
"kind": "TypeDecl",
"span": {
"file_id": 0,
"start": 687,
"end": 737
},
"vis": null,
"type_kind": "contract",
"name": "Input",
"is_host": true,
"params": [],
"constructors": [],
"constants": [],
"body": {
"kind": "TypeBody",
"span": {
"file_id": 0,
"start": 715,
"end": 737
},
"members": [],
"methods": [
{
"span": {
"file_id": 0,
"start": 721,
"end": 734
},
"name": "pad",
"params": [],
"ret": {
"kind": "TypeName",
"span": {
"file_id": 0,
"start": 731,
"end": 734
},
"name": "Pad"
}
}
]
}
},
{
"kind": "FnDecl",
"span": {
"file_id": 0,
"start": 739,
"end": 788
},
"vis": null,
"name": "add",
"params": [
{
"span": {
"file_id": 0,
"start": 746,
"end": 752
},
"name": "a",
"ty": {
"kind": "TypeName",
"span": {
"file_id": 0,
"start": 749,
"end": 752
},
"name": "int"
}
},
{
"span": {
"file_id": 0,
"start": 754,
"end": 760
},
"name": "b",
"ty": {
"kind": "TypeName",
"span": {
"file_id": 0,
"start": 757,
"end": 760
},
"name": "int"
}
}
],
"ret": {
"kind": "TypeName",
"span": {
"file_id": 0,
"start": 763,
"end": 766
},
"name": "int"
},
"else_fallback": null,
"body": {
"kind": "Block",
"span": {
"file_id": 0,
"start": 767,
"end": 788
},
"stmts": [
{
"kind": "ReturnStmt",
"span": {
"file_id": 0,
"start": 773,
"end": 786
},
"expr": {
"kind": "Binary",
"span": {
"file_id": 0,
"start": 780,
"end": 785
},
"op": "+",
"left": {
"kind": "Ident",
"span": {
"file_id": 0,
"start": 780,
"end": 781
},
"name": "a"
},
"right": {
"kind": "Ident",
"span": {
"file_id": 0,
"start": 784,
"end": 785
},
"name": "b"
}
}
}
],
"tail": null
}
},
{
"kind": "FnDecl",
"span": {
"file_id": 0,
"start": 790,
"end": 1180
},
"vis": null,
"name": "frame",
"params": [],
"ret": {
"kind": "TypeName",
"span": {
"file_id": 0,
"start": 802,
"end": 806
},
"name": "void"
},
"else_fallback": null,
"body": {
"kind": "Block",
"span": {
"file_id": 0,
"start": 807,
"end": 1180
},
"stmts": [
{
"kind": "LetStmt",
"span": {
"file_id": 0,
"start": 843,
"end": 854
},
"name": "x",
"is_mut": false,
"ty": null,
"init": {
"kind": "IntLit",
"span": {
"file_id": 0,
"start": 851,
"end": 853
},
"value": 10
}
},
{
"kind": "LetStmt",
"span": {
"file_id": 0,
"start": 859,
"end": 870
},
"name": "y",
"is_mut": false,
"ty": null,
"init": {
"kind": "IntLit",
"span": {
"file_id": 0,
"start": 867,
"end": 869
},
"value": 20
}
},
{
"kind": "LetStmt",
"span": {
"file_id": 0,
"start": 875,
"end": 893
},
"name": "z",
"is_mut": false,
"ty": null,
"init": {
"kind": "Call",
"span": {
"file_id": 0,
"start": 883,
"end": 892
},
"callee": {
"kind": "Ident",
"span": {
"file_id": 0,
"start": 883,
"end": 886
},
"name": "add"
},
"args": [
{
"kind": "Ident",
"span": {
"file_id": 0,
"start": 887,
"end": 888
},
"name": "x"
},
{
"kind": "Ident",
"span": {
"file_id": 0,
"start": 890,
"end": 891
},
"name": "y"
}
]
}
},
{
"kind": "ExprStmt",
"span": {
"file_id": 0,
"start": 927,
"end": 1049
},
"expr": {
"kind": "IfExpr",
"span": {
"file_id": 0,
"start": 927,
"end": 1049
},
"cond": {
"kind": "Binary",
"span": {
"file_id": 0,
"start": 930,
"end": 937
},
"op": "==",
"left": {
"kind": "Ident",
"span": {
"file_id": 0,
"start": 930,
"end": 931
},
"name": "z"
},
"right": {
"kind": "IntLit",
"span": {
"file_id": 0,
"start": 935,
"end": 937
},
"value": 30
}
},
"then_block": {
"kind": "Block",
"span": {
"file_id": 0,
"start": 938,
"end": 1006
},
"stmts": [
{
"kind": "ExprStmt",
"span": {
"file_id": 0,
"start": 976,
"end": 999
},
"expr": {
"kind": "Call",
"span": {
"file_id": 0,
"start": 976,
"end": 998
},
"callee": {
"kind": "MemberAccess",
"span": {
"file_id": 0,
"start": 976,
"end": 985
},
"object": {
"kind": "Ident",
"span": {
"file_id": 0,
"start": 976,
"end": 979
},
"name": "Gfx"
},
"member": "clear"
},
"args": [
{
"kind": "MemberAccess",
"span": {
"file_id": 0,
"start": 986,
"end": 997
},
"object": {
"kind": "Ident",
"span": {
"file_id": 0,
"start": 986,
"end": 991
},
"name": "Color"
},
"member": "GREEN"
}
]
}
}
],
"tail": null
},
"else_block": {
"kind": "Block",
"span": {
"file_id": 0,
"start": 1012,
"end": 1049
},
"stmts": [
{
"kind": "ExprStmt",
"span": {
"file_id": 0,
"start": 1022,
"end": 1043
},
"expr": {
"kind": "Call",
"span": {
"file_id": 0,
"start": 1022,
"end": 1042
},
"callee": {
"kind": "MemberAccess",
"span": {
"file_id": 0,
"start": 1022,
"end": 1031
},
"object": {
"kind": "Ident",
"span": {
"file_id": 0,
"start": 1022,
"end": 1025
},
"name": "Gfx"
},
"member": "clear"
},
"args": [
{
"kind": "MemberAccess",
"span": {
"file_id": 0,
"start": 1032,
"end": 1041
},
"object": {
"kind": "Ident",
"span": {
"file_id": 0,
"start": 1032,
"end": 1037
},
"name": "Color"
},
"member": "RED"
}
]
}
}
],
"tail": null
}
}
},
{
"kind": "LetStmt",
"span": {
"file_id": 0,
"start": 1103,
"end": 1123
},
"name": "p",
"is_mut": false,
"ty": null,
"init": {
"kind": "Call",
"span": {
"file_id": 0,
"start": 1111,
"end": 1122
},
"callee": {
"kind": "MemberAccess",
"span": {
"file_id": 0,
"start": 1111,
"end": 1120
},
"object": {
"kind": "Ident",
"span": {
"file_id": 0,
"start": 1111,
"end": 1116
},
"name": "Input"
},
"member": "pad"
},
"args": []
}
}
],
"tail": {
"kind": "IfExpr",
"span": {
"file_id": 0,
"start": 1128,
"end": 1178
},
"cond": {
"kind": "MemberAccess",
"span": {
"file_id": 0,
"start": 1131,
"end": 1139
},
"object": {
"kind": "MemberAccess",
"span": {
"file_id": 0,
"start": 1131,
"end": 1134
},
"object": {
"kind": "Ident",
"span": {
"file_id": 0,
"start": 1131,
"end": 1132
},
"name": "p"
},
"member": "a"
},
"member": "down"
},
"then_block": {
"kind": "Block",
"span": {
"file_id": 0,
"start": 1140,
"end": 1178
},
"stmts": [
{
"kind": "ExprStmt",
"span": {
"file_id": 0,
"start": 1150,
"end": 1172
},
"expr": {
"kind": "Call",
"span": {
"file_id": 0,
"start": 1150,
"end": 1171
},
"callee": {
"kind": "MemberAccess",
"span": {
"file_id": 0,
"start": 1150,
"end": 1159
},
"object": {
"kind": "Ident",
"span": {
"file_id": 0,
"start": 1150,
"end": 1153
},
"name": "Gfx"
},
"member": "clear"
},
"args": [
{
"kind": "MemberAccess",
"span": {
"file_id": 0,
"start": 1160,
"end": 1170
},
"object": {
"kind": "Ident",
"span": {
"file_id": 0,
"start": 1160,
"end": 1165
},
"name": "Color"
},
"member": "BLUE"
}
]
}
}
],
"tail": null
},
"else_block": null
}
}
}
]
}