source
prog
defn
FUN
1:1-1:3
fun
ID
1:5-1:5
f
LBRACKET
1:6-1:6
(
RBRACKET
1:7-1:7
)
COLON
1:9-1:9
:
type
VOID
1:11-1:14
void
EQUALS
1:16-1:16
=
expr
LET
1:18-1:20
let
defn
FUN
1:22-1:24
fun
ID
1:26-1:26
f
LBRACKET
1:27-1:27
(
ID
1:28-1:28
a
COLON
1:30-1:30
:
type
INT
1:32-1:34
int
COMMA
1:35-1:35
,
ID
1:37-1:37
b
COLON
1:39-1:39
:
type
INT
1:41-1:43
int
COMMA
1:44-1:44
,
ID
1:46-1:46
c
COLON
1:48-1:48
:
type
INT
1:50-1:52
int
RBRACKET
1:53-1:53
)
COLON
1:54-1:54
:
type
VOID
1:55-1:58
void
IN
1:60-1:61
in
expr
LET
1:63-1:65
let
defn
FUN
1:67-1:69
fun
ID
1:71-1:71
f
LBRACKET
1:72-1:72
(
RBRACKET
1:73-1:73
)
COLON
1:74-1:74
:
type
VOID
1:75-1:78
void
IN
1:80-1:81
in
expr
LBRACKET
1:83-1:83
(
expr
ID
1:84-1:84
a
COMMA
1:85-1:85
,
expr
ID
1:87-1:87
b
COMMA
1:88-1:88
,
expr
ID
1:90-1:90
c
RBRACKET
1:91-1:91
)
END
1:93-1:95
end
COMMA
1:96-1:96
,
expr
LET
1:98-1:100
let
defn
FUN
1:102-1:104
fun
ID
1:106-1:106
f
LBRACKET
1:107-1:107
(
RBRACKET
1:108-1:108
)
COLON
1:109-1:109
:
type
INT
1:110-1:112
int
EQUALS
1:114-1:114
=
expr
expr
NUM
1:116-1:116
5
PLUS
1:117-1:117
+
expr
NUM
1:118-1:118
5
IN
1:120-1:121
in
expr
SIZEOF
1:123-1:128
sizeof
type
LSQUARE
1:130-1:130
[
NUM
1:131-1:132
10
RSQUARE
1:133-1:133
]
type
INT
1:134-1:136
int
END
1:138-1:140
end
END
1:142-1:144
end
EOF