-- TexSynDefs.mesa

-- last written by Doug Wyatt, January 18, 1980  10:43 PM

DIRECTORY
	TexDefs: FROM "TexDefs"
		USING[Dimn,Char,Font,HangSpec,Digit,DefType,NumberStyle],
	TexGlueDefs: FROM "TexGlueDefs" USING[Flex,GluePtr],
	TexMathDefs: FROM "TexMathDefs" USING[MChar,Delimiter],
	TexTableDefs: FROM "TexTableDefs" USING[Cmd,CmdInfo,HashIndex],
	TexTokenDefs: FROM "TexTokenDefs" USING[Token,TokenPtr,TokenListPtr];

TexSynDefs: DEFINITIONS =
BEGIN OPEN TexGlueDefs,TexDefs,TexTokenDefs;

-- Global variables in TexGet
hashentry: TexTableDefs.HashIndex;
curcmd: TexTableDefs.Cmd;
curchar: TexTableDefs.CmdInfo;
curtok: Token;


-- procedures in TexGet
GetNext: PROCEDURE;
GetTok: PROCEDURE;
GetNCNext: PROCEDURE;
GetNCTok: PROCEDURE;
BackInput: PROCEDURE;
InsToken: PROCEDURE[Token];
InsList: PROCEDURE[TokenPtr];
InsUPart: PROCEDURE[TokenPtr];
InsVPart: PROCEDURE[TokenPtr];
InsRCList: PROCEDURE[TokenListPtr];
InputFile: PROCEDURE;
AppendOutputFileName: PROCEDURE[s,default: STRING];
PageEnd: SIGNAL;


-- procedures in TexMacro
MacroDef: PROCEDURE[DefType];
MacroCall: PROCEDURE;
TokListType: TYPE = {def, mark, output, caseshift};
ScanToks: PROCEDURE[TokListType] RETURNS[TokenListPtr];


-- procedures in TexScan
ScanSpacer: PROCEDURE;
ScanNonSpacer: PROCEDURE;
ScanDigit: PROCEDURE RETURNS[Digit];
ScanLB: PROCEDURE;
ScanString: PROCEDURE[STRING] RETURNS[BOOLEAN];
ScanNumber: PROCEDURE RETURNS[CARDINAL];
ScanInteger: PROCEDURE RETURNS[INTEGER];
ScanAscii: PROCEDURE RETURNS[Char];
ScanLength: PROCEDURE RETURNS[Dimn];
ScanPosLength: PROCEDURE RETURNS[Dimn];
ScanFlex: PROCEDURE RETURNS[Flex];
ScanGlue: PROCEDURE[GluePtr];
ScanSpec: PROCEDURE[parok: BOOLEAN, size: Dimn]
	RETURNS[len: Dimn, xpand, break: BOOLEAN];
ScanHang: PROCEDURE RETURNS[HangSpec];
ScanFileName: PROCEDURE[filename: STRING];
ScanFont: PROCEDURE RETURNS[Font];
ScanRuleSpec: PROCEDURE RETURNS[width,height,depth: Dimn];
ScanMChar: PROCEDURE RETURNS[TexMathDefs.MChar];
ScanDelim: PROCEDURE RETURNS[TexMathDefs.Delimiter];
InsNum: PROCEDURE[CARDINAL, NumberStyle];
PassBlock: PROCEDURE;

-- procedure in TexDump
DumpTokens: PROCEDURE[s: STRING, p: TokenPtr];
DumpContext: PROCEDURE;


TexDump: PRIVATE PROGRAM;
TexGet: PRIVATE PROGRAM;
TexMacro: PRIVATE PROGRAM;
TexScan: PRIVATE PROGRAM;

TexSynControl: PROGRAM;

END.