( BLOCK DATA (C RENBR(FORMAT/DECISION TREE FOR COMMAND RECOGNITION) (C (C DONALD E. BARTH, HARVARD BUSINESS SCHOOL (C (C THE DECISION TREE WHICH IS DEFINED BY THIS BLOCK DATA (C ROUTINE IS USED BY THE FORMAT PROGRAM FOR RECOGNIZING (C COMMANDS. THIS DECISION TREE WAS PRODUCED BY THE (C KEYWRD PROGRAM WHICH WAS WRITTEN BY THE SAME AUTHOR. (C ( COMMON/FMTONE/I ,IBYTE ,ICENTR,IDEFIN,IDISK , ( 1IFFILL,IFFLAG,IFPAGE,IFQUOT,IGROUP,IHEADR,IMACRO, ( 2IMINUS,INDENT,INIBOT,INICLM,INIKPY,INILBO,INILED, ( 3INILIN,INILNE,INILNG,INILPR,INILTO,ININEW,ININUM, ( 4INIPRE,INISPC,INISPL,INITAL,INITOP,INSERT,INTRVL, ( 5IOFFST,IPASS ,IREVRS,ISKIP ,ISPACE,ISTART,ITRAIL, ( 6ITSPAG,ITTY ,IVALUE,IWIDTH,J ,JDISK ,JGROUP, ( 7JMINUS,JSKIP ,JSTIFY,JTTY ,JVALUE,K ,KASALL, ( 8KASFLG,KASLCL,KDISK ,KMINUS,KNTARG,KNTBGN,KNTLIN, ( 9KNTOUT,KNTPNT,KNTQOT,KNTSPC,KNTXTR,KOMAND,KOMENT ( COMMON/FMTTWO/KONVRT,KPYBGN,KPYKAS,KPYKLM,KPYKNT, ( 1KPYLNG,KPYMID,KPYPRT,KPYSPL,KPYUSD,KPYWID,KVALUE, ( 2LEDING,LENGTH,LFTDGT,LFTOVR,LINBOT,LINNEW,LINPRE, ( 3LINTOP,LITERL,LMTBGN,LMTEND,LMTKAS,LMTLNG,LMTLST, ( 4LMTMID,LMTSPL,LMTSTR,LMTTEM,LNGBGN,LNGEND,LNGMID, ( 5LNGPAG,LNGTEM,LOCABC,LOCATE,LOCPNT,LOWBFR,MASTER, ( 6MAXBGN,MAXBOT,MAXEND,MAXLIN,MAXLNG,MAXLST,MAXNEW, ( 7MAXPRE,MAXPRT,MAXSPL,MAXSTR,MAXTOP,MAXWRD,MOVBAC, ( 8MRGFAR,MRGLFT,MRGRIT,MRKBAC,MRKBOT,MRKCAR,MRKDOL, ( 9MRKDOT,MRKEXC,MRKLES,MRKLIN,MRKNEW,MRKNUM,MRKPRE ( COMMON/FMTTHR/MRKSEM,MRKTOP,MRKUND,MRK0CC,MRK1CC, ( 1MRK2CC,MRK3CC,NEEDED,NEWTOP,NOWIND,NOWLFT,NOWLIN, ( 2NOWLNG,NOWOFF,NOWRIT,NOWSKP,NOWSPL,NXTBGN,NXTLST ( COMMON/FMTFOU/KMDARG(88) ,KMDBRK(88) ,LINSTR(30) , ( 1 LNGDEF(50) ,MCHPNT(350) ,MSKBGN(300) ,MSKDEF(500) , ( 2 MSKMID(300) ,MSKSTR(500) ,MSKTEM(300) ,NOTPNT(350) ( COMMON/FMTFIV/LTRBAC,LTRCAR,LTRCOM,LTRDOL,LTRDOT, ( 1LTREQU,LTREXC,LTRHHH,LTRLES,LTRMNS,LTRNOW,LTRNUM, ( 2LTRPLS,LTRQUO,LTRRIG,LTRSEM,LTRSLA,LTRSPA,LTRTAB, ( 3LTRUND,LTRXXX,LTR1CC,LTR1QD,LTR2CC,LTR2QD,LTR3CC, ( 4LTR3QD,LWRHHH ( COMMON/FMTSIX/LTRABC(26) ,LTRBGN(300) ,LTRDEF(500) , ( 1 LTRDGT(10) ,LTREND(72) ,LTRFLG(9) ,LTRMID(300) , ( 2 LTRONL(26) ,LTRONU(26) ,LTRSTR(500) ,LTRTEM(300) , ( 3 LTRTWO(5) ,LWRABC(26) ,LWRONL(26) ,LWRONU(26) (C (C COMMAND 1 IS FOR ALL AMBIGUOUS ABBREVIATIONS OF WHICH (C LEFT CHARACTERS HAVE BEEN DEFINED AS ANOTHER COMMAND 1 PR 2 B 2 BLANK 3 BREAK 4 CENTER 4 CENTRE 5 END OF FILE 6 F 6 FILL 7 FL 7 FLAGS ALL 8 FLAGS C 8 FLAGS CAPITALIZE 9 CARRIAGE 10 FLAGS CONTROL 11 FLAGS LOWER CASE 12 FLAGS QUOTE 13 FLAGS SPACE 14 FLAGS UPPER CASE 15 CONTINUE 15 FORMAT 16 I 16 IN 16 INDENT 17 INPUT WIDTH 18 INSERT 19 JUSTIFY 20 LEFT MARGIN 21 LENGTH 21 OUTPUT LENGTH 22 LOWER CASE 23 NO F 23 NO FILL 24 NO FL 24 NO FLAGS ALL 25 NO FLAGS C 25 NO FLAGS CAPITALIZE 26 NO CARRIAGE 27 NO FLAGS CONTROL 28 NO FLAGS LOWER CASE 29 NO FLAGS QUOTE 30 NO FLAGS SPACE 31 NO FLAGS UPPER CASE 32 NO JUSTIFY 33 NO TRAILING 34 OFFSET 35 OUTPUT WIDTH 36 P 36 PARAGRAPH 37 PREFACE 38 PROGRAM 39 RESET 40 RIGHT MARGIN 41 S 41 SKIP 42 SPACING 43 TRAILING 44 UPPER CASE 45 US 45 USE 46 FLAGS INSERT 47 FLAGS REMARK 48 FLAGS FENCE 49 NO FLAGS INSERT 50 NO FLAGS REMARK 51 NO FLAGS FENCE 52 LEADING 53 NO LEADING 54 EJECT 55 USE H 56 COPY 57 MASK 58 NO PREFACE 59 NO MASK 60 NO COPY 61 NO INSERT 62 NO OFFSET 63 BEGIN 63 TEXT 64 DEFINE PREFACE 65 BOTTOM 66 DEFINE BOTTOM 67 PAGE LENGTH 68 PAG 68 PAGE 69 PAGING 70 NO PAGING 71 TEST PAGE 72 PAGE CARRIAGE 73 NO PAGE CARRIAGE 74 TEST SPACING 75 COMMENT 76 END DEFINITION 76 END DEFINE 77 NO BOTTOM 78 TOP 79 DEFINE TOP 80 NO TOP 81 RESUME TOP 82 RESUME PREFACE 83 RESUME BOTTOM 84 GROUP 85 DEFINE GROUP 86 NO GROUP 87 RESUME GROUP 88 PAGE POSITION ) (C (C KMDARG = -2 OR LESS, CHARACTER OR TEXT STRING (C ARGUMENT WHICH CANNOT EXTEND ACROSS NORMAL (C END OF COMMAND. VALUE IS 1 LESS THAN (C NEGATIVE OF MAXIMUM NUMBER OF CHARACTERS IN (C STRING (C = -1, NO ARGUMENT ALLOWED (C = 0, TEXT STRING ARGUMENT WHICH CAN EXTEND (C ACROSS NORMAL END OF COMMAND CHARACTERS (C = 1 OR GREATER, NUMBER OF NUMERIC ARGUMENTS (C (C DATA / ,BLA,BRE,CEN,EOF,FIL,FAL,FCA,CAR,FCO, (C 1 FLC,FQU,FSP,FUC,CON,IND,IWI,INS,JUS,LMA, (C 2 LEN,LCA,NFI,NFA,NFC,NCA,NFC,NFL,NFQ,NFS, (C 3 NFU,NJU,NTR,OFF,OWI,PAR,EVE,PRO,RES,RMA, (C 4 SKI,SPA,TRA,UCA,USE,FIN,FRE,FFE,NFI,NFR, (C 5 NFF,LEA,NLE,EJE,USH,COP,MAS,NEV,NMA,NCO, (C 6 NIN,NOF,TEX,DPR,BOT,DBO,PLE,PAG,PAG,NOP, (C 7 TPA,PCA,NPC,TSP,COM,EDE,NBO,TOP,DTO,NTO, (C 8 RTO,REV,RBO,NEW,DNE,NNE,RNE,PPO/ ( DATA KMDARG/ 0, 1, -1, 1, -1, -1, -1, -2, -3, -2, ( 1 -2, -2, -2, -2, 2, 1, 1, 0, -1, 1, ( 2 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ( 3 -1, -1, -1, 1, 1, 3, 0, 2, -1, 1, ( 4 1, 1, -1, -1, -2, -2, -2, -2, -1, -1, ( 5 -1, -1, -1, -1, -1, 2, 0, -1, -1, -1, ( 6 -1, -1, 2, -1, 0, -1, 1, -1, -1, -1, ( 7 1, -3, -1, 1, 0, -1, -1, 0, -1, 0, ( 8 -1, -1, -1, 0, -1, -1, -1, 1/ (C (C KMDBRK = 0, APPLY COMMAND WITHOUT BREAKING TEXT. (C NEXT TEXT WILL BE APPENDED TO CURRENT LINE (C = 1, TERMINATE CURRENT LINE. OUTPUT CURRENT (C STATEMENT. EXIT (C = 2 THRU 5, TERMINATE CURRENT LINE. OUTPUT (C CURRENT STATEMENT. FOLLOWING TEXT WILL BE (C PLACED IN NEW FORMAT STATEMENT (C = 1, END OF FILE COMMAND (C = 2, RESTORE COMMAND (C = 3, BEGIN COMMAND (C = 4, FORMAT COMMAND (C = 5, PROGRAM COMMAND (C = 6, TERMINATE CURRENT LINE. FOLLOWING TEXT (C WILL BE APPENDED TO CURRENT FORMAT STATEMENT (C ALL BLANK LINES ARE FORCED INTO OUTPUT (C = 7, TERMINATE CURRENT LINE. FOLLOWING TEXT (C WILL BE APPENDED TO CURRENT FORMAT STATEMENT (C BLANK LINES ARE NOT FORCED INTO OUTPUT (C (C DATA / ,BLA,BRE,CEN,EOF,FIL,FAL,FCA,CAR,FCO, (C 1 FLC,FQU,FSP,FUC,CON,IND,IWI,INS,JUS,LMA, (C 2 LEN,LCA,NFI,NFA,NFC,NCA,NFC,NFL,NFQ,NFS, (C 3 NFU,NJU,NTR,OFF,OWI,PAR,EVE,PRO,RES,RMA, (C 4 SKI,SPA,TRA,UCA,USE,FIN,FRE,FFE,NFI,NFR, (C 5 NFF,LEA,NLE,EJE,USH,COP,MAS,NEV,NMA,NCO, (C 6 NIN,NOF,TEX,DPR,INT,DIN,PLE,PAG,PAG,NOP, (C 6 NIN,NOF,BEG,DEV,BOT,DBO,PLE,PAG,PAG,NOP, (C 7 TPA,PCA,NPC,TSP,COM,EDE,NBO,TOP,DTO,NTO, (C 8 RTO,REV,RBO,NEW,DNE,NNE,RNE,PPO/ ( DATA KMDBRK/ 0, 7, 7, 7, 1, 7, 0, 0, 0, 0, ( 1 0, 0, 0, 0, 4, 7, 0, 0, 7, 7, ( 2 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, ( 3 0, 7, 0, 7, 0, 7, 0, 5, 2, 7, ( 4 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, ( 5 0, 0, 0, 6, 0, 7, 0, 0, 0, 7, ( 6 0, 7, 3, 0, 0, 0, 0, 7, 7, 7, ( 7 7, 0, 0, 7, 0, 0, 0, 0, 0, 0, ( 8 0, 0, 0, 0, 0, 0, 0, 6/ (C (C THE VARIABLE NAMED LTRTAB CONTAINS THE TAB CHARACTER. (C THIS VARIABLE IS DEFINED IN FROFF USING THE (C DECSYSTEM10/20 OCTAL NOTATION, A DOUBLE QUOTE (C FOLLOWED BY THE 12 CHARACTER NUMBER, SINCE THE TAB (C CHARACTER IS CONVERTED BY SOME VIDEO EDITORS TO THE (C CORRESPONDING NUMBER OF SPACES. LTRTAB CAN INSTEAD (C BY DEFINED AS A SINGLE SPACE, EITHER 1H OR ' ', ON (C SYSTEMS WHICH DO NOT SUPPORT THE TAB CHARACTER. (C ( DATA LTRTAB/"045004020100/ (C ( DATA LTRABC /1HA,1HB,1HC,1HD,1HE,1HF,1HG,1HH,1HI,1HJ, ( 1 1HK,1HL,1HM,1HN,1HO,1HP,1HQ,1HR,1HS,1HT,1HU,1HV,1HW, ( 2 1HX,1HY,1HZ/ ( DATA LWRABC /1Ha,1Hb,1Hc,1Hd,1He,1Hf,1Hg,1Hh,1Hi,1Hj, ( 1 1Hk,1Hl,1Hm,1Hn,1Ho,1Hp,1Hq,1Hr,1Hs,1Ht,1Hu,1Hv,1Hw, ( 2 1Hx,1Hy,1Hz/ ( DATA LTRDGT /1H0,1H1,1H2,1H3,1H4,1H5,1H6,1H7,1H8,1H9/ ( DATA LTRMNS,LTRPLS/1H-,1H+/ ( DATA LTRSPA/1H / ( DATA LTRCOM,LTREQU,LTRHHH,LTRRIG,LTRSLA,LTRXXX,LWRHHH/ ( 1 1H, ,1H= ,1HH ,1H) ,1H/ ,1HX ,1Hh / ( DATA LTRFLG/1H;,1H<,1H.,1H$,1H\,1H_,1H!,1H#,1H^/ (C (C 2 SPACES ARE NEEDED TO RIGHT OF FOLLOWING IN FILL MODE. (C THESE VARIABLES ARE NOT REFERENCED OTHERWISE. ( DATA LTRTWO/1H;,1H:,1H!,1H.,1H?/ (C (C ARRAY DIMENSIONS ( DATA LMTBGN,LMTMID,LMTEND,LMTTEM,LMTSTR,LMTLST/ ( 1300,300,72,300,500,30/ ( DATA LMTSPL,LMTLNG/500,50/ (C (C DEFINE DEVICE UNIT NUMBERS ( DATA IDISK,JDISK,KDISK,ITTY,JTTY/1,20,21,5,5/ ( END 0