KERMIT Receive start: Mon Jun 20 08:27:52 2022 <<< 01 39 20 53 7E 2F 20 40 2D 23 59 33 7E 5E 3E 4A .9 S~/ @-#Y3~^>J 29 30 5F 5F 5F 4E 22 55 31 40 47 )0___N"U1@G MARK=1 LEN=25 SEQ#=0 TYPE=SendInitiate DATA_LEN=22 Data: MAXL=94 TIME=15 NPAD=0 PADC=0 EOL=2d QCTL=# QBIN=Y CHKT=3 REPT=~ CAPAS=5e WINDO=3e MAXLX1=4a MAXLX2=29 >>> 01 30 20 59 BF 2A 20 40 2D 23 4E 31 7E 22 20 4A .0 Y.* @-#N1~" J 2A 58 *X MARK=1 LEN=16 SEQ#=0 TYPE=ACK DATA_LEN=13 <<< 01 2B 21 46 43 4B 57 41 52 54 2E 43 32 .+!FCKWART.C2 MARK=1 LEN=11 SEQ#=1 TYPE=FileHeader DATA_LEN=8 >>> 01 23 21 59 3F .#!Y? MARK=1 LEN=3 SEQ#=1 TYPE=ACK DATA_LEN=0 <<< 01 20 22 44 22 57 22 23 23 69 6E 63 6C 75 64 65 . "D"W"##include 20 22 63 6B 63 73 79 6D 2E 68 22 23 4D 23 4A 63 "ckcsym.h"#M#Jc 68 61 72 20 2A 77 61 72 74 76 20 3D 20 22 57 61 har *wartv = "Wa 72 74 20 56 65 72 73 69 6F 6E 20 32 2E 31 35 2C rt Version 2.15, 20 31 38 20 53 65 70 74 65 6D 62 65 72 20 32 30 18 September 20 32 30 20 22 3B 23 4D 23 4A 23 4D 23 4A 23 23 64 20 ";#M#J#M#J##d 65 66 69 6E 65 20 43 4B 57 41 52 54 5F 43 23 4D efine CKWART_C#M 23 4A 23 4D 23 4A 23 23 69 66 64 65 66 20 4D 44 #J#M#J##ifdef MD 45 42 55 47 23 4D 23 4A 2F 2A 20 55 73 65 20 74 EBUG#M#J/* Use t 68 65 20 72 65 61 6C 20 6F 6E 65 73 20 69 6E 20 he real ones in 74 68 69 73 20 6D 6F 64 75 6C 65 20 6F 6E 6C 79 this module only 20 2A 2F 23 4D 23 4A 23 23 69 66 64 65 66 20 6D */#M#J##ifdef m 61 6C 6C 6F 63 23 4D 23 4A 23 23 75 6E 64 65 66 alloc#M#J##undef 20 6D 61 6C 6C 6F 63 23 4D 23 4A 23 23 65 6E 64 malloc#M#J##end 69 66 20 2F 2A 20 6D 61 6C 6C 6F 63 20 2A 2F 23 if /* malloc */# 4D 23 4A 23 23 69 66 64 65 66 20 41 M#J##ifdef A MARK=1 LEN=0 SEQ#=2 TYPE=Data DATA_LEN=244 >>> 01 23 22 59 40 .#"Y@ MARK=1 LEN=3 SEQ#=2 TYPE=ACK DATA_LEN=0 <<< 01 20 23 44 25 2E 3D 63 61 6C 6C 6F 63 23 4D 23 . #D%.=calloc#M# 4A 23 23 75 6E 64 65 66 20 63 61 6C 6C 6F 63 23 J##undef calloc# 4D 23 4A 23 23 65 6E 64 69 66 20 2F 2A 20 63 61 M#J##endif /* ca 6C 6C 6F 63 20 2A 2F 23 4D 23 4A 23 23 69 66 64 lloc */#M#J##ifd 65 66 20 72 65 61 6C 6C 6F 63 23 4D 23 4A 23 23 ef realloc#M#J## 75 6E 64 65 66 20 72 65 61 6C 6C 6F 63 23 4D 23 undef realloc#M# 4A 23 23 65 6E 64 69 66 20 2F 2A 20 72 65 61 6C J##endif /* real 6C 6F 63 20 2A 2F 23 4D 23 4A 23 23 69 66 64 65 loc */#M#J##ifde 66 20 66 72 65 65 23 4D 23 4A 23 23 75 6E 64 65 f free#M#J##unde 66 20 66 72 65 65 23 4D 23 4A 23 23 65 6E 64 69 f free#M#J##endi 66 20 2F 2A 20 66 72 65 65 20 2A 2F 23 4D 23 4A f /* free */#M#J 23 23 65 6E 64 69 66 20 2F 2A 20 4D 44 45 42 55 ##endif /* MDEBU 47 20 2A 2F 23 4D 23 4A 23 4D 23 4A 23 23 69 66 G */#M#J#M#J##if 64 65 66 20 4D 41 43 23 4D 23 4A 23 23 64 65 66 def MAC#M#J##def 69 6E 65 20 56 4F 49 44 20 76 6F 69 64 23 4D 23 ine VOID void#M# 4A 23 23 65 6E 64 69 66 20 2F 2A 20 4D 41 43 20 J##endif /* MAC 2A 2F 23 4D 23 4A 23 4D 23 4A 2F 2A 20 57 20 41 */#M#J#M#J/* W A 20 52 20 54 20 2A 2F 23 4D 23 4A 23 4D 23 4A 2F R T */#M#J#M#J/ 2A 23 4D 23 4A 20 20 41 20 73 6D 61 6C 6C 20 73 *#M#J A small s 75 62 73 65 74 20 6F 66 20 22 6C 65 78 22 2E 23 ubset of "lex".# 4D 23 4A 23 4D 23 4A 20 20 41 75 74 68 6F 72 73 M#J#M#J Authors 3A 20 4A 65 66 66 20 44 61 6D 65 6E 73 2C 20 46 : Jeff Damens, F 72 61 6E 6B 20 64 61 20 43 72 75 7A 23 4D 23 4A rank da Cruz#M#J 20 20 43 6F 6C 75 6D 62 69 61 20 55 6E 69 76 65 Columbia Unive 72 73 69 74 79 20 43 65 6E 74 65 72 20 66 6F 72 rsity Center for 20 43 6F 6D 70 75 74 69 6E 67 20 41 63 74 69 76 Computing Activ 69 74 65 73 2E 23 4D 23 4A 20 20 46 69 72 73 74 ites.#M#J First 20 72 65 6C 65 61 73 65 64 20 4E 6F 76 65 6D 62 released Novemb 65 72 20 31 39 38 34 2E 23 4D 23 4A 20 20 43 6F er 1984.#M#J Co 70 79 72 69 67 68 74 20 28 43 29 20 31 39 38 34 pyright (C) 1984 2C 20 32 30 30 39 2C 23 4D 23 4A 7E 24 20 54 4F , 2009,#M#J~$ TO MARK=1 LEN=0 SEQ#=3 TYPE=Data DATA_LEN=488 >>> 01 23 23 59 41 .##YA MARK=1 LEN=3 SEQ#=3 TYPE=ACK DATA_LEN=0 <<< 01 20 24 44 2A 3B 50 72 75 73 74 65 65 73 20 6F . $D*;Prustees o 66 20 43 6F 6C 75 6D 62 69 61 20 55 6E 69 76 65 f Columbia Unive 72 73 69 74 79 20 69 6E 20 74 68 65 20 43 69 74 rsity in the Cit 79 20 6F 66 20 4E 65 77 20 59 6F 72 6B 2E 23 4D y of New York.#M 23 4A 7E 24 20 41 6C 6C 20 72 69 67 68 74 73 20 #J~$ All rights 72 65 73 65 72 76 65 64 2E 20 20 53 65 65 20 74 reserved. See t 68 65 20 43 2D 4B 65 72 6D 69 74 20 43 4F 50 59 he C-Kermit COPY 49 4E 47 2E 54 58 54 20 66 69 6C 65 20 6F 72 20 ING.TXT file or 74 68 65 23 4D 23 4A 7E 24 20 63 6F 70 79 72 69 the#M#J~$ copyri 67 68 74 20 74 65 78 74 20 69 6E 20 74 68 65 20 ght text in the 63 6B 63 6D 61 69 2E 63 20 6D 6F 64 75 6C 65 20 ckcmai.c module 66 6F 72 20 64 69 73 63 6C 61 69 6D 65 72 20 61 for disclaimer a 6E 64 20 70 65 72 6D 69 73 73 69 6F 6E 73 2E 23 nd permissions.# 4D 23 4A 2A 2F 23 4D 23 4A 23 4D 23 4A 2F 2A 23 M#J*/#M#J#M#J/*# 4D 23 4A 20 2A 20 69 6E 70 75 74 20 66 6F 72 6D M#J * input form 61 74 20 69 73 3A 23 4D 23 4A 20 2A 20 20 6C 69 at is:#M#J * li 6E 65 73 20 74 6F 20 62 65 20 63 6F 70 69 65 64 nes to be copied 20 7C 20 25 73 74 61 74 65 20 3C 73 74 61 74 65 | %state #M#J * 20 20 25 25 23 4D 23 4A 20 2A 20 3C 73 74 61 74 %%#M#J * | CHAR { a 63 74 69 6F 6E 73 20 7D 23 4D 23 4A 20 2A 20 7E ctions }#M#J * ~ 23 2E 23 4D 23 4A 20 2A 20 20 25 25 23 4D 23 4A #.#M#J * %%#M#J 20 2A 20 20 6D 6F 72 65 20 6C 69 6E 65 73 20 74 * more lines t 6F 20 62 65 20 63 6F 70 69 65 64 23 4D 23 4A 20 o be copied#M#J 2A 2F 23 4D 23 4A 23 4D 23 4A 23 23 69 6E 63 6C */#M#J#M#J##incl 75 64 65 20 22 63 6B 63 64 65 62 2E 68 22 7E 23 ude "ckcdeb.h"~# 09 2F 2A 20 49 6E 63 6C 75 64 65 73 20 2A 2F 23 ./* Includes */# 4D 23 4A 23 4D 23 4A 23 23 69 66 64 65 66 20 53 M#J#M#J##ifdef S 54 52 41 54 55 53 23 4D 23 4A 2F 2A 20 41 63 74 TRATUS#M#J/* Act 75 61 6C 6C 79 20 63 61 6C 6C 20 70 72 69 6E 74 ually call print 66 2C 20 6E 6F 74 20 6F 75 72 20 70 72 69 6E 74 f, not our print 66 2D 63 61 74 63 68 65 72 20 66 6F 72 20 4B 65 f-catcher for Ke 72 6D 69 74 20 2A 2F 23 4D 23 4A 23 23 69 66 64 rmit */#M#J##ifd 65 66 20 70 72 69 6E 74 66 23 4D 23 4A 23 23 75 ef printf#M#J##u 6E 64 65 66 20 70 72 69 6E 74 66 23 4D 23 4A 23 ndef printf#M#J# 23 65 6E 64 69 66 20 2F 2A 20 70 72 69 6E 74 66 #endif /* printf 20 2A 2F 23 4D 23 4A 23 23 69 66 64 65 66 20 66 */#M#J##ifdef f 70 72 69 6E 74 66 23 4D 23 4A 23 23 75 6E 64 65 printf#M#J##unde 66 20 66 70 72 69 6E 74 66 23 4D 23 4A 23 23 65 f fprintf#M#J##e 6E 64 69 66 20 2F 2A 20 66 70 72 69 6E 74 66 20 ndif /* fprintf 2A 2F 23 4D 23 4A 23 23 65 6E 64 69 66 20 2F 2A */#M#J##endif /* 20 53 54 52 41 54 55 53 20 2A 2F 23 4D 23 4A 23 STRATUS */#M#J# 4D 23 4A 23 23 69 66 64 65 66 20 4D 41 43 23 4D M#J##ifdef MAC#M 23 4A 2F 2A 20 53 61 6D 65 20 64 65 61 6C 20 66 #J/* Same deal f 6F 72 20 4D 61 63 69 6E 74 6F 73 68 20 2A 2F 23 or Macintosh */# 4D 23 4A 23 23 69 66 64 65 66 20 70 72 69 6E 74 M#J##ifdef print 66 23 4D 23 4A 23 23 75 6E 64 65 66 20 70 72 69 f#M#J##undef pri 6E 74 66 23 4D 23 4A 23 23 65 6E 64 69 66 20 2F ntf#M#J##endif / 2A 20 70 72 69 6E 74 66 20 2A 2F 23 4D 23 4A 23 * printf */#M#J# 23 69 66 64 65 66 20 66 70 72 69 6E 74 66 23 4D #ifdef fprintf#M 23 4A 23 23 75 6E 64 65 66 20 66 70 72 69 6E 74 #J##undef fprint 66 23 4D 23 4A 23 23 65 6E 64 69 66 20 2F 2A 20 f#M#J##endif /* 66 70 72 69 6E 74 66 20 2A 2F 23 4D 23 4A 23 23 fprintf */#M#J## 65 6E 64 69 66 20 2F 2A 20 4D 41 43 20 2A 2F 23 endif /* MAC */# 4D 23 4A 23 4D 23 4A 23 23 69 66 64 65 66 20 55 M#J#M#J##ifdef U 4E 49 58 23 4D 23 4A 2F 2A 20 41 6E 64 20 55 4E NIX#M#J/* And UN 49 58 20 2A 2F 23 4D 23 4A 23 23 69 66 64 65 66 IX */#M#J##ifdef 20 70 72 69 6E 74 66 23 4D 23 4A 23 23 75 6E 64 printf#M#J##und 65 66 20 70 72 69 6E 74 66 23 4D 23 4A 23 23 65 ef printf#M#J##e 6E 64 69 66 20 2F 2A 5C ndif /*\ MARK=1 LEN=0 SEQ#=4 TYPE=Data DATA_LEN=976 >>> 01 23 24 59 42 .#$YB MARK=1 LEN=3 SEQ#=4 TYPE=ACK DATA_LEN=0 <<< 01 20 25 44 34 55 32 20 70 72 69 6E 74 66 20 2A . %D4U2 printf * 2F 23 4D 23 4A 23 23 69 66 64 65 66 20 66 70 72 /#M#J##ifdef fpr 69 6E 74 66 23 4D 23 4A 23 23 75 6E 64 65 66 20 intf#M#J##undef 66 70 72 69 6E 74 66 23 4D 23 4A 23 23 65 6E 64 fprintf#M#J##end 69 66 20 2F 2A 20 66 70 72 69 6E 74 66 20 2A 2F if /* fprintf */ 23 4D 23 4A 23 23 65 6E 64 69 66 20 2F 2A 20 55 #M#J##endif /* U 4E 49 58 20 2A 2F 23 4D 23 4A 2F 2A 23 4D 23 4A NIX */#M#J/*#M#J 20 20 54 68 65 20 66 6F 6C 6C 6F 77 69 6E 67 20 The following 22 63 68 61 72 22 20 73 68 6F 75 6C 64 20 62 65 "char" should be 20 63 68 61 6E 67 65 64 20 74 6F 20 22 73 68 6F changed to "sho 72 74 22 2C 20 22 69 6E 74 22 2C 20 6F 72 20 22 rt", "int", or " 6C 6F 6E 67 22 20 69 66 20 79 6F 75 72 23 4D 23 long" if your#M# 4A 20 20 77 61 72 74 20 70 72 6F 67 72 61 6D 20 J wart program 77 69 6C 6C 20 67 65 6E 65 72 61 74 65 20 6D 6F will generate mo 72 65 20 74 68 61 6E 20 31 32 37 20 73 74 61 74 re than 127 stat 65 73 2E 20 20 53 69 6E 63 65 20 77 61 72 74 20 es. Since wart 69 73 20 75 73 65 64 20 6D 61 69 6E 6C 79 23 4D is used mainly#M 23 4A 20 20 77 69 74 68 20 43 2D 4B 65 72 6D 69 #J with C-Kermi 74 2C 20 77 68 69 63 68 20 68 61 73 20 61 62 6F t, which has abo 75 74 20 38 30 20 73 74 61 74 65 73 2C 20 22 63 ut 80 states, "c 68 61 72 22 20 69 73 20 61 64 65 71 75 61 74 65 har" is adequate 2E 20 20 54 68 69 73 20 6B 65 65 70 73 23 4D 23 . This keeps#M# 4A 20 20 74 68 65 20 70 72 6F 67 72 61 6D 20 61 J the program a 62 6F 75 74 20 33 4B 2D 34 4B 20 73 6D 61 6C 6C bout 3K-4K small 65 72 2C 20 77 68 69 63 68 20 63 61 6E 20 62 65 er, which can be 20 63 72 69 74 69 63 61 6C 20 6F 6E 20 31 36 2D critical on 16- 62 69 74 23 4D 23 4A 20 20 61 72 63 68 69 74 65 bit#M#J archite 63 74 75 72 65 73 2E 23 4D 23 4A 2A 2F 23 4D 23 ctures.#M#J*/#M# 4A 23 23 69 66 64 65 66 20 49 52 49 58 36 30 23 J##ifdef IRIX60# 4D 23 4A 2F 2A 23 4D 23 4A 20 20 41 6C 73 6F 20 M#J/*#M#J Also 75 73 65 20 73 68 6F 72 74 20 6F 72 20 69 6E 74 use short or int 20 69 66 20 79 6F 75 72 20 63 6F 6D 70 69 6C 65 if your compile 72 20 63 6F 6D 70 6C 61 69 6E 73 20 69 6E 6F 72 r complains inor 64 69 6E 61 74 65 6C 79 20 61 62 6F 75 74 23 4D dinately about#M 23 4A 20 20 22 69 6E 74 65 67 65 72 20 63 6F 6E #J "integer con 76 65 72 73 69 6F 6E 20 72 65 73 75 6C 74 65 64 version resulted 20 69 6E 20 61 20 63 68 61 6E 67 65 20 6F 66 20 in a change of 73 69 67 6E 22 7E 23 2E 23 4D 23 4A 2A 2F 23 4D sign"~#.#M#J*/#M 23 4A 23 23 64 65 66 69 6E 65 20 54 42 4C 5F 54 #J##define TBL_T 59 50 45 20 22 73 68 6F 72 74 22 09 09 2F 2A 20 YPE "short"../* 43 20 64 61 74 61 20 74 79 70 65 20 6F 66 20 73 C data type of s 74 61 74 65 20 74 61 62 6C 65 20 2A 2F 23 4D 23 tate table */#M# 4A 23 23 65 6C 73 65 23 4D 23 4A 23 23 64 65 66 J##else#M#J##def 69 6E 65 20 54 42 4C 5F 54 59 50 45 20 22 63 68 ine TBL_TYPE "ch 61 72 22 7E 23 09 2F 2A 20 43 20 64 61 74 61 20 ar"~#./* C data 74 79 70 65 20 6F 66 20 73 74 61 74 65 20 74 61 type of state ta 62 6C 65 20 2A 2F 23 4D 23 4A 23 23 65 6E 64 69 ble */#M#J##endi 66 20 2F 2A 20 49 52 49 58 36 30 20 2A 2F 23 4D f /* IRIX60 */#M 23 4A 23 4D 23 4A 23 23 64 65 66 69 6E 65 20 43 #J#M#J##define C 5F 4C 20 30 31 34 7E 24 09 2F 2A 20 46 6F 72 6D _L 014~$./* Form 66 65 65 64 20 2A 2F 23 4D 23 4A 23 4D 23 4A 23 feed */#M#J#M#J# 23 64 65 66 69 6E 65 20 53 45 50 20 31 7E 24 09 #define SEP 1~$. 2F 2A 20 54 6F 6B 65 6E 20 74 79 70 65 73 20 2A /* Token types * 2F 23 4D 23 4A 23 23 64 65 66 69 6E 65 20 4C 42 /#M#J##define LB 52 41 43 4B 20 32 23 4D 23 4A 23 23 64 65 66 69 RACK 2#M#J##defi 6E 65 20 52 42 52 41 43 4B 20 33 23 4D 23 4A 23 ne RBRACK 3#M#J# 23 64 65 66 69 6E 65 20 57 4F 52 44 20 34 23 4D #define WORD 4#M 23 4A 23 23 64 65 66 69 6E 65 20 43 4F 4D 4D 41 #J##define COMMA 20 35 23 4D 23 4A 23 4D 23 4A 2F 2A 20 53 74 6F 5#M#J#M#J/* Sto 72 61 67 65 20 73 69 7A 65 73 20 2A 2F 23 4D 23 rage sizes */#M# 4A 23 4D 23 4A 23 23 64 65 66 69 6E 65 20 4D 41 J#M#J##define MA 58 53 54 41 54 45 53 20 35 30 7E 23 09 2F 2A 20 XSTATES 50~#./* 6D 61 78 20 6E 75 6D 62 65 72 20 6F 66 20 73 74 max number of st 61 74 65 73 20 2A 2F 23 4D 23 4A 23 23 64 65 66 ates */#M#J##def 69 6E 65 20 4D 41 58 57 4F 52 44 20 35 30 7E 23 ine MAXWORD 50~# 09 2F 2A 20 6D 61 78 20 23 23 20 6F 66 20 63 68 ./* max ## of ch 61 72 73 2F 77 6F 72 64 20 2A 2F 23 4D 23 4A 23 ars/word */#M#J# 23 64 65 66 69 6E 65 20 53 42 59 54 45 53 20 28 #define SBYTES ( 28 4D 41 58 53 54 41 54 45 53 2B 36 29 2F 38 29 (MAXSTATES+6)/8) 09 2F 2A 20 23 23 20 6F 66 20 62 79 74 65 73 20 ./* ## of bytes 66 6F 72 20 73 74 61 74 65 20 62 69 74 6D 61 73 for state bitmas 6B 20 2A 2F 23 4D 23 4A 23 4D 23 4A 2F 2A 20 4E k */#M#J#M#J/* N 61 6D 65 20 6F 66 20 77 61 72 74 20 66 75 6E 63 ame of wart func 74 69 6F 6E 20 69 6E 20 67 65 6E 65 72 61 74 65 tion in generate 64 20 70 72 6F 67 72 61 6D 20 2A 2F 23 4D 23 4A d program */#M#J 23 4D 23 4A 23 23 69 66 6E 64 65 66 20 46 4E 41 #M#J##ifndef FNA 4D 45 23 4D 23 4A 23 23 64 65 66 69 6E 65 20 46 ME#M#J##define F 4E 41 4D 45 20 22 77 61 72 74 22 23 4D 23 4A 23 NAME "wart"#M#J# 23 65 6E 64 69 66 20 2F 2A 20 46 4E 41 4D 45 20 #endif /* FNAME 2A 2F 23 4D 23 4A 23 4D 23 4A 2F 2A 20 53 74 72 */#M#J#M#J/* Str 75 63 74 75 72 65 20 66 6F 72 20 73 74 61 74 65 ucture for state 20 69 6E 66 6F 72 6D 61 74 69 6F 6E 20 2A 2F 23 information */# 4D 23 4A 23 4D 23 4A 73 74 72 75 63 74 20 74 72 M#J#M#Jstruct tr 61 6E 73 78 20 7B 23 4D 23 4A 7E 24 20 43 48 41 ansx {#M#J~$ CHA 52 20 73 74 61 74 65 73 5B 53 42 59 54 45 53 5D R states[SBYTES] 3B 09 09 2F 2A 20 69 6E 63 6C 75 64 65 64 20 73 ;../* included s 74 61 74 65 73 20 2A 2F 23 4D 23 4A 7E 24 20 69 tates */#M#J~$ i 6E 74 20 61 6E 79 73 74 3B 7E 24 09 2F 2A 20 74 nt anyst;~$./* t 72 75 65 20 69 66 20 74 68 69 73 20 67 6F 6F 64 rue if this good 20 66 72 6F 6D 20 61 6E 79 20 73 74 61 74 65 20 from any state 2A 2F 23 4D 23 4A 7E 24 20 43 48 41 52 20 69 6E */#M#J~$ CHAR in 63 68 72 3B 7E 24 09 2F 2A 20 69 6E 70 75 74 20 chr;~$./* input 63 68 61 72 61 63 74 65 72 20 2A 2F 23 4D 23 4A character */#M#J 7E 24 20 69 6E 74 20 61 63 74 6E 6F 3B 7E 24 09 ~$ int actno;~$. 2F 2A 20 61 73 73 6F 63 69 61 74 65 64 20 61 63 /* associated ac 74 69 6F 6E 20 2A 2F 23 4D 23 4A 7E 24 20 73 74 tion */#M#J~$ st 72 75 63 74 20 74 72 61 6E 73 78 20 2A 6E 78 74 ruct transx *nxt 3B 23 4D 23 4A 7D 3B 7E 25 09 2F 2A 20 6E 65 78 ;#M#J};~%./* nex 74 20 74 72 61 6E 73 69 74 69 6F 6E 20 2A 2F 23 t transition */# 4D 23 4A 74 79 70 65 64 65 66 20 73 74 72 75 63 M#Jtypedef struc 74 20 74 72 61 6E 73 78 20 2A 74 72 61 6E 73 3B t transx *trans; 23 4D 23 4A 23 4D 23 4A 2F 2A 20 46 75 6E 63 74 #M#J#M#J/* Funct 69 6F 6E 20 70 72 6F 74 6F 74 79 70 65 73 20 2A ion prototypes * 2F 23 4D 23 4A 23 4D 23 4A 5F 50 52 4F 54 4F 54 /#M#J#M#J_PROTOT 59 50 28 20 56 4F 49 44 20 73 65 74 77 73 74 61 YP( VOID setwsta 74 65 2C 20 28 69 6E 74 2C 20 74 72 61 6E 73 29 te, (int, trans) 20 29 3B 23 4D 23 4A 5F 50 52 4F 54 4F 54 59 50 );#M#J_PROTOTYP 28 20 69 6E 74 20 74 65 73 74 73 74 61 74 65 2C ( int teststate, 20 28 69 6E 74 2C 20 74 72 61 6E 73 29 20 29 3B (int, trans) ); 23 4D 23 4A 5F 50 52 4F 54 4F 54 59 50 28 20 74 #M#J_PROTOTYP( t 72 61 6E 73 20 72 64 69 6E 70 75 74 2C 20 28 46 rans rdinput, (F 49 4C 45 20 2A 2C 20 46 49 4C 45 20 2A 29 20 29 ILE *, FILE *) ) 3B 23 4D 23 4A 5F 50 52 4F 54 4F 54 59 50 28 20 ;#M#J_PROTOTYP( 56 4F 49 44 20 69 6E 69 74 69 61 6C 2C 20 28 46 VOID initial, (F 49 4C 45 20 2A 2C 20 46 49 4C 45 20 2A 29 20 29 ILE *, FILE *) ) 3B 23 4D 23 4A 5F 50 52 4F 54 4F 54 59 50 28 20 ;#M#J_PROTOTYP( 69 6E 74 20 69 73 69 6E 2C 20 28 63 68 61 72 20 int isin, (char 2A 2C 20 69 6E 74 29 20 29 3B 23 4D 23 4A 5F 50 *, int) );#M#J_P 52 4F 54 4F 54 59 50 28 20 69 6E 74 20 69 73 77 ROTOTYP( int isw 6F 72 64 2C 20 28 69 6E 74 29 20 29 3B 23 4D 23 ord, (int) );#M# 4A 5F 50 52 4F 54 4F 54 59 50 28 20 56 4F 49 44 J_PROTOTYP( VOID 20 72 64 77 6F 72 64 2C 20 28 46 49 4C 45 20 2A rdword, (FILE * 2C 20 63 68 61 72 20 36 , char 6 MARK=1 LEN=0 SEQ#=5 TYPE=Data DATA_LEN=1952 >>> 01 23 25 59 43 .#%YC MARK=1 LEN=3 SEQ#=5 TYPE=ACK DATA_LEN=0 <<< 01 20 26 44 49 2A 20 2A 29 20 29 3B 23 4D 23 4A . &DI* *) );#M#J 5F 50 52 4F 54 4F 54 59 50 28 20 56 4F 49 44 20 _PROTOTYP( VOID 72 64 73 74 61 74 65 73 2C 20 28 46 49 4C 45 20 rdstates, (FILE 2A 2C 20 46 49 4C 45 20 2A 29 20 29 3B 23 4D 23 *, FILE *) );#M# 4A 5F 50 52 4F 54 4F 54 59 50 28 20 74 72 61 6E J_PROTOTYP( tran 73 20 6E 65 77 74 72 61 6E 73 2C 20 28 76 6F 69 s newtrans, (voi 64 29 20 29 3B 23 4D 23 4A 5F 50 52 4F 54 4F 54 d) );#M#J_PROTOT 59 50 28 20 74 72 61 6E 73 20 72 64 72 75 6C 65 YP( trans rdrule 73 2C 20 28 46 49 4C 45 20 2A 2C 20 46 49 4C 45 s, (FILE *, FILE 20 2A 29 20 29 3B 23 4D 23 4A 5F 50 52 4F 54 4F *) );#M#J_PROTO 54 59 50 28 20 56 4F 49 44 20 73 74 61 74 65 6C TYP( VOID statel 69 73 74 2C 20 28 46 49 4C 45 20 2A 2C 20 74 72 ist, (FILE *, tr 61 6E 73 29 20 29 3B 23 4D 23 4A 5F 50 52 4F 54 ans) );#M#J_PROT 4F 54 59 50 28 20 56 4F 49 44 20 63 6F 70 79 61 OTYP( VOID copya 63 74 2C 20 28 46 49 4C 45 20 2A 2C 20 46 49 4C ct, (FILE *, FIL 45 20 2A 2C 20 69 6E 74 29 20 29 3B 23 4D 23 4A E *, int) );#M#J 5F 50 52 4F 54 4F 54 59 50 28 20 69 6E 74 20 66 _PROTOTYP( int f 61 63 74 69 6F 6E 2C 20 28 74 72 61 6E 73 2C 20 action, (trans, 69 6E 74 2C 20 69 6E 74 29 20 29 3B 23 4D 23 4A int, int) );#M#J 5F 50 52 4F 54 4F 54 59 50 28 20 56 4F 49 44 20 _PROTOTYP( VOID 65 6D 70 74 79 74 62 6C 2C 20 28 76 6F 69 64 29 emptytbl, (void) 20 29 3B 23 4D 23 4A 5F 50 52 4F 54 4F 54 59 50 );#M#J_PROTOTYP 28 20 56 4F 49 44 20 61 64 64 61 63 74 69 6F 6E ( VOID addaction 2C 20 28 69 6E 74 2C 20 69 6E 74 2C 20 69 6E 74 , (int, int, int 29 20 29 3B 23 4D 23 4A 5F 50 52 4F 54 4F 54 59 ) );#M#J_PROTOTY 50 28 20 56 4F 49 44 20 77 72 69 74 65 74 62 6C P( VOID writetbl 2C 20 28 46 49 4C 45 20 2A 29 20 29 3B 23 4D 23 , (FILE *) );#M# 4A 5F 50 52 4F 54 4F 54 59 50 28 20 56 4F 49 44 J_PROTOTYP( VOID 20 77 61 72 72 61 79 2C 20 28 46 49 4C 45 20 2A warray, (FILE * 2C 20 63 68 61 72 20 2A 2C 20 69 6E 74 20 5B 5D , char *, int [] 2C 20 69 6E 74 2C 20 63 68 61 72 20 2A 29 20 29 , int, char *) ) 3B 23 4D 23 4A 5F 50 52 4F 54 4F 54 59 50 28 20 ;#M#J_PROTOTYP( 56 4F 49 44 20 70 72 6F 6C 6F 67 2C 20 28 46 49 VOID prolog, (FI 4C 45 20 2A 29 20 29 3B 23 4D 23 4A 5F 50 52 4F LE *) );#M#J_PRO 54 4F 54 59 50 28 20 56 4F 49 44 20 65 70 69 6C TOTYP( VOID epil 6F 67 75 65 2C 20 28 46 49 4C 45 20 2A 29 20 29 ogue, (FILE *) ) 3B 23 4D 23 4A 5F 50 52 4F 54 4F 54 59 50 28 20 ;#M#J_PROTOTYP( 56 4F 49 44 20 63 6F 70 79 72 65 73 74 2C 20 28 VOID copyrest, ( 46 49 4C 45 20 2A 2C 20 46 49 4C 45 20 2A 29 20 FILE *, FILE *) 29 3B 23 4D 23 4A 5F 50 52 4F 54 4F 54 59 50 28 );#M#J_PROTOTYP( 20 69 6E 74 20 67 65 74 74 6F 6B 65 6E 2C 20 28 int gettoken, ( 46 49 4C 45 20 2A 29 20 29 3B 23 4D 23 4A 5F 50 FILE *) );#M#J_P 52 4F 54 4F 54 59 50 28 20 56 4F 49 44 20 72 64 ROTOTYP( VOID rd 63 6D 6E 74 2C 20 28 46 49 4C 45 20 2A 29 20 29 cmnt, (FILE *) ) 3B 23 4D 23 4A 5F 50 52 4F 54 4F 54 59 50 28 20 ;#M#J_PROTOTYP( 56 4F 49 44 20 63 6C 72 68 61 73 68 2C 20 28 76 VOID clrhash, (v 6F 69 64 29 20 29 3B 23 4D 23 4A 5F 50 52 4F 54 oid) );#M#J_PROT 4F 54 59 50 28 20 69 6E 74 20 68 61 73 68 2C 20 OTYP( int hash, 28 63 68 61 72 20 2A 29 20 29 3B 23 4D 23 4A 5F (char *) );#M#J_ 50 52 4F 54 4F 54 59 50 28 20 56 4F 49 44 20 65 PROTOTYP( VOID e 6E 74 65 72 2C 20 28 63 68 61 72 20 2A 2C 20 69 nter, (char *, i 6E 74 29 20 29 3B 23 4D 23 4A 5F 50 52 4F 54 4F nt) );#M#J_PROTO 54 59 50 28 20 69 6E 74 20 6C 6B 75 70 2C 20 28 TYP( int lkup, ( 63 68 61 72 20 2A 29 20 29 3B 23 4D 23 4A 5F 50 char *) );#M#J_P 52 4F 54 4F 54 59 50 28 20 73 74 61 74 69 63 20 ROTOTYP( static 63 68 61 72 2A 20 63 6F 70 79 2C 20 28 63 68 61 char* copy, (cha 72 20 2A 73 29 20 29 3B 23 4D 23 4A 23 4D 23 4A r *s) );#M#J#M#J 2F 2A 20 56 61 72 69 61 62 6C 65 73 20 61 6E 64 /* Variables and 20 74 61 62 6C 65 73 20 2A 2F 23 4D 23 4A 23 4D tables */#M#J#M 23 4A 2F 2A 20 6C 74 20 31 39 39 32 2D 31 30 2D #J/* lt 1992-10- 30 38 20 42 65 67 69 6E 23 4D 23 4A 20 2A 20 70 08 Begin#M#J * p 72 6F 76 69 64 65 20 64 65 66 69 6E 69 74 69 6F rovide definitio 6E 20 66 6F 72 20 64 65 62 6C 6F 67 20 76 61 72 n for deblog var 69 61 62 6C 65 23 4D 23 4A 20 2A 20 63 6B 63 64 iable#M#J * ckcd 65 62 2E 68 20 64 65 63 6C 61 72 65 73 20 61 73 eb.h declares as 20 65 78 74 65 72 6E 2E 20 44 45 43 43 20 41 58 extern. DECC AX 50 20 69 73 20 73 74 72 69 63 74 20 61 62 6F 75 P is strict abou 74 20 72 65 66 2F 64 65 66 20 6D 6F 64 65 6C 23 t ref/def model# 4D 23 4A 20 2A 20 56 61 72 69 61 62 6C 65 20 69 M#J * Variable i 73 20 75 6E 75 73 65 64 20 68 65 72 65 69 6E 2C s unused herein, 20 74 6F 20 74 68 65 20 62 65 73 74 20 6F 66 20 to the best of 6D 79 20 6B 6E 6F 77 6C 65 64 67 65 2E 23 4D 23 my knowledge.#M# 4A 20 2A 2F 23 4D 23 4A 23 23 69 66 64 65 66 20 J */#M#J##ifdef 56 4D 53 23 4D 23 4A 69 6E 74 20 64 65 62 6C 6F VMS#M#Jint deblo 67 3B 23 4D 23 4A 23 23 65 6E 64 69 66 20 2F 2A g;#M#J##endif /* 20 56 4D 53 20 2A 2F 23 4D 23 4A 2F 2A 20 6C 74 VMS */#M#J/* lt 20 31 39 39 32 2D 31 30 2D 30 38 20 45 6E 64 23 1992-10-08 End# 4D 23 4A 20 2A 2F 23 4D 23 4A 23 4D 23 4A 73 74 M#J */#M#J#M#Jst 61 74 69 63 20 69 6E 74 20 6C 69 6E 65 73 2C 20 atic int lines, 6E 73 74 61 74 65 73 2C 20 6E 61 63 74 73 3B 23 nstates, nacts;# 4D 23 4A 23 4D 23 4A 73 74 61 74 69 63 20 63 68 M#J#M#Jstatic ch 61 72 20 74 6F 6B 76 61 6C 5B 4D 41 58 57 4F 52 ar tokval[MAXWOR 44 5D 3B 23 4D 23 4A 23 4D 23 4A 73 74 61 74 69 D];#M#J#M#Jstati 63 20 69 6E 74 20 74 62 6C 5B 4D 41 58 53 54 41 c int tbl[MAXSTA 54 45 53 2A 39 36 5D 3B 23 4D 23 4A 23 4D 23 4A TES*96];#M#J#M#J 63 68 61 72 20 2A 74 62 6C 5F 74 79 70 65 20 3D char *tbl_type = 20 54 42 4C 5F 54 59 50 45 3B 23 4D 23 4A 23 4D TBL_TYPE;#M#J#M 23 4A 63 68 61 72 20 2A 74 78 74 31 20 3D 20 22 #Jchar *txt1 = " 5C 6E 23 23 64 65 66 69 6E 65 20 42 45 47 49 4E \n##define BEGIN 20 73 74 61 74 65 20 3D 5C 6E 5C 6E 69 6E 74 20 state =\n\nint 73 74 61 74 65 20 3D 20 30 3B 5C 6E 5C 6E 69 6E state = 0;\n\nin 74 5C 6E 22 3B 23 4D 23 4A 23 4D 23 4A 63 68 61 t\n";#M#J#M#Jcha 72 20 2A 66 6E 61 6D 65 20 3D 20 46 4E 41 4D 45 r *fname = FNAME 3B 7E 23 09 2F 2A 20 47 65 6E 65 72 61 74 65 64 ;~#./* Generated 20 66 75 6E 63 74 69 6F 6E 20 6E 61 6D 65 20 67 function name g 6F 65 73 20 68 65 72 65 20 2A 2F 23 4D 23 4A 23 oes here */#M#J# 4D 23 4A 2F 2A 20 72 65 73 74 20 6F 66 20 70 72 M#J/* rest of pr 6F 67 72 61 6D 7E 23 2E 20 2A 2F 23 4D 23 4A 23 ogram~#. */#M#J# 4D 23 4A 63 68 61 72 20 2A 74 78 74 32 20 3D 20 M#Jchar *txt2 = 22 28 29 5C 6E 5C 23 4D 23 4A 7B 5C 6E 5C 23 4D "()\n\#M#J{\n\#M 23 4A 7E 24 20 69 6E 74 20 63 2C 61 63 74 6E 6F #J~$ int c,actno 3B 5C 6E 5C 23 4D 23 4A 7E 24 20 65 78 74 65 72 ;\n\#M#J~$ exter 6E 20 22 3B 23 4D 23 4A 23 4D 23 4A 2F 2A 20 44 n ";#M#J#M#J/* D 61 74 61 20 74 79 70 65 20 6F 66 20 73 74 61 74 ata type of stat 65 20 74 61 62 6C 65 20 69 73 20 69 6E 73 65 72 e table is inser 74 65 64 20 68 65 72 65 20 28 73 68 6F 72 74 20 ted here (short 6F 72 20 69 6E 74 29 20 2A 2F 23 4D 23 4A 23 4D or int) */#M#J#M 23 4A 63 68 61 72 20 2A 74 78 74 32 61 20 3D 23 #Jchar *txt2a =# 4D 23 4A 22 20 74 62 6C 5B 5D 3B 5C 6E 5C 23 4D M#J" tbl[];\n\#M 23 4A 7E 24 20 77 68 69 6C 65 20 28 31 29 20 7B #J~$ while (1) { 5C 6E 5C 23 4D 23 4A 09 63 20 3D 20 69 6E 70 75 \n\#M#J.c = inpu 74 28 29 20 2D 20 33 32 3B 5C 6E 5C 23 4D 23 4A t() - 32;\n\#M#J 09 64 65 62 75 67 28 46 7E 23 30 2C 5C 22 50 52 .debug(F~#0,\"PR 4F 54 4F 20 69 6E 70 75 74 5C 22 2C 63 6B 69 74 OTO input\",ckit 6F 61 28 73 74 61 74 65 29 2C 63 2B 33 32 29 3B oa(state),c+32); 5C 6E 5C 23 4D 23 4A 09 69 66 20 28 63 20 3C 20 \n\#M#J.if (c < 30 20 7C 7C 20 63 20 3E 20 39 35 29 20 63 20 3D 0 || c > 95) c = 20 30 3B 5C 6E 22 3B 23 4D 23 4A 23 4D 23 4A 63 0;\n";#M#J#M#Jc 68 61 72 20 2A 74 78 74 32 62 20 3D 20 22 09 69 har *txt2b = ".i 66 20 28 28 61 63 74 6E 6F 20 3D 20 74 62 6C 5B f ((actno = tbl[ 63 20 2B 20 73 74 61 74 65 2A 39 36 5D 29 20 21 c + state*96]) ! 3D 20 2D 31 29 5C 6E 5C 23 4D 23 4A 09 7E 24 20 = -1)\n\#M#J.~$ 73 77 69 74 63 68 28 61 63 74 6E 6F 29 20 7B 5C switch(actno) {\ 6E 22 3B 23 4D 23 4A 23 4D 23 4A 2F 2A 20 74 68 n";#M#J#M#J/* th 69 73 20 70 72 6F 67 72 61 6D 27 73 20 6F 75 74 is program's out 70 75 74 20 67 6F 65 73 20 68 65 72 65 2C 20 66 put goes here, f 6F 6C 6C 6F 77 65 64 20 62 79 20 66 69 6E 61 6C ollowed by final 20 74 65 78 74 7E 23 2E 20 2A 2F 23 4D 23 4A 23 text~#. */#M#J# 4D 23 4A 63 68 61 72 20 2A 74 78 74 33 20 3D 20 M#Jchar *txt3 = 22 5C 6E 09 7E 24 20 7D 5C 6E 7E 24 20 7D 5C 6E "\n.~$ }\n~$ }\n 7D 5C 6E 5C 6E 22 3B 23 4D 23 4A 23 4D 23 4A 23 }\n\n";#M#J#M#J# 4D 23 4A 2F 2A 23 4D 23 4A 20 2A 20 74 75 72 6E M#J/*#M#J * turn 20 6F 6E 20 74 68 65 20 62 69 74 20 61 73 73 6F on the bit asso 63 69 61 74 65 64 20 77 69 74 68 20 74 68 65 20 ciated with the 67 69 76 65 6E 20 73 74 61 74 65 23 4D 23 4A 20 given state#M#J 2A 23 4D 23 4A 20 2A 2F 23 4D 23 4A 56 4F 49 44 *#M#J */#M#JVOID 23 4D 23 4A 73 65 74 77 73 74 61 74 65 28 73 74 #M#Jsetwstate(st 61 74 65 2C 74 29 20 69 6E 74 20 73 74 61 74 65 ate,t) int state 3B 20 74 72 61 6E 73 20 74 3B 20 7B 23 4D 23 4A ; trans t; {#M#J 7E 24 20 69 6E 74 20 69 64 78 2C 6D 73 6B 3B 23 ~$ int idx,msk;# 4D 23 4A 7E 24 20 69 64 78 20 3D 20 73 74 61 74 M#J~$ idx = stat 65 2F 38 3B 7E 23 09 2F 2A 20 62 79 74 65 20 61 e/8;~#./* byte a 73 73 6F 63 69 61 74 65 64 20 77 69 74 68 20 73 ssociated with s 74 61 74 65 20 2A 2F 23 4D 23 4A 7E 24 20 6D 73 tate */#M#J~$ ms 6B 20 3D 20 30 78 38 30 20 3E 3E 20 28 73 74 61 k = 0x80 >> (sta 74 65 20 25 20 38 29 3B 09 09 2F 2A 20 62 69 74 te % 8);../* bit 20 6D 61 73 6B 20 66 6F 72 20 73 74 61 74 65 20 mask for state 2A 2F 23 4D 23 4A 7E 24 20 74 2D 3E 73 74 61 74 */#M#J~$ t->stat 65 73 5B 69 64 78 5D 20 7C 3D 20 6D 73 6B 3B 23 es[idx] |= msk;# 4D 23 4A 7D 23 4D 23 4A 23 4D 23 4A 2F 2A 23 4D M#J}#M#J#M#J/*#M 23 4A 20 2A 20 73 65 65 20 69 66 20 74 68 65 20 #J * see if the 73 74 61 74 65 20 69 73 20 69 6E 76 6F 6C 76 65 state is involve 64 20 69 6E 20 74 68 65 20 74 72 61 6E 73 69 74 d in the transit 69 6F 6E 23 4D 23 4A 20 2A 23 4D 23 4A 20 2A 2F ion#M#J *#M#J */ 23 4D 23 4A 69 6E 74 23 4D 23 4A 74 65 73 74 73 #M#Jint#M#Jtests 74 61 74 65 28 73 74 61 74 65 2C 74 29 20 69 6E tate(state,t) in 74 20 73 74 61 74 65 3B 20 74 72 61 6E 73 20 74 t state; trans t 3B 20 7B 23 4D 23 4A 7E 24 20 69 6E 74 20 69 64 ; {#M#J~$ int id 78 2C 6D 73 6B 3B 23 4D 23 4A 7E 24 20 69 64 78 x,msk;#M#J~$ idx 20 3D 20 73 74 61 74 65 2F 38 3B 23 4D 23 4A 7E = state/8;#M#J~ 24 20 6D 73 6B 20 3D 20 30 78 38 30 20 3E 3E 20 $ msk = 0x80 >> 28 73 74 61 74 65 20 25 20 38 29 3B 23 4D 23 4A (state % 8);#M#J 7E 24 20 72 65 74 75 72 6E 28 74 2D 3E 73 74 61 ~$ return(t->sta 74 65 73 5B 69 64 78 5D 20 26 20 6D 73 6B 29 3B tes[idx] & msk); 23 4D 23 4A 7D 23 4D 23 4A 23 4D 23 4A 23 4D 23 #M#J}#M#J#M#J#M# 4A 2F 2A 23 4D 23 4A 20 2A 20 72 65 61 64 20 69 J/*#M#J * read i 6E 70 75 74 20 66 72 6F 6D 20 68 65 72 65 7E 23 nput from here~# 2E 23 4D 23 4A 20 2A 23 4D 23 4A 20 2A 2F 23 4D .#M#J *#M#J */#M 23 4A 23 4D 23 4A 74 72 61 6E 73 23 4D 23 4A 72 #J#M#Jtrans#M#Jr 64 69 6E 70 75 74 28 69 6E 66 70 2C 6F 75 74 66 dinput(infp,outf 70 29 20 46 49 4C 45 20 2A 69 6E 66 70 2C 2A 6F p) FILE *infp,*o 75 74 66 70 3B 20 7B 23 4D 23 4A 7E 24 20 74 72 utfp; {#M#J~$ tr 61 6E 73 20 78 3B 23 4D 23 4A 7E 24 20 6C 69 6E ans x;#M#J~$ lin 65 73 20 3D 20 31 3B 7E 24 09 2F 2A 20 6C 69 6E es = 1;~$./* lin 65 20 63 6F 75 6E 74 65 72 20 2A 2F 23 4D 23 4A e counter */#M#J 7E 24 20 6E 73 74 61 74 65 73 20 3D 20 30 3B 7E ~$ nstates = 0;~ 23 09 2F 2A 20 6E 6F 20 73 74 61 74 65 73 20 2A #./* no states * 2F 23 4D 23 4A 7E 24 20 6E 61 63 74 73 20 3D 20 /#M#J~$ nacts = 30 3B 7E 24 09 2F 2A 20 6E 6F 20 61 63 74 69 6F 0;~$./* no actio 6E 73 20 79 65 74 20 2A 2F 23 4D 23 4A 7E 24 20 ns yet */#M#J~$ 66 70 72 69 6E 74 66 28 6F 75 74 66 70 2C 22 5C fprintf(outfp,"\ 6E 25 63 2A 20 57 41 52 4E 49 4E 47 20 2D 2D 20 n%c* WARNING -- 54 68 69 73 20 43 20 73 6F 75 72 63 65 20 70 72 This C source pr 6F 67 72 61 6D 20 67 65 6E 65 72 61 74 65 64 20 ogram generated 62 79 20 22 2C 27 2F 27 29 3B 23 4D 23 4A 7E 24 by ",'/');#M#J~$ 20 66 70 72 69 6E 74 66 28 6F 75 74 66 70 2C 22 fprintf(outfp," 57 61 72 74 20 70 72 65 70 72 6F 63 65 73 73 6F Wart preprocesso 72 2E 20 2A 2F 5C 6E 22 29 3B 23 4D 23 4A 7E 24 r. */\n");#M#J~$ 20 66 70 72 69 6E 74 66 28 6F 75 74 66 70 2C 22 fprintf(outfp," 25 63 2A 20 44 6F 20 6E 6F 74 20 65 64 69 74 20 %c* Do not edit 74 68 69 73 20 66 69 6C 65 3B 20 65 64 69 74 20 this file; edit 74 68 65 20 57 61 72 74 2D 66 6F 72 6D 61 74 20 the Wart-format 22 2C 27 2F 27 29 3B 23 4D 23 4A 7E 24 20 66 70 ",'/');#M#J~$ fp 72 69 6E 74 66 28 6F 75 74 66 70 2C 22 73 6F 75 rintf(outfp,"sou 72 63 65 20 66 69 6C 65 20 69 6E 73 74 65 61 64 rce file instead 2C 20 2A 2F 5C 6E 22 29 3B 23 4D 23 4A 7E 24 20 , */\n");#M#J~$ 66 70 72 69 6E 74 66 28 6F 75 74 66 70 2C 22 25 fprintf(outfp,"% 63 2A 20 61 6E 64 20 74 68 65 6E 20 72 75 6E 20 c* and then run 69 74 20 74 68 72 6F 75 67 68 20 57 61 72 74 20 it through Wart 74 6F 20 70 72 6F 64 75 63 65 20 61 20 6E 65 77 to produce a new 20 22 2C 27 2F 27 29 3B 23 4D 23 4A 7E 24 20 66 ",'/');#M#J~$ f 70 72 69 6E 74 66 28 6F 75 74 66 70 2C 22 43 20 printf(outfp,"C 73 6F 75 72 63 65 20 66 69 6C 65 2E 7E 25 20 2A source file.~% * 2F 5C 6E 5C 6E 22 29 3B 23 4D 23 4A 7E 24 20 66 /\n\n");#M#J~$ f 70 72 69 6E 74 66 28 6F 75 74 66 70 2C 22 25 63 printf(outfp,"%c 2A 20 57 61 72 74 20 56 65 72 73 69 6F 6E 20 49 * Wart Version I 6E 66 6F 3A 20 2A 2F 5C 6E 22 2C 27 2F 27 29 3B nfo: */\n",'/'); 23 4D 23 4A 7E 24 20 66 70 72 69 6E 74 66 28 6F #M#J~$ fprintf(o 75 74 66 70 2C 22 63 68 61 72 20 2A 77 61 72 74 utfp,"char *wart 76 20 3D 20 5C 22 25 73 5C 22 3B 5C 6E 5C 6E 22 v = \"%s\";\n\n" 2C 77 61 72 74 76 29 3B 23 4D 23 4A 23 4D 23 4A ,wartv);#M#J#M#J 7E 24 20 69 6E 69 74 69 61 6C 28 69 6E 66 70 2C ~$ initial(infp, 6F 75 74 66 70 29 3B 09 09 2F 2A 20 72 65 61 64 outfp);../* read 20 73 74 61 74 65 20 6E 61 6D 65 73 2C 20 69 6E state names, in 69 74 69 61 6C 20 64 65 66 73 20 2A 2F 23 4D 23 itial defs */#M# 4A 7E 24 20 70 72 6F 6C 6F 67 28 6F 75 74 66 70 J~$ prolog(outfp 29 3B 7E 23 09 2F 2A 20 77 72 69 74 65 20 6F 75 );~#./* write ou 74 20 6F 75 72 20 69 6E 69 74 69 61 6C 20 63 6F t our initial co 64 65 20 2A 2F 23 4D 23 4A 7E 24 20 78 20 3D 20 de */#M#J~$ x = 72 64 72 75 6C 65 73 28 69 6E 66 70 2C 6F 75 74 rdrules(infp,out 66 70 29 3B 09 09 2F 2A 20 72 65 61 64 20 72 75 fp);../* read ru 6C 65 73 20 2A 2F 23 4D 23 4A 7E 24 20 65 70 69 les */#M#J~$ epi 6C 6F 67 75 65 28 6F 75 74 66 70 29 3B 7E 23 09 logue(outfp);~#. 2F 2A 20 77 72 69 74 65 20 6F 75 74 20 65 70 69 /* write out epi 6C 6F 67 75 65 20 63 6F 64 65 20 2A 2F 23 4D 23 logue code */#M# 4A 7E 24 20 72 65 74 75 72 6E 28 78 29 3B 23 4D J~$ return(x);#M 23 4A 7D 23 4D 23 4A 23 4D 23 4A 23 4D 23 4A 2F #J}#M#J#M#J#M#J/ 2A 23 4D 23 4A 20 2A 20 69 6E 69 74 69 61 6C 20 *#M#J * initial 2D 20 72 65 61 64 20 69 6E 69 74 69 61 6C 20 64 - read initial d 65 66 69 6E 69 74 69 6F 6E 73 20 61 6E 64 20 73 efinitions and s 74 61 74 65 20 6E 61 6D 65 73 2E 20 20 52 65 74 tate names. Ret 75 72 6E 73 23 4D 23 4A 20 2A 20 6F 6E 20 45 4F urns#M#J * on EO 46 20 6F 72 20 25 25 2E 23 4D 23 4A 20 2A 23 4D F or %%.#M#J *#M 23 4A 20 2A 2F 23 4D 23 4A 56 4F 49 44 23 4D 23 #J */#M#JVOID#M# 4A 69 6E 69 74 69 61 6C 28 69 6E 66 70 2C 6F 75 Jinitial(infp,ou 74 66 70 29 20 46 49 4C 45 20 2A 69 6E 66 70 2C tfp) FILE *infp, 20 2A 6F 75 74 66 70 3B 20 7B 23 4D 23 4A 7E 24 *outfp; {#M#J~$ 20 69 6E 74 20 63 3B 23 4D 23 4A 7E 24 20 63 68 int c;#M#J~$ ch 61 72 20 77 6F 72 64 62 75 66 5B 4D 41 58 57 4F ar wordbuf[MAXWO 52 44 5D 3B 23 4D 23 4A 7E 24 20 77 68 69 6C 65 RD];#M#J~$ while 20 28 28 63 20 3D 20 67 65 74 63 28 69 6E 66 70 ((c = getc(infp 29 29 20 21 3D 20 45 4F 46 29 20 7B 23 4D 23 4A )) != EOF) {#M#J 09 69 66 20 28 63 20 3D 3D 20 27 25 27 29 20 7B .if (c == '%') { 23 4D 23 4A 09 7E 24 20 72 64 77 6F 72 64 28 69 #M#J.~$ rdword(i 6E 66 70 2C 77 6F 72 52 nfp,worR MARK=1 LEN=0 SEQ#=6 TYPE=Data DATA_LEN=3904 >>> 01 23 26 59 44 .#&YD MARK=1 LEN=3 SEQ#=6 TYPE=ACK DATA_LEN=0 Read buffer overflow(4000 > 3999). Read buffer overflow(4000 > 3999). Read buffer overflow(4000 > 3999). Read buffer overflow(4000 > 3999). Read buffer overflow(4000 > 3999). Read buffer overflow(4000 > 3999). Read buffer overflow(4000 > 3999). Read buffer overflow(4000 > 3999). Read buffer overflow(4000 > 3999). Read buffer overflow(4000 > 3999). Read buffer overflow(4000 > 3999). Read buffer overflow(4000 > 3999). <<< 01 33 27 45 54 6F 6F 20 6D 61 6E 79 20 72 65 74 .3'EToo many ret 72 69 65 73 27 ries' MARK=1 LEN=19 SEQ#=7 TYPE=Error DATA_LEN=16 >>> 01 23 27 59 45 .#'YE MARK=1 LEN=3 SEQ#=7 TYPE=ACK DATA_LEN=0