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
(
RBRACKET
1:28-1:28
)
COLON
1:29-1:29
:
type
VOID
1:30-1:33
void
IN
1:35-1:36
in
expr
LET
1:38-1:40
let
defn
FUN
1:42-1:44
fun
ID
1:46-1:46
f
LBRACKET
1:47-1:47
(
RBRACKET
1:48-1:48
)
COLON
1:49-1:49
:
type
VOID
1:50-1:53
void
IN
1:55-1:56
in
expr
LBRACKET
1:58-1:58
(
expr
ID
1:59-1:59
a
COMMA
1:60-1:60
,
expr
ID
1:62-1:62
b
COMMA
1:63-1:63
,
expr
ID
1:65-1:65
c
RBRACKET
1:66-1:66
)
END
1:68-1:70
end
COMMA
1:71-1:71
,
expr
LET
1:73-1:75
let
defn
FUN
1:77-1:79
fun
ID
1:81-1:81
f
LBRACKET
1:82-1:82
(
RBRACKET
1:83-1:83
)
COLON
1:84-1:84
:
type
INT
1:85-1:87
int
EQUALS
1:89-1:89
=
expr
expr
NUM
1:91-1:91
5
PLUS
1:92-1:92
+
expr
NUM
1:93-1:93
5
IN
1:95-1:96
in
expr
SIZEOF
1:98-1:103
sizeof
type
LSQUARE
1:105-1:105
[
NUM
1:106-1:107
10
RSQUARE
1:108-1:108
]
type
INT
1:109-1:111
int
END
1:113-1:115
end
END
1:117-1:119
end
EOF