source
prog
defn
TYP
2:1-2:3
typ
ID
2:5-2:6
t1
EQUALS
2:8-2:8
=
type
LBRACKET
2:10-2:10
(
ID
2:11-2:11
i
COLON
2:12-2:12
:
type
INT
2:13-2:15
int
COMMA
2:16-2:16
,
ID
2:18-2:18
n
COLON
2:19-2:19
:
type
ID
2:21-2:22
t2
RBRACKET
2:23-2:23
)
defn
TYP
3:1-3:3
typ
ID
3:5-3:6
t2
EQUALS
3:8-3:8
=
type
LBRACKET
3:10-3:10
(
ID
3:11-3:11
j
COLON
3:12-3:12
:
type
INT
3:13-3:15
int
COMMA
3:16-3:16
,
ID
3:18-3:18
n
COLON
3:19-3:19
:
type
ID
3:21-3:22
t1
RBRACKET
3:23-3:23
)
defn
FUN
5:1-5:3
fun
ID
5:5-5:5
a
LBRACKET
5:6-5:6
(
RBRACKET
5:7-5:7
)
COLON
5:8-5:8
:
type
INT
5:9-5:11
int
EQUALS
5:13-5:13
=
expr
expr
ID
5:15-5:15
b
LBRACKET
5:16-5:16
(
RBRACKET
5:17-5:17
)
defn
FUN
6:1-6:3
fun
ID
6:5-6:5
b
LBRACKET
6:6-6:6
(
RBRACKET
6:7-6:7
)
COLON
6:8-6:8
:
type
INT
6:9-6:11
int
EQUALS
6:13-6:13
=
expr
expr
ID
6:15-6:15
a
LBRACKET
6:16-6:16
(
RBRACKET
6:17-6:17
)
EOF