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