1:1-1:3   TYP   typ 
 1:5-1:5   ID   i 
 1:7-1:7   EQUALS   = 
 1:9-1:11   INT   int 
 2:1-2:3   TYP   typ 
 2:5-2:5   ID   c 
 2:7-2:7   EQUALS   = 
 2:9-2:12   CHAR   char 
 3:1-3:3   TYP   typ 
 3:5-3:5   ID   b 
 3:7-3:7   EQUALS   = 
 3:9-3:12   BOOL   bool 
 5:1-5:3   VAR   var 
 5:5-5:6   ID   g1 
 5:8-5:8   COLON   : 
 5:10-5:10   ID   i 
 6:1-6:3   VAR   var 
 6:5-6:6   ID   g2 
 6:8-6:8   COLON   : 
 6:10-6:10   ID   i 
 8:1-8:3   FUN   fun 
 8:5-8:7   ID   ext 
 8:8-8:8   LBRACKET   ( 
 8:9-8:9   ID   a 
 8:11-8:11   COLON   : 
 8:13-8:13   ID   i 
 8:14-8:14   COMMA   , 
 8:16-8:17   ID   bb 
 8:19-8:19   COLON   : 
 8:21-8:21   ID   i 
 8:22-8:22   RBRACKET   ) 
 8:24-8:24   COLON   : 
 8:26-8:26   ID   i 
 10:1-10:3   FUN   fun 
 10:5-10:10   ID   helper 
 10:11-10:11   LBRACKET   ( 
 10:12-10:12   ID   x 
 10:14-10:14   COLON   : 
 10:16-10:16   ID   i 
 10:17-10:17   RBRACKET   ) 
 10:19-10:19   COLON   : 
 10:21-10:21   ID   b 
 10:23-10:23   EQUALS   = 
 11:5-11:5   ID   x 
 11:7-11:8   EEQUALS   == 
 11:10-11:10   NUM   0 
 13:1-13:3   FUN   fun 
 13:5-13:7   ID   fib 
 13:8-13:8   LBRACKET   ( 
 13:9-13:9   ID   n 
 13:11-13:11   COLON   : 
 13:13-13:13   ID   i 
 13:14-13:14   RBRACKET   ) 
 13:16-13:16   COLON   : 
 13:18-13:18   ID   i 
 13:20-13:20   EQUALS   = 
 14:5-14:6   IF   if 
 14:8-14:8   ID   n 
 14:10-14:11   EEQUALS   == 
 14:13-14:13   NUM   0 
 14:15-14:18   THEN   then 
 15:9-15:9   NUM   0 
 16:5-16:8   ELSE   else 
 17:9-17:10   IF   if 
 17:12-17:12   ID   n 
 17:14-17:15   EEQUALS   == 
 17:17-17:17   NUM   1 
 17:19-17:22   THEN   then 
 18:13-18:13   NUM   1 
 19:9-19:12   ELSE   else 
 20:13-20:15   ID   fib 
 20:16-20:16   LBRACKET   ( 
 20:17-20:17   ID   n 
 20:19-20:19   MINUS   - 
 20:21-20:21   NUM   1 
 20:22-20:22   RBRACKET   ) 
 20:24-20:24   PLUS   + 
 20:26-20:28   ID   fib 
 20:29-20:29   LBRACKET   ( 
 20:30-20:30   ID   n 
 20:32-20:32   MINUS   - 
 20:34-20:34   NUM   2 
 20:35-20:35   RBRACKET   ) 
 21:9-21:11   END   end 
 22:5-22:7   END   end 
 24:1-24:3   FUN   fun 
 24:5-24:8   ID   main 
 24:9-24:9   LBRACKET   ( 
 24:10-24:10   RBRACKET   ) 
 24:12-24:12   COLON   : 
 24:14-24:14   ID   i 
 24:16-24:16   EQUALS   = 
 25:5-25:7   LET   let 
 26:9-26:11   VAR   var 
 26:13-26:18   ID   local1 
 26:20-26:20   COLON   : 
 26:22-26:22   ID   i 
 27:9-27:11   VAR   var 
 27:13-27:18   ID   local2 
 27:20-27:20   COLON   : 
 27:22-27:22   ID   i 
 28:9-28:11   TYP   typ 
 28:13-28:14   ID   li 
 28:16-28:16   EQUALS   = 
 28:18-28:18   ID   i 
 29:9-29:11   FUN   fun 
 29:13-29:17   ID   inner 
 29:18-29:18   LBRACKET   ( 
 29:19-29:19   ID   a 
 29:21-29:21   COLON   : 
 29:23-29:24   ID   li 
 29:25-29:25   COMMA   , 
 29:27-29:28   ID   bb 
 29:30-29:30   COLON   : 
 29:32-29:33   ID   li 
 29:34-29:34   RBRACKET   ) 
 29:36-29:36   COLON   : 
 29:38-29:39   ID   li 
 29:41-29:41   EQUALS   = 
 30:13-30:15   LET   let 
 31:17-31:19   VAR   var 
 31:21-31:23   ID   tmp 
 31:25-31:25   COLON   : 
 31:27-31:28   ID   li 
 32:13-32:14   IN   in 
 33:17-33:19   ID   tmp 
 33:21-33:21   EQUALS   = 
 33:23-33:23   ID   a 
 33:25-33:25   PLUS   + 
 33:27-33:28   ID   bb 
 33:29-33:29   COMMA   , 
 34:17-34:19   ID   tmp 
 34:21-34:21   ASTERISK   * 
 34:23-34:23   NUM   2 
 35:13-35:15   END   end 
 36:5-36:6   IN   in 
 37:9-37:10   ID   g1 
 37:12-37:12   EQUALS   = 
 37:14-37:15   NUM   10 
 37:16-37:16   COMMA   , 
 38:9-38:10   ID   g2 
 38:12-38:12   EQUALS   = 
 38:14-38:15   NUM   20 
 38:16-38:16   COMMA   , 
 39:9-39:14   ID   local1 
 39:16-39:16   EQUALS   = 
 39:18-39:20   ID   fib 
 39:21-39:21   LBRACKET   ( 
 39:22-39:23   ID   g1 
 39:24-39:24   RBRACKET   ) 
 39:25-39:25   COMMA   , 
 40:9-40:14   ID   local2 
 40:16-40:16   EQUALS   = 
 40:18-40:22   ID   inner 
 40:23-40:23   LBRACKET   ( 
 40:24-40:25   ID   g1 
 40:26-40:26   COMMA   , 
 40:28-40:29   ID   g2 
 40:30-40:30   RBRACKET   ) 
 40:31-40:31   COMMA   , 
 41:9-41:11   LET   let 
 42:13-42:15   VAR   var 
 42:17-42:22   ID   shadow 
 42:24-42:24   COLON   : 
 42:26-42:26   ID   b 
 43:13-43:15   VAR   var 
 43:17-43:18   ID   g1 
 43:20-43:20   COLON   : 
 43:22-43:22   ID   b 
 44:9-44:10   IN   in 
 45:13-45:18   ID   shadow 
 45:20-45:20   EQUALS   = 
 45:22-45:27   ID   helper 
 45:28-45:28   LBRACKET   ( 
 45:29-45:34   ID   local1 
 45:35-45:35   RBRACKET   ) 
 45:36-45:36   COMMA   , 
 46:13-46:14   ID   g1 
 46:16-46:16   EQUALS   = 
 46:18-46:23   ID   shadow 
 46:25-46:27   AND   and 
 46:29-46:32   TRUE   true 
 46:34-46:35   OR   or 
 46:37-46:41   FALSE   false 
 46:42-46:42   COMMA   , 
 47:13-47:15   LET   let 
 48:17-48:19   VAR   var 
 48:21-48:24   ID   deep 
 48:26-48:26   COLON   : 
 48:28-48:28   ID   i 
 49:13-49:14   IN   in 
 50:17-50:20   ID   deep 
 50:22-50:22   EQUALS   = 
 50:24-50:26   ID   ext 
 50:27-50:27   LBRACKET   ( 
 50:28-50:33   ID   local1 
 50:34-50:34   COMMA   , 
 50:36-50:41   ID   local2 
 50:42-50:42   RBRACKET   ) 
 50:43-50:43   COMMA   , 
 51:17-51:18   IF   if 
 51:20-51:25   ID   helper 
 51:26-51:26   LBRACKET   ( 
 51:27-51:30   ID   deep 
 51:31-51:31   RBRACKET   ) 
 51:33-51:36   THEN   then 
 52:21-52:22   ID   g2 
 52:24-52:24   EQUALS   = 
 52:26-52:29   ID   deep 
 52:31-52:31   PLUS   + 
 52:33-52:33   NUM   1 
 53:17-53:20   ELSE   else 
 54:21-54:22   ID   g2 
 54:24-54:24   EQUALS   = 
 54:26-54:29   ID   deep 
 54:31-54:31   MINUS   - 
 54:33-54:33   NUM   1 
 55:17-55:19   END   end 
 55:20-55:20   COMMA   , 
 56:17-56:21   WHILE   while 
 56:23-56:24   ID   g2 
 56:26-56:26   GT   > 
 56:28-56:28   NUM   0 
 56:30-56:31   DO   do 
 57:21-57:22   IF   if 
 57:24-57:25   ID   g2 
 57:27-57:27   PERCENT   % 
 57:29-57:29   NUM   2 
 57:31-57:32   EEQUALS   == 
 57:34-57:34   NUM   0 
 57:36-57:39   THEN   then 
 58:25-58:26   ID   g2 
 58:28-58:28   EQUALS   = 
 58:30-58:31   ID   g2 
 58:33-58:33   MINUS   - 
 58:35-58:35   NUM   1 
 59:21-59:24   ELSE   else 
 60:25-60:26   ID   g2 
 60:28-60:28   EQUALS   = 
 60:30-60:31   ID   g2 
 60:33-60:33   ASTERISK   * 
 60:35-60:35   NUM   2 
 60:37-60:37   MINUS   - 
 60:39-60:39   NUM   3 
 61:21-61:23   END   end 
 62:17-62:19   END   end 
 62:20-62:20   COMMA   , 
 63:17-63:20   ID   deep 
 64:13-64:15   END   end 
 65:9-65:11   END   end 
 66:5-66:7   END   end 
    EOF