-- texhyphdefs.mesa -- last written by Doug Wyatt, November 10, 1979 2:29 AM TexHyphDefs: DEFINITIONS = BEGIN MaxWL: INTEGER = 32; HyphBits: TYPE = WORD; -- bit vector specifying hypens CharSetIndex: TYPE = {null,aeiouy0,aeiouy,cl,nr,bcdfgptz,fsz,st,ln,ehiklouvwxy, chsw,afglm,afu, lr,gr,t,n,r,er,hlnr,d,p,dgst,gmnt, lrt,kqd,ekxdgst,kgmnt,pqt}; SufIndex: TYPE = [0..108]; SufInstr: TYPE = {scan,double,table,check, success,fail,repeat,again,mark,efail}; PrefSufArgType: TYPE = RECORD [SELECT OVERLAID * FROM char => [c: CHARACTER], set => [s: CharSetIndex], index => [i: CARDINAL], ENDCASE]; SufEntry: TYPE = RECORD [inst: SufInstr, arg: PrefSufArgType, succ, fail: CARDINAL]; PrefIndex: TYPE = [0..108]; PrefInstr: TYPE = {scan,table,success,fail,repeat,mark,cons,vow}; PrefEntry: TYPE = RECORD [inst: PrefInstr, arg: PrefSufArgType, succ, fail: CARDINAL]; CPIndex: TYPE = [2..31]; CPEntry: TYPE = RECORD [set: CharSetIndex, hchar,weak: CARDINAL[0..7]]; FiveBitChar: TYPE = CARDINAL[0B..40B); Comparison: TYPE = {less, equal, greater}; Zeros: HyphBits = 0; -- Exception tables for hyphenation routine XSize: INTEGER = 512; XIndex: TYPE = [0..XSize); AlphaBits: TYPE = ARRAY [0..1] OF WORD; CharSetTable: TYPE = ARRAY CharSetIndex OF AlphaBits; charSetTable: POINTER TO CharSetTable; SuffixTable: TYPE = ARRAY SufIndex OF SufEntry; suffixTable: POINTER TO SuffixTable; PrefixTable: TYPE = ARRAY PrefIndex OF PrefEntry; prefixTable: POINTER TO PrefixTable; CPTable: TYPE = ARRAY CPIndex OF CPEntry; cpTable: POINTER TO CPTable; XEnt: PROCEDURE[STRING]; TexHyphInit: PROGRAM; END.