source
prog
defn
TYP
1:1-1:3
typ
ID
1:5-1:7
idt
EQUALS
1:9-1:9
=
type
INT
1:11-1:13
int
defn
FUN
2:1-2:3
fun
ID
2:5-2:6
id
LBRACKET
2:8-2:8
(
ID
2:10-2:11
id
COLON
2:13-2:13
:
type
ID
2:15-2:17
idt
RBRACKET
2:19-2:19
)
COLON
2:21-2:21
:
type
LBRACKET
2:23-2:23
(
ID
2:24-2:24
a
COLON
2:25-2:25
:
type
LSQUARE
2:26-2:26
[
NUM
2:27-2:27
1
RSQUARE
2:28-2:28
]
type
LSQUARE
2:29-2:29
[
NUM
2:30-2:30
2
RSQUARE
2:31-2:31
]
type
LSQUARE
2:32-2:32
[
NUM
2:33-2:33
4
RSQUARE
2:34-2:34
]
type
LSQUARE
2:35-2:35
[
NUM
2:36-2:37
12
RSQUARE
2:38-2:38
]
type
VOID
2:39-2:42
void
RBRACKET
2:43-2:43
)
EQUALS
2:45-2:45
=
expr
ID
2:47-2:48
id
COMMA
2:49-2:49
,
expr
NUM
2:51-2:51
1
COMMA
2:52-2:52
,
expr
TRUE
2:54-2:57
true
COMMA
2:58-2:58
,
expr
FALSE
2:60-2:64
false
COMMA
2:65-2:65
,
expr
LITCHAR
2:67-2:69
'a'
COMMA
2:70-2:70
,
expr
STRING
2:72-2:76
"niz"
COMMA
2:77-2:77
,
expr
STRING
2:79-2:88
"niz spet"
COMMA
2:89-2:89
,
expr
NONE
2:91-2:94
none
COMMA
2:95-2:95
,
expr
NIL
2:97-2:99
nil
EOF