type { Grogono had following 3 types as include file "TYPES.PAS" } byte = 0..maxbyte; string0 = string[1 {Pascal/z had 0}]; string255 = string [255]; keysymbol = { keywords } (endsym,beginsym,ifsym,thensym,elsesym,procsym,varsym,ofsym, whilesym,dosym,casesym,withsym,forsym,repeatsym,untilsym, funcsym,labelsym,constsym,typesym,recordsym,stringsym,progsym, andsym,arrsym,divsym,downsym,filesym,gotosym,insym,modsym, notsym,nilsym,orsym,setsym,tosym,casevarsym, { other symbols } becomes,opencomment,closecomment,semicolon,colon,equals, openparen,closeparen,period,endoffile,othersym); options = (crsupp,crbefore,blinbefore, dindonkey,dindent,spbef, spaft,gobsym,inbytab,crafter); optionset = set of options; keysymset = set of keysymbol; tableentry = record selected : optionset; dindsym : keysymset; terminators : keysymset end; tableptr = ^tableentry; optiontable = array [keysymbol] of tableptr; key = array [1..maxkeylength] of char; keywordtable = array [endsym..tosym] of key; specialchar = array [1..2] of char; dblcharset = set of endsym..othersym; dblchartable = array [becomes..opencomment] of specialchar; sglchartable = array [opencomment..period] of char; token = array [1..maxsymbolsize] of char; symbol = record name : keysymbol; value : token; iskeyword : boolean; length, spacesbefore, crsbefore : byte end; symbolinfo = ^ symbol; charname = (letter,digit,space,quote,endofline, filemark,otherchar); charinfo = record name : charname; value : char end; stackentry = record indentsymbol : keysymbol; prevmargin : byte end; symbolstack = array [1..maxstacksize] of stackentry; hashentry = record keyword : key; symtype : keysymbol end; var infilename,outfilename : string[20]; infile,outfile : text; recordseen : boolean; currchar,nextchar : charinfo; currsym,nextsym : symbolinfo; crpending : boolean; option : optiontable; sets : tableptr; keyword : keywordtable; dblch : dblcharset; dblchar : dblchartable; sglchar : sglchartable; stack : symbolstack; top,startpos,currlinepos,currmargin, inlines,outlines : integer; hashtable : array [byte] of hashentry; { Grogono had following function as include file "PROCS.PAS" } function length (S : string255) : integer; begin length:= ord(s[0]) ; end;