source
prog
defn
TYP
1:1-1:3
typ
ID
1:5-1:7
hax
EQUALS
1:9-1:9
=
type
LCURLY
1:11-1:11
{
ID
1:12-1:12
a
COLON
1:14-1:14
:
type
INT
1:16-1:18
int
RCURLY
1:19-1:19
}
defn
VAR
2:1-2:3
var
ID
2:5-2:6
id
COLON
2:8-2:8
:
type
LBRACKET
2:10-2:10
(
type
LBRACKET
2:11-2:11
(
type
LBRACKET
2:12-2:12
(
type
LBRACKET
2:13-2:13
(
type
LBRACKET
2:14-2:14
(
type
LBRACKET
2:15-2:15
(
type
LBRACKET
2:16-2:16
(
type
INT
2:17-2:19
int
RBRACKET
2:20-2:20
)
RBRACKET
2:21-2:21
)
RBRACKET
2:22-2:22
)
RBRACKET
2:23-2:23
)
RBRACKET
2:24-2:24
)
RBRACKET
2:25-2:25
)
RBRACKET
2:26-2:26
)
defn
FUN
3:1-3:3
fun
ID
3:5-3:5
x
LBRACKET
3:6-3:6
(
RBRACKET
3:7-3:7
)
COLON
3:9-3:9
:
type
VOID
3:11-3:14
void
EQUALS
3:16-3:16
=
expr
LBRACKET
4:9-4:9
(
expr
NUM
4:10-4:10
1
COMMA
4:11-4:11
,
expr
NUM
4:13-4:13
2
COMMA
4:14-4:14
,
expr
NUM
4:16-4:16
3
COMMA
4:17-4:17
,
expr
NUM
4:19-4:19
4
RBRACKET
4:20-4:20
)
EOF