LET 2 TYPE 9 ID(any) 14 EQ 18 LBRACE 20 ID(any) 21 COLON 25 ID(int) 27 RBRACE 30 VAR 33 ID(buffer) 37 ASSIGN 44 ID(getchar) 47 LPAREN 54 RPAREN 55 FUNCTION 58 ID(readint) 67 LPAREN 74 ID(any) 75 COLON 78 ID(any) 80 RPAREN 83 COLON 85 ID(int) 87 EQ 91 LET 94 VAR 98 ID(i) 102 ASSIGN 104 INT(0) 107 FUNCTION 114 ID(isdigit) 123 LPAREN 130 ID(s) 131 COLON 133 ID(string) 135 RPAREN 141 COLON 143 ID(int) 145 EQ 149 ID(ord) 156 LPAREN 159 ID(s) 160 RPAREN 161 GE 162 ID(ord) 164 LPAREN 167 STRING(0) 168 RPAREN 171 AND 173 ID(ord) 175 LPAREN 178 ID(s) 179 RPAREN 180 LE 181 ID(ord) 183 LPAREN 186 STRING(9) 187 RPAREN 190 FUNCTION 197 ID(skipto) 206 LPAREN 212 RPAREN 213 EQ 215 WHILE 224 ID(buffer) 230 EQ 236 STRING( ) 237 OR 241 ID(buffer) 243 EQ 249 STRING( ) 250 DO 264 ID(buffer) 267 ASSIGN 274 ID(getchar) 277 LPAREN 284 RPAREN 285 IN 289 ID(skipto) 292 LPAREN 298 RPAREN 299 SEMICOLON 300 ID(any) 307 DOT 310 ID(any) 311 ASSIGN 315 ID(isdigit) 318 LPAREN 325 ID(buffer) 326 RPAREN 332 SEMICOLON 333 WHILE 340 ID(isdigit) 346 LPAREN 353 ID(buffer) 354 RPAREN 360 DO 369 LPAREN 372 ID(i) 373 ASSIGN 375 ID(i) 378 TIMES 379 INT(10) 380 PLUS 382 ID(ord) 383 LPAREN 386 ID(buffer) 387 RPAREN 393 MINUS 394 ID(ord) 395 LPAREN 398 STRING(0) 399 RPAREN 402 SEMICOLON 403 ID(buffer) 405 ASSIGN 412 ID(getchar) 415 LPAREN 422 RPAREN 423 RPAREN 424 SEMICOLON 425 ID(i) 432 END 435 TYPE 441 ID(list) 446 EQ 451 LBRACE 453 ID(first) 454 COLON 459 ID(int) 461 COMMA 464 ID(rest) 466 COLON 470 ID(list) 472 RBRACE 476 FUNCTION 480 ID(readlist) 489 LPAREN 497 RPAREN 498 COLON 500 ID(list) 502 EQ 507 LET 513 VAR 517 ID(any) 521 ASSIGN 525 ID(any) 528 LBRACE 531 ID(any) 532 EQ 535 INT(0) 536 RBRACE 537 VAR 547 ID(i) 551 ASSIGN 553 ID(readint) 556 LPAREN 563 ID(any) 564 RPAREN 567 IN 574 IF 577 ID(any) 580 DOT 583 ID(any) 584 THEN 597 ID(list) 602 LBRACE 606 ID(first) 607 EQ 612 ID(i) 613 COMMA 614 ID(rest) 615 EQ 619 ID(readlist) 620 LPAREN 628 RPAREN 629 RBRACE 630 ELSE 641 NIL 646 END 654 FUNCTION 660 ID(merge) 669 LPAREN 674 ID(a) 675 COLON 676 ID(list) 678 COMMA 682 ID(b) 684 COLON 685 ID(list) 687 RPAREN 691 COLON 693 ID(list) 695 EQ 700 IF 705 ID(a) 708 EQ 709 NIL 710 THEN 714 ID(b) 719 ELSE 724 IF 729 ID(b) 732 EQ 733 NIL 734 THEN 738 ID(a) 743 ELSE 748 IF 753 ID(a) 756 DOT 757 ID(first) 758 LT 764 ID(b) 766 DOT 767 ID(first) 768 THEN 781 ID(list) 786 LBRACE 790 ID(first) 791 EQ 796 ID(a) 797 DOT 798 ID(first) 799 COMMA 804 ID(rest) 805 EQ 809 ID(merge) 810 LPAREN 815 ID(a) 816 DOT 817 ID(rest) 818 COMMA 822 ID(b) 823 RPAREN 824 RBRACE 825 ELSE 833 ID(list) 838 LBRACE 842 ID(first) 843 EQ 848 ID(b) 849 DOT 850 ID(first) 851 COMMA 856 ID(rest) 857 EQ 861 ID(merge) 862 LPAREN 867 ID(a) 868 COMMA 869 ID(b) 870 DOT 871 ID(rest) 872 RPAREN 876 RBRACE 877 FUNCTION 881 ID(printint) 890 LPAREN 898 ID(i) 899 COLON 900 ID(int) 902 RPAREN 905 EQ 907 LET 911 FUNCTION 915 ID(f) 924 LPAREN 925 ID(i) 926 COLON 927 ID(int) 928 RPAREN 931 EQ 933 IF 935 ID(i) 938 GT 939 INT(0) 940 THEN 949 LPAREN 954 ID(f) 955 LPAREN 956 ID(i) 957 DIVIDE 958 INT(10) 959 RPAREN 961 SEMICOLON 962 ID(print) 964 LPAREN 969 ID(chr) 970 LPAREN 973 ID(i) 974 MINUS 975 ID(i) 976 DIVIDE 977 INT(10) 978 TIMES 980 INT(10) 981 PLUS 983 ID(ord) 984 LPAREN 987 STRING(0) 988 RPAREN 991 RPAREN 992 RPAREN 993 RPAREN 994 IN 999 IF 1002 ID(i) 1005 LT 1006 INT(0) 1007 THEN 1009 LPAREN 1014 ID(print) 1015 LPAREN 1020 STRING(-) 1021 RPAREN 1024 SEMICOLON 1025 ID(f) 1027 LPAREN 1028 MINUS 1029 ID(i) 1030 RPAREN 1031 RPAREN 1032 ELSE 1040 IF 1045 ID(i) 1048 GT 1049 INT(0) 1050 THEN 1052 ID(f) 1057 LPAREN 1058 ID(i) 1059 RPAREN 1060 ELSE 1068 ID(print) 1073 LPAREN 1078 STRING(0) 1079 RPAREN 1082 END 1086 FUNCTION 1092 ID(printlist) 1101 LPAREN 1110 ID(l) 1111 COLON 1112 ID(list) 1114 RPAREN 1118 EQ 1120 IF 1125 ID(l) 1128 EQ 1129 NIL 1130 THEN 1134 ID(print) 1139 LPAREN 1144 STRING( ) 1145 RPAREN 1149 ELSE 1154 LPAREN 1159 ID(printint) 1160 LPAREN 1168 ID(l) 1169 DOT 1170 ID(first) 1171 RPAREN 1176 SEMICOLON 1177 ID(print) 1179 LPAREN 1184 STRING( ) 1185 RPAREN 1188 SEMICOLON 1189 ID(printlist) 1191 LPAREN 1200 ID(l) 1201 DOT 1202 ID(rest) 1203 RPAREN 1207 RPAREN 1208 VAR 1214 ID(list1) 1218 ASSIGN 1224 ID(readlist) 1227 LPAREN 1235 RPAREN 1236 VAR 1241 ID(list2) 1245 ASSIGN 1251 LPAREN 1254 ID(buffer) 1255 ASSIGN 1261 ID(getchar) 1263 LPAREN 1270 RPAREN 1271 SEMICOLON 1272 ID(readlist) 1274 LPAREN 1282 RPAREN 1283 RPAREN 1284 IN 1318 ID(printlist) 1321 LPAREN 1330 ID(merge) 1331 LPAREN 1336 ID(list1) 1337 COMMA 1342 ID(list2) 1343 RPAREN 1348 RPAREN 1349 END 1351 EOF 1355