source
prog
defn
FUN
1:1-1:3
fun
ID
1:5-1:5
a
LBRACKET
1:6-1:6
(
ID
1:7-1:8
ab
COLON
1:10-1:10
:
type
INT
1:12-1:14
int
COMMA
1:15-1:15
,
ID
1:17-1:18
E4
COLON
1:20-1:20
:
type
BOOL
1:22-1:25
bool
COMMA
1:26-1:26
,
ID
1:28-1:29
E5
COLON
1:31-1:31
:
type
BOOL
1:33-1:36
bool
COMMA
1:37-1:37
,
ID
1:39-1:40
E6
COLON
1:42-1:42
:
type
BOOL
1:44-1:47
bool
COMMA
1:48-1:48
,
ID
1:50-1:51
E7
COLON
1:53-1:53
:
type
BOOL
1:55-1:58
bool
COMMA
1:59-1:59
,
ID
1:61-1:62
E8
COLON
1:64-1:64
:
type
BOOL
1:66-1:69
bool
COMMA
1:70-1:70
,
ID
1:72-1:73
E9
COLON
1:75-1:75
:
type
BOOL
1:77-1:80
bool
COMMA
1:81-1:81
,
ID
1:83-1:85
E10
COLON
1:87-1:87
:
type
BOOL
1:89-1:92
bool
COMMA
1:93-1:93
,
ID
1:95-1:96
E3
COLON
1:98-1:98
:
type
BOOL
1:100-1:103
bool
RBRACKET
1:104-1:104
)
COLON
1:105-1:105
:
type
INT
1:107-1:109
int
EQUALS
1:111-1:111
=
expr
IF
1:113-1:114
if
expr
IF
1:116-1:117
if
expr
ID
1:119-1:120
E4
THEN
1:122-1:125
then
expr
ID
1:127-1:128
E5
COMMA
1:129-1:129
,
expr
ID
1:131-1:132
E6
ELSE
1:134-1:137
else
expr
ID
1:139-1:140
E7
COMMA
1:141-1:141
,
expr
ID
1:143-1:144
E8
END
1:146-1:148
end
THEN
1:150-1:153
then
expr
WHILE
1:155-1:159
while
expr
ID
1:161-1:162
E9
DO
1:164-1:165
do
expr
ID
1:167-1:169
E10
COMMA
1:170-1:170
,
expr
STRING
1:172-1:183
"QWERHBEQR "
COMMA
1:184-1:184
,
expr
LBRACKET
1:186-1:186
(
expr
IF
1:187-1:188
if
expr
ID
1:190-1:191
E4
THEN
1:193-1:196
then
expr
ID
1:198-1:199
E5
COMMA
1:200-1:200
,
expr
ID
1:202-1:203
E6
ELSE
1:205-1:208
else
expr
ID
1:210-1:211
E7
COMMA
1:212-1:212
,
expr
ID
1:214-1:215
E8
END
1:217-1:219
end
RBRACKET
1:220-1:220
)
COMMA
1:221-1:221
,
expr
ID
1:223-1:224
E3
END
1:226-1:228
end
END
1:230-1:232
end
EOF