source
prog
defn
TYP
1:2-1:4
typ
ID
1:6-1:7
vv
EQUALS
1:9-1:9
=
type
VOID
1:11-1:14
void
defn
FUN
3:2-3:4
fun
ID
3:6-3:7
f1
LBRACKET
3:8-3:8
(
ID
3:9-3:10
p1
COLON
3:11-3:11
:
type
LBRACKET
3:12-3:12
(
ID
3:13-3:13
i
COLON
3:14-3:14
:
type
INT
3:15-3:17
int
COMMA
3:18-3:18
,
ID
3:20-3:20
j
COLON
3:21-3:21
:
type
INT
3:22-3:24
int
RBRACKET
3:25-3:25
)
RBRACKET
3:26-3:26
)
COLON
3:27-3:27
:
type
INT
3:28-3:30
int
defn
FUN
4:2-4:4
fun
ID
4:6-4:7
f2
LBRACKET
4:8-4:8
(
ID
4:9-4:10
p2
COLON
4:11-4:11
:
type
LCURLY
4:12-4:12
{
ID
4:13-4:13
i
COLON
4:14-4:14
:
type
INT
4:15-4:17
int
COMMA
4:18-4:18
,
ID
4:20-4:20
j
COLON
4:21-4:21
:
type
INT
4:22-4:24
int
RCURLY
4:25-4:25
}
RBRACKET
4:26-4:26
)
COLON
4:27-4:27
:
type
CHAR
4:28-4:31
char
defn
FUN
5:2-5:4
fun
ID
5:6-5:7
f3
LBRACKET
5:8-5:8
(
ID
5:9-5:10
p3
COLON
5:11-5:11
:
type
LCURLY
5:12-5:12
{
ID
5:13-5:14
s1
COLON
5:15-5:15
:
type
LCURLY
5:17-5:17
{
ID
5:18-5:20
s21
COLON
5:21-5:21
:
type
LCURLY
5:22-5:22
{
ID
5:23-5:23
i
COLON
5:24-5:24
:
type
INT
5:25-5:27
int
COMMA
5:28-5:28
,
ID
5:30-5:30
j
COLON
5:31-5:31
:
type
INT
5:33-5:35
int
RCURLY
5:36-5:36
}
COMMA
5:37-5:37
,
ID
5:39-5:41
s22
COLON
5:42-5:42
:
type
LCURLY
5:43-5:43
{
ID
5:44-5:44
i
COLON
5:45-5:45
:
type
INT
5:46-5:48
int
COMMA
5:49-5:49
,
ID
5:51-5:51
j
COLON
5:52-5:52
:
type
INT
5:53-5:55
int
RCURLY
5:56-5:56
}
RCURLY
5:57-5:57
}
COMMA
5:58-5:58
,
ID
5:60-5:61
s2
COLON
5:62-5:62
:
type
LBRACKET
5:63-5:63
(
ID
5:64-5:64
i
COLON
5:65-5:65
:
type
INT
5:66-5:68
int
COMMA
5:69-5:69
,
ID
5:71-5:71
j
COLON
5:72-5:72
:
type
INT
5:74-5:76
int
RBRACKET
5:77-5:77
)
RCURLY
5:78-5:78
}
RBRACKET
5:79-5:79
)
COLON
5:80-5:80
:
type
BOOL
5:81-5:84
bool
defn
FUN
6:2-6:4
fun
ID
6:6-6:7
f4
LBRACKET
6:8-6:8
(
ID
6:9-6:10
p4
COLON
6:11-6:11
:
type
ID
6:12-6:13
vv
RBRACKET
6:14-6:14
)
COLON
6:15-6:15
:
type
ID
6:16-6:17
vv
EOF