-- file: TexParagraph.mesa
-- Pascal-to-Mesa translator output, translated at September 27, 1985 10:21:36 am PDT


DIRECTORY
  PascalBasic,
  PascalWizardFiles,
  TexTypes;

TexParagraph: DEFINITIONS IMPORTS  =
BEGIN OPEN PascalBasic, PascalWizardFiles, TexTypes;

Passive: Halfword;

PassNumber: Halfword;
ActiveWidth: LONG POINTER TO ARRAY PascalInteger[1..6] OF  Scaled;
CurActiveWidth: LONG POINTER TO ARRAY PascalInteger[1..6] OF  Scaled;
Background: LONG POINTER TO ARRAY PascalInteger[1..6] OF  Scaled;
BreakWidth: LONG POINTER TO ARRAY PascalInteger[1..6] OF  Scaled;

NoShrinkErrorYet: PascalBoolean;

CurP: Halfword;

SecondPass: PascalBoolean;

Threshold: PascalInteger;
MinimalDemerits: LONG POINTER TO ARRAY PascalInteger[0..3] OF  Scaled;

MinimumDemerits: Scaled;
BestPlace: LONG POINTER TO ARRAY PascalInteger[0..3] OF  Halfword;
BestPlLine: LONG POINTER TO ARRAY PascalInteger[0..3] OF  Halfword;

DiscWidth: Scaled;

EasyLine: Halfword;

LastSpecialLine: Halfword;

FirstWidth: Scaled;

SecondWidth: Scaled;

FirstIndent: Scaled;

SecondIndent: Scaled;

BestBet: Halfword;

FewestDemerits: PascalInteger;

BestLine: Halfword;

ActualLooseness: PascalInteger;

LineDiff: PascalInteger;
Hc: LONG POINTER TO ARRAY PascalInteger[0..65] OF  Halfword;

Hn: SmallNumber;

Ha: Halfword;

Hb: Halfword;

Hf: InternalFontNumber;
Hu: LONG POINTER TO ARRAY PascalInteger[1..63] OF  AsciiCode;
Hyf: LONG POINTER TO ARRAY PascalInteger[0..64] OF  PascalInteger[0..9];

HyphenPassed: SmallNumber;
Trie: LONG POINTER TO ARRAY TriePointer OF  TwoHalves;
HyfDistance: LONG POINTER TO ARRAY Quarterword OF  SmallNumber;
HyfNum: LONG POINTER TO ARRAY Quarterword OF  SmallNumber;
HyfNext: LONG POINTER TO ARRAY Quarterword OF  Quarterword;
HyphWord: LONG POINTER TO ARRAY HyphPointer OF  StrNumber;
HyphList: LONG POINTER TO ARRAY HyphPointer OF  Halfword;

HyphCount: HyphPointer;
TrieOpHash: LONG POINTER TO ARRAY PascalInteger[0..510] OF  Quarterword;

TrieOpPtr: Quarterword;
TrieC: LONG POINTER TO  PACKED ARRAY TriePointer OF  AsciiCode;
TrieO: LONG POINTER TO  PACKED ARRAY TriePointer OF  Quarterword;
TrieL: LONG POINTER TO  PACKED ARRAY TriePointer OF  TriePointer;
TrieR: LONG POINTER TO  PACKED ARRAY TriePointer OF  TriePointer;

TriePtr: TriePointer;
TrieHash: LONG POINTER TO  PACKED ARRAY TriePointer OF  TriePointer;
TrieTaken: LONG POINTER TO  PACKED ARRAY TriePointer OF  PascalBoolean;

TrieMin: TriePointer;

TrieMax: TriePointer;

--826:-- FiniteShrink: PROCEDURE[P: Halfword] RETURNS[FiniteShrinkResult: Halfword];

 TryBreak: PROCEDURE[Pi: PascalInteger,BreakType: SmallNumber]
;

 PostLineBreak: PROCEDURE[FinalWidowPenalty: PascalInteger];

 Reconstitute: PROCEDURE[J,N: SmallNumber] RETURNS[ReconstituteResult: SmallNumber];

 Hyphenate: PROCEDURE;

 LineBreak: PROCEDURE[FinalWidowPenalty: PascalInteger]
;

 NewHyphExceptions: PROCEDURE;

--944:-- NewTrieOp: PROCEDURE[D,N: SmallNumber,V: Quarterword] RETURNS[NewTrieOpResult: Quarterword]
;

--:944----947:-- TrieNode: PROCEDURE[P: TriePointer] RETURNS[TrieNodeResult: TriePointer];

 CompressTrie: PROCEDURE[P: TriePointer] RETURNS[CompressTrieResult: TriePointer]
;

--:949----951:-- InitTrieMemory: PROCEDURE;

 FirstFit: PROCEDURE[P: TriePointer];

 TriePack: PROCEDURE[P: TriePointer];

 TrieFix: PROCEDURE[P: TriePointer];

--:959----960:-- NewPatterns: PROCEDURE;

END.