ayin/src/parser/snapshots/ayin__parser__parser__tests__full_program.snap
2025-12-19 00:12:50 +02:00

201 lines
7.6 KiB
Text

---
source: src/parser/parser.rs
expression: result
---
Ok(
[
Definition {
mutable: false,
name: Name(
"init",
),
expr: Func(
Fn {
args: [],
body: Block(
[
Return(
Some(
Record(
{
Label(
"player",
): Record(
{
Label(
"position",
): Record(
{
Label(
"x",
): Value(
Int(
10,
),
),
Label(
"y",
): Value(
Int(
20,
),
),
},
),
},
),
},
),
),
),
],
),
},
),
},
Definition {
mutable: false,
name: Name(
"update",
),
expr: Func(
Fn {
args: [
Arg {
name: Name(
"state",
),
},
Arg {
name: Name(
"events",
),
},
],
body: Block(
[
Return(
Some(
Var(
Name(
"state2",
),
),
),
),
],
),
},
),
},
Definition {
mutable: false,
name: Name(
"draw",
),
expr: Func(
Fn {
args: [
Arg {
name: Name(
"frame",
),
},
Arg {
name: Name(
"state",
),
},
],
body: Block(
[
Expr(
FunCall {
func: Access {
expr: Var(
Name(
"frame",
),
),
field: Label(
"clear",
),
},
args: [
Value(
Int(
0,
),
),
Value(
Int(
0,
),
),
Value(
Int(
0,
),
),
],
},
),
],
),
},
),
},
Definition {
mutable: false,
name: Name(
"migrate",
),
expr: Func(
Fn {
args: [
Arg {
name: Name(
"state",
),
},
],
body: Block(
[
Return(
Some(
Record(
{
Label(
"player",
): Record(
{
Label(
"pos",
): Access {
expr: Access {
expr: Var(
Name(
"state",
),
),
field: Label(
"player",
),
},
field: Label(
"position",
),
},
},
),
},
),
),
),
],
),
},
),
},
],
)