source
prog
defn
TYP
1:1-1:3
typ
ID
1:5-1:6
ii
EQUALS
1:8-1:8
=
type
INT
1:10-1:12
int
defn
FUN
3:1-3:3
fun
ID
3:5-3:8
main
LBRACKET
3:9-3:9
(
RBRACKET
3:10-3:10
)
COLON
3:11-3:11
:
type
INT
3:12-3:14
int
EQUALS
3:16-3:16
=
expr
LET
4:5-4:7
let
defn
FUN
4:9-4:11
fun
ID
4:13-4:13
c
LBRACKET
4:14-4:14
(
RBRACKET
4:15-4:15
)
COLON
4:16-4:16
:
type
INT
4:17-4:19
int
EQUALS
4:21-4:21
=
expr
expr
NUM
4:23-4:23
1
PLUS
4:25-4:25
+
expr
NUM
4:27-4:27
2
defn
FUN
5:9-5:11
fun
ID
5:13-5:13
b
LBRACKET
5:14-5:14
(
RBRACKET
5:15-5:15
)
COLON
5:16-5:16
:
type
ID
5:17-5:18
ii
EQUALS
5:20-5:20
=
expr
expr
expr
expr
NUM
5:22-5:22
5
ASTERISK
5:24-5:24
*
expr
NUM
5:26-5:26
4
PLUS
5:28-5:28
+
expr
NUM
5:30-5:30
7
PLUS
5:32-5:32
+
expr
NUM
5:34-5:34
9
IN
6:5-6:6
in
expr
expr
expr
expr
ID
7:9-7:9
c
LBRACKET
7:10-7:10
(
RBRACKET
7:11-7:11
)
ASTERISK
7:13-7:13
*
expr
expr
ID
7:15-7:15
b
LBRACKET
7:16-7:16
(
RBRACKET
7:17-7:17
)
PLUS
7:19-7:19
+
expr
NUM
7:21-7:23
100
END
8:5-8:7
end
EOF