-- TexHashInit.mesa

-- last written by Doug Wyatt, November 9, 1979  5:52 PM

DIRECTORY
	TexHashDefs: FROM "TexHashDefs",
	TexStringDefs: FROM "TexStringDefs",
	TexTableDefs: FROM "TexTableDefs",
	FrameDefs: FROM "FrameDefs";

TexHashInit: PROGRAM
IMPORTS TexHashDefs,TexStringDefs,TexTableDefs,FrameDefs
EXPORTS TexTableDefs =
BEGIN OPEN TexTableDefs;

IdEnter: PROCEDURE[s: STRING, cmd: Cmd, info: CmdInfo] =
	BEGIN
	SetHashEquiv[TexHashDefs.HashLookup[s,TRUE], cmd, info];
	END;

ChEnter: PROCEDURE[c: CHARACTER, cmd: Cmd, lnk: CmdInfo] =
	BEGIN
	s: STRING←[1]; -- a 1-character string
	TexStringDefs.AppendChar[s,c]; IdEnter[s,cmd,lnk];
	END;

InitHashA: PROCEDURE =
	BEGIN
	IdEnter["ifeven"L,ifeven,[ifeven[even]]];
	IdEnter["ifpos"L,ifeven,[ifeven[pos]]];
	IdEnter["ifvmode"L,ifmode,[ifmode[v]]];
	IdEnter["ifhmode"L,ifmode,[ifmode[h]]];
	IdEnter["ifmmode"L,ifmode,[ifmode[m]]];
	IdEnter["if"L,ifT,[ifT[]]];
	IdEnter["else"L,elsecode,[elsecode[]]];

	IdEnter["output"L,output,[output[]]];
	IdEnter["input"L,innput,[innput[]]];
	IdEnter["end"L,stop,[stop[]]];
	IdEnter["ddt"L,ddt,[ddt[]]];
	IdEnter["char"L,ascii,[ascii[]]];

	IdEnter["mathrm"L,fntfam,[fntfam[rm]]];
	IdEnter["mathit"L,fntfam,[fntfam[it]]];
	IdEnter["mathsy"L,fntfam,[fntfam[sy]]];
	IdEnter["mathex"L,fntfam,[fntfam[ex]]];

	IdEnter["setcount"L,setcount,[setcount[]]];
	IdEnter["advcount"L,advcount,[advcount[]]];
	IdEnter["count"L,count,[count[]]];

	IdEnter["hsize"L,assignreal,[assignreal[hsize]]];
	IdEnter["vsize"L,assignreal,[assignreal[vsize]]];
	IdEnter["maxdepth"L,assignreal,[assignreal[maxdepth]]];
	IdEnter["parindent"L,assignreal,[assignreal[parindent]]];
	IdEnter["topbaseline"L,assignreal,[assignreal[topbaseline]]];
	IdEnter["mathsurround"L,assignreal,[assignreal[mathsurround]]];
	IdEnter["varunit"L,assignreal,[assignreal[varunit]]];
	IdEnter["lineskiplimit"L,assignreal,[assignreal[lineskiplimit]]];

	IdEnter["lineskip"L,assignglue,[assignglue[lineskip]]];
	IdEnter["baselineskip"L,assignglue,[assignglue[baselineskip]]];
	IdEnter["parskip"L,assignglue,[assignglue[parskip]]];
	IdEnter["dispskip"L,assignglue,[assignglue[dispskip]]];
	IdEnter["dispaskip"L,assignglue,[assignglue[dispaskip]]];
	IdEnter["dispbskip"L,assignglue,[assignglue[dispbskip]]];
	IdEnter["topskip"L,assignglue,[assignglue[topskip]]];
	IdEnter["botskip"L,assignglue,[assignglue[botskip]]];
	IdEnter["tabskip"L,assignglue,[assignglue[tabskip]]];

	IdEnter["box"L,box,[box[box]]];
	IdEnter["page"L,box,[box[page]]];
	IdEnter["vbox"L,box,[box[vbox]]];
	IdEnter["hbox"L,box,[box[hbox]]];

	IdEnter["chcode"L,chcode,[chcode[code]]];
	IdEnter["chpar"L,chcode,[chcode[par]]];

	IdEnter["def"L,def,[def[def]]];
	IdEnter["gdef"L,def,[def[gdef]]];
	IdEnter["xdef"L,def,[def[xdef]]];

	ChEnter[':,font,[font[]]];

	IdEnter["cr"L,carret,[carret[]]];
	IdEnter["par"L,parend,[parend[]]];
	IdEnter["x"L,xt,[xt[]]];

	END;

InitHashB: PROCEDURE =
	BEGIN
	IdEnter["moveleft"L,hmove,[hmove[TRUE]]];
	IdEnter["moveright"L,hmove,[hmove[FALSE]]];
	IdEnter["raise"L,vmove,[vmove[TRUE]]];
	IdEnter["lower"L,vmove,[vmove[FALSE]]];

	IdEnter["save"L,save,[save[]]];
	IdEnter["leaders"L,leaders,[leaders[]]];
	IdEnter["halign"L,halign,[halign[]]];
	IdEnter["valign"L,valign,[valign[]]];
	IdEnter["noalign"L,noalign,[noalign[]]];

	IdEnter["-"L,discr,[discr['-]]];
	IdEnter["*"L,mdiscr,[mdiscr[[sy,2C]]]];

	IdEnter["accent"L,newaccent,[newaccent[]]];
	IdEnter["eqno"L,eqno,[eqno[]]];

	ChEnter[40C,exspace,[exspace[]]];
	ChEnter[11C,exspace,[exspace[]]]; -- \<tab> is like \<space>
	ChEnter[12C,exspace,[exspace[]]]; -- \<lf> is like \<space>
	ChEnter[13C,exspace,[exspace[]]]; -- \<vt> is like \<space>
	ChEnter[14C,exspace,[exspace[]]]; -- \<ff> is like \<space>
	ChEnter[15C,exspace,[exspace[]]]; -- \<cr> is like \<space>

	IdEnter["left"L,leftright,[leftright[left]]];
	IdEnter["right"L,leftright,[leftright[right]]];

	IdEnter["mathop"L,mathinput,[mathinput[Op,op]]];
	IdEnter["mathbin"L,mathinput,[mathinput[Bin,none]]];
	IdEnter["mathrel"L,mathinput,[mathinput[Rel,none]]];
	IdEnter["mathopen"L,mathinput,[mathinput[Open,none]]];
	IdEnter["mathclose"L,mathinput,[mathinput[Close,none]]];
	IdEnter["mathpunct"L,mathinput,[mathinput[Punct,none]]];
	IdEnter["sqrt"L,mathinput,[mathinput[Ord,sqrt]]];
	IdEnter["overline"L,mathinput,[mathinput[Ord,over]]];
	IdEnter["underline"L,mathinput,[mathinput[Ord,under]]];

	IdEnter["limitswitch"L,limsw,[limsw[]]];

	IdEnter["above"L,above,[above[above]]];
	IdEnter["atop"L,above,[above[atop]]];
	IdEnter["over"L,above,[above[over]]];
	IdEnter["comb"L,above,[above[comb]]];

	IdEnter["topinsert"L,topbotins,[topbotins[top]]];
	IdEnter["botinsert"L,topbotins,[topbotins[bot]]];
	IdEnter["topmark"L,topbotmark,[topbotmark[top]]];
	IdEnter["botmark"L,topbotmark,[topbotmark[bot]]];
	IdEnter["firstmark"L,topbotmark,[topbotmark[first]]];

	IdEnter["mark"L,mark,[mark[]]];
	IdEnter["penalty"L,penlty,[penlty[]]];
	IdEnter["noindent"L,noindent,[noindent[]]];
	IdEnter["eject"L,eject,[eject[]]];

	IdEnter["vfill"L,vskip,[vskip[fill]]];
	IdEnter["vfil"L,vskip,[vskip[fil]]];
	IdEnter["vfilneg"L,vskip,[vskip[filneg]]];
	IdEnter["vss"L,vskip,[vskip[lowerfill]]];
	IdEnter["vskip"L,vskip,[vskip[skip]]];
	IdEnter["hfill"L,hskip,[hskip[fill]]];
	IdEnter["hfil"L,hskip,[hskip[fil]]];
	IdEnter["hfilneg"L,hskip,[hskip[filneg]]];
	IdEnter["hss"L,hskip,[hskip[lowerfill]]];
	IdEnter["hskip"L,hskip,[hskip[skip]]];

	IdEnter["vrule"L,vrule,[vrule[]]];
	IdEnter["hrule"L,hrule,[hrule[]]];

	END;

InitHashC: PROCEDURE =
	BEGIN
	ChEnter[',,mathspace,[mathspace[thin]]];
	ChEnter[';,mathspace,[mathspace[thick]]];
	ChEnter[',mathspace,[mathspace[th]]];
	ChEnter['>,mathspace,[mathspace[op]]];
	ChEnter[',mathspace,[mathspace[negth]]];
	ChEnter['<,mathspace,[mathspace[negop]]];
	ChEnter['!,mathspace,[mathspace[negthin]]];
	ChEnter['?,mathspace,[mathspace[negthick]]];
	IdEnter["quad"L,mathspace,[mathspace[quad]]];

	IdEnter["dispstyle"L,mathstyle,[mathstyle[disp]]];
	IdEnter["textstyle"L,mathstyle,[mathstyle[text]]];
	IdEnter["scriptstyle"L,mathstyle,[mathstyle[script]]];
	IdEnter["scriptscriptstyle"L,mathstyle,[mathstyle[scriptscript]]];

	ChEnter['/,italcorr,[italcorr[]]];

	IdEnter["uppercase"L,caseshift,[caseshift[upper]]];
	IdEnter["lowercase"L,caseshift,[caseshift[lower]]];

	IdEnter["vcenter"L,vcenter,[vcenter[vcenter]]];
	IdEnter["vtop"L,vcenter,[vcenter[vtop]]];

	IdEnter["hangindent"L,hangindent,[hangindent[]]];
	IdEnter["unskip"L,unskip,[unskip[]]];

	-- The following codes refer to TEX's special non-ascii fonts;
	IdEnter["Gamma"L,mathonly,[mathonly[[Ord,[rm,00C]]]]]; -- u.c. gamma
	IdEnter["Delta"L,mathonly,[mathonly[[Ord,[rm,01C]]]]]; -- u.c. delta
	IdEnter["Theta"L,mathonly,[mathonly[[Ord,[rm,02C]]]]]; -- u.c. theta
	IdEnter["Lambda"L,mathonly,[mathonly[[Ord,[rm,03C]]]]]; -- u.c. lambda
	IdEnter["Xi"L,mathonly,[mathonly[[Ord,[rm,04C]]]]]; -- u.c. xi
	IdEnter["Pi"L,mathonly,[mathonly[[Ord,[rm,05C]]]]]; -- u.c. pi
	IdEnter["Sigma"L,mathonly,[mathonly[[Ord,[rm,06C]]]]]; -- u.c. sigma
	IdEnter["Upsilon"L,mathonly,[mathonly[[Ord,[rm,07C]]]]]; -- u.c. upsilon
	IdEnter["Phi"L,mathonly,[mathonly[[Ord,[rm,10C]]]]]; -- u.c. phi
	IdEnter["Psi"L,mathonly,[mathonly[[Ord,[rm,11C]]]]]; -- u.c. psi
	IdEnter["Omega"L,mathonly,[mathonly[[Ord,[rm,12C]]]]]; -- u.c. omega

	ChEnter['i,nonmathletter,[nonmathletter[13C]]]; -- dotless i
	ChEnter['j,nonmathletter,[nonmathletter[14C]]]; -- dotless j
	ChEnter['`,accent,[accent[15C]]]; -- grave accent
	ChEnter['',accent,[accent[16C]]]; -- acute accent
	ChEnter['A,accent,[accent[17C]]]; -- circumflex (hat) accent
	ChEnter['v,accent,[accent[20C]]]; -- inverted circumflex accent (Slavic)
	ChEnter['u,accent,[accent[21C]]]; -- breve
	ChEnter['=,accent,[accent[22C]]]; -- macron (bar) accent
	ChEnter['",accent,[accent[23C]]]; -- umlaut or dieresis
	ChEnter['s,accent,[accent[24C]]]; -- tilde
	ChEnter['b,accent,[accent[25C]]]; -- vector accent
	ChEnter['H,accent,[accent[26C]]]; -- long Hungarian umlaut
	ChEnter['a,accent,[accent[27C]]]; -- small circle accent (Scandinavian)
	ChEnter['c,accent,[accent[30C]]]; -- cedilla (French, Polish, Navajo, etc.)
	ChEnter['l,accent,[accent[31C]]]; -- cross for lower case l (Polish)
	ChEnter['t,accent,[accent[32C]]]; -- tie for Russian ligatures
	IdEnter["ss"L,nonmathletter,[nonmathletter[33C]]]; -- German ligature ss
	IdEnter["ae"L,nonmathletter,[nonmathletter[34C]]]; -- Latin or Scandinavian ligature ae
	IdEnter["oe"L,nonmathletter,[nonmathletter[35C]]]; -- French ligature oe
	IdEnter["Ae"L,nonmathletter,[nonmathletter[36C]]]; -- Latin or Scandinavian ligature AE
	IdEnter["Oe"L,nonmathletter,[nonmathletter[37C]]]; -- French ligature OE
	ChEnter['o,nonmathletter,[nonmathletter[40C]]]; -- o with slash (Scandinavian)
	ChEnter['O,nonmathletter,[nonmathletter[100C]]]; -- O with slash (Scandinavian)

	IdEnter["Gammait"L,mathonly,[mathonly[[Ord,[it,00C]]]]]; -- u.c. italic gamma
	IdEnter["Deltait"L,mathonly,[mathonly[[Ord,[it,01C]]]]]; -- u.c. italic delta
	IdEnter["Thetait"L,mathonly,[mathonly[[Ord,[it,02C]]]]]; -- u.c. italic theta
	IdEnter["Lambdait"L,mathonly,[mathonly[[Ord,[it,03C]]]]]; -- u.c. italic lambda
	IdEnter["Xiit"L,mathonly,[mathonly[[Ord,[it,04C]]]]]; -- u.c. italic xi
	IdEnter["Piit"L,mathonly,[mathonly[[Ord,[it,05C]]]]]; -- u.c. italic pi
	IdEnter["Sigmait"L,mathonly,[mathonly[[Ord,[it,06C]]]]]; -- u.c. italic sigma
	IdEnter["Upsilonit"L,mathonly,[mathonly[[Ord,[it,07C]]]]]; -- u.c. italic upsilon
	IdEnter["Phiit"L,mathonly,[mathonly[[Ord,[it,10C]]]]]; -- u.c. italic phi
	IdEnter["Psiit"L,mathonly,[mathonly[[Ord,[it,11C]]]]]; -- u.c. italic psi
	IdEnter["Omegait"L,mathonly,[mathonly[[Ord,[it,12C]]]]]; -- u.c. italic omega
	END;

InitHashD: PROCEDURE =
	BEGIN
	IdEnter["alpha"L,mathonly,[mathonly[[Ord,[it,13C]]]]]; -- l.c. alpha
	IdEnter["beta"L,mathonly,[mathonly[[Ord,[it,14C]]]]]; -- l.c. beta
	IdEnter["gamma"L,mathonly,[mathonly[[Ord,[it,15C]]]]]; -- l.c. gamma
	IdEnter["delta"L,mathonly,[mathonly[[Ord,[it,16C]]]]]; -- l.c. delta
	IdEnter["epsilon"L,mathonly,[mathonly[[Ord,[it,17C]]]]]; -- l.c. epsilon
	IdEnter["zeta"L,mathonly,[mathonly[[Ord,[it,20C]]]]]; -- l.c. zeta
	IdEnter["eta"L,mathonly,[mathonly[[Ord,[it,21C]]]]]; -- l.c. eta
	IdEnter["theta"L,mathonly,[mathonly[[Ord,[it,22C]]]]]; -- l.c. theta
	IdEnter["iota"L,mathonly,[mathonly[[Ord,[it,23C]]]]]; -- l.c. iota
	IdEnter["kappa"L,mathonly,[mathonly[[Ord,[it,24C]]]]]; -- l.c. kappa
	IdEnter["lambda"L,mathonly,[mathonly[[Ord,[it,25C]]]]]; -- l.c. lambda
	IdEnter["mu"L,mathonly,[mathonly[[Ord,[it,26C]]]]]; -- l.c. mu
	IdEnter["nu"L,mathonly,[mathonly[[Ord,[it,27C]]]]]; -- l.c. nu
	IdEnter["xi"L,mathonly,[mathonly[[Ord,[it,30C]]]]]; -- l.c. xi
	IdEnter["pi"L,mathonly,[mathonly[[Ord,[it,31C]]]]]; -- l.c. pi
	IdEnter["rho"L,mathonly,[mathonly[[Ord,[it,32C]]]]]; -- l.c. rho
	IdEnter["sigma"L,mathonly,[mathonly[[Ord,[it,33C]]]]]; -- l.c. sigma
	IdEnter["tau"L,mathonly,[mathonly[[Ord,[it,34C]]]]]; -- l.c. tau
	IdEnter["upsilon"L,mathonly,[mathonly[[Ord,[it,35C]]]]]; -- l.c. upsilon
	IdEnter["phi"L,mathonly,[mathonly[[Ord,[it,36C]]]]]; -- l.c. phi
	IdEnter["chi"L,mathonly,[mathonly[[Ord,[it,37C]]]]]; -- l.c. chi
	IdEnter["iit"L,mathonly,[mathonly[[Ord,[it,40C]]]]]; -- dotless italic i
	IdEnter["lscr"L,mathonly,[mathonly[[Ord,[it,43C]]]]]; -- l.c. script ell
	IdEnter["wp"L,mathonly,[mathonly[[Ord,[it,44C]]]]]; -- Weierstrass p
	IdEnter["partial"L,mathonly,[mathonly[[Ord,[it,45C]]]]]; -- partial derivative sign
	IdEnter["jit"L,mathonly,[mathonly[[Ord,[it,100C]]]]]; -- dotless italic j
	IdEnter["psi"L,mathonly,[mathonly[[Ord,[it,173C]]]]]; -- l.c. psi
	IdEnter["omega"L,mathonly,[mathonly[[Ord,[it,174C]]]]]; -- l.c. omega
	IdEnter["varphi"L,mathonly,[mathonly[[Ord,[it,175C]]]]]; -- variant l.c. phi (not pointed at top)
	IdEnter["vartheta"L,mathonly,[mathonly[[Ord,[it,176C]]]]]; -- variant l.c. theta (not closed at left)
	IdEnter["varomega"L,mathonly,[mathonly[[Ord,[it,177C]]]]]; -- variant l.c. omega (closed with bar at top)
	END;

InitHashE: PROCEDURE =
	BEGIN
	IdEnter["cdot"L,mathonly,[mathonly[[Bin,[sy,01C]]]]]; -- centered dot
	IdEnter["times"L,mathonly,[mathonly[[Bin,[sy,02C]]]]]; -- cross product
	IdEnter["ast"L,mathonly,[mathonly[[Bin,[sy,03C]]]]]; -- asterisk resting on baseline
	IdEnter["rslash"L,mathonly,[mathonly[[Bin,[sy,04C]]]]]; -- reverse slash (\)
	IdEnter["circ"L,mathonly,[mathonly[[Bin,[sy,05C]]]]]; -- small circle operator
	IdEnter["pm"L,mathonly,[mathonly[[Bin,[sy,06C]]]]]; -- plus-or-minus
	IdEnter["mp"L,mathonly,[mathonly[[Bin,[sy,07C]]]]]; -- minus-or-plus
	IdEnter["oplus"L,mathonly,[mathonly[[Bin,[sy,10C]]]]]; -- circle plus
	IdEnter["ominus"L,mathonly,[mathonly[[Bin,[sy,11C]]]]]; -- circle minus
	IdEnter["otimes"L,mathonly,[mathonly[[Bin,[sy,12C]]]]]; -- circle times ()
	IdEnter["odiv"L,mathonly,[mathonly[[Bin,[sy,13C]]]]]; -- circle divide
	IdEnter["odot"L,mathonly,[mathonly[[Bin,[sy,14C]]]]]; -- circle dot
	IdEnter["div"L,mathonly,[mathonly[[Bin,[sy,15C]]]]]; -- elementary division (-:-)
	IdEnter["interc"L,mathonly,[mathonly[[Bin,[sy,16C]]]]]; -- intercalation product
	IdEnter["bullet"L,mathonly,[mathonly[[Bin,[sy,17C]]]]]; -- filled-in circle operator
	IdEnter["perp"L,mathonly,[mathonly[[Rel,[sy,20C]]]]]; -- perpendicular (|)
	IdEnter["bot"L,mathonly,[mathonly[[Ord,[sy,20C]]]]]; -- Scott bottom (|)
	IdEnter["subset"L,mathonly,[mathonly[[Rel,[sy,22C]]]]]; -- 
	IdEnter["supset"L,mathonly,[mathonly[[Rel,[sy,23C]]]]]; -- 
	IdEnter["preceq"L,mathonly,[mathonly[[Rel,[sy,26C]]]]]; -- precedes or equals
	IdEnter["succeq"L,mathonly,[mathonly[[Rel,[sy,27C]]]]]; -- succeeds or equals
	IdEnter["approx"L,mathonly,[mathonly[[Rel,[sy,31C]]]]]; -- approximate equality
	IdEnter["doteq"L,mathonly,[mathonly[[Rel,[sy,35C]]]]]; -- dot over equals
	IdEnter["prec"L,mathonly,[mathonly[[Rel,[sy,36C]]]]]; -- precedes (curly version of <)
	IdEnter["succ"L,mathonly,[mathonly[[Rel,[sy,37C]]]]]; -- succeeds (curly version of >)
	IdEnter["up"L,mathonly,[mathonly[[Rel,[sy,42C]]]]]; -- ↑
	IdEnter["down"L,mathonly,[mathonly[[Rel,[sy,43C]]]]]; -- 
	IdEnter["lsls"L,mathonly,[mathonly[[Rel,[sy,45C]]]]]; -- <<
	IdEnter["grgr"L,mathonly,[mathonly[[Rel,[sy,46C]]]]]; -- >>
	IdEnter["simeq"L,mathonly,[mathonly[[Rel,[sy,47C]]]]]; -- -
	IdEnter["←"L,mathonly,[mathonly[[Rel,[sy,50C]]]]]; -- <=
	IdEnter[""L,mathonly,[mathonly[[Rel,[sy,51C]]]]]; -- =>
	IdEnter["↑"L,mathonly,[mathonly[[Rel,[sy,52C]]]]]; -- ||
	IdEnter[""L,mathonly,[mathonly[[Rel,[sy,53C]]]]]; -- ||
	IdEnter[""L,mathonly,[mathonly[[Rel,[sy,54C]]]]]; -- <=>
	IdEnter["lsh"L,mathonly,[mathonly[[Bin,[sy,55C]]]]]; -- left shift symbol
	IdEnter["rsh"L,mathonly,[mathonly[[Bin,[sy,56C]]]]]; -- right shift symbol
	IdEnter["mapsto"L,mathonly,[mathonly[[Rel,[sy,57C]]]]]; -- |
	IdEnter["prime"L,mathonly,[mathonly[[Ord,[sy,60C]]]]]; -- prime (intended to appear in script size only)
	IdEnter["infty"L,mathonly,[mathonly[[Ord,[sy,61C]]]]]; -- infinity
	IdEnter["in"L,mathonly,[mathonly[[Rel,[sy,62C]]]]]; --  meaning set element
	IdEnter["notin"L,mathonly,[mathonly[[Rel,[sy,63C]]]]]; -- /
	IdEnter["emptyset"L,mathonly,[mathonly[[Ord,[sy,64C]]]]]; -- /0
	IdEnter["angle"L,mathonly,[mathonly[[Ord,[sy,66C]]]]]; -- /
	IdEnter["aleph"L,mathonly,[mathonly[[Ord,[sy,73C]]]]]; -- u.c. aleph
	IdEnter["real"L,mathonly,[mathonly[[Ord,[sy,74C]]]]]; -- u.c. Fraktur R
	IdEnter["imag"L,mathonly,[mathonly[[Ord,[sy,75C]]]]]; -- u.c. Fraktur I
	IdEnter["top"L,mathonly,[mathonly[[Ord,[sy,76C]]]]]; -- Scott top (upside down perpendicular)
	IdEnter["not"L,mathonly,[mathonly[[Rel,[sy,100C]]]]]; -- zero-width character negates a relation symbol
	END;

InitHashF: PROCEDURE =
	BEGIN
	IdEnter["Ascr"L,mathonly,[mathonly[[Ord,[sy,101C]]]]]; -- u.c. script A
	IdEnter["Bscr"L,mathonly,[mathonly[[Ord,[sy,102C]]]]]; -- u.c. script B
	IdEnter["Cscr"L,mathonly,[mathonly[[Ord,[sy,103C]]]]]; -- u.c. script C
	IdEnter["Dscr"L,mathonly,[mathonly[[Ord,[sy,104C]]]]]; -- u.c. script D
	IdEnter["Escr"L,mathonly,[mathonly[[Ord,[sy,105C]]]]]; -- u.c. script E
	IdEnter["Fscr"L,mathonly,[mathonly[[Ord,[sy,106C]]]]]; -- u.c. script F
	IdEnter["Gscr"L,mathonly,[mathonly[[Ord,[sy,107C]]]]]; -- u.c. script G
	IdEnter["Hscr"L,mathonly,[mathonly[[Ord,[sy,110C]]]]]; -- u.c. script H
	IdEnter["Iscr"L,mathonly,[mathonly[[Ord,[sy,111C]]]]]; -- u.c. script I
	IdEnter["Jscr"L,mathonly,[mathonly[[Ord,[sy,112C]]]]]; -- u.c. script J
	IdEnter["Kscr"L,mathonly,[mathonly[[Ord,[sy,113C]]]]]; -- u.c. script K
	IdEnter["Lscr"L,mathonly,[mathonly[[Ord,[sy,114C]]]]]; -- u.c. script L
	IdEnter["Mscr"L,mathonly,[mathonly[[Ord,[sy,115C]]]]]; -- u.c. script M
	IdEnter["Nscr"L,mathonly,[mathonly[[Ord,[sy,116C]]]]]; -- u.c. script N
	IdEnter["Oscr"L,mathonly,[mathonly[[Ord,[sy,117C]]]]]; -- u.c. script O
	IdEnter["Pscr"L,mathonly,[mathonly[[Ord,[sy,120C]]]]]; -- u.c. script P
	IdEnter["Qscr"L,mathonly,[mathonly[[Ord,[sy,121C]]]]]; -- u.c. script Q
	IdEnter["Rscr"L,mathonly,[mathonly[[Ord,[sy,122C]]]]]; -- u.c. script R
	IdEnter["Sscr"L,mathonly,[mathonly[[Ord,[sy,123C]]]]]; -- u.c. script S
	IdEnter["Tscr"L,mathonly,[mathonly[[Ord,[sy,124C]]]]]; -- u.c. script T
	IdEnter["Uscr"L,mathonly,[mathonly[[Ord,[sy,125C]]]]]; -- u.c. script U
	IdEnter["Vscr"L,mathonly,[mathonly[[Ord,[sy,126C]]]]]; -- u.c. script V
	IdEnter["Wscr"L,mathonly,[mathonly[[Ord,[sy,127C]]]]]; -- u.c. script W
	IdEnter["Xscr"L,mathonly,[mathonly[[Ord,[sy,130C]]]]]; -- u.c. script X
	IdEnter["Yscr"L,mathonly,[mathonly[[Ord,[sy,131C]]]]]; -- u.c. script Y
	IdEnter["Zscr"L,mathonly,[mathonly[[Ord,[sy,132C]]]]]; -- u.c. script Z
	IdEnter["uplus"L,mathonly,[mathonly[[Bin,[sy,135C]]]]]; -- multiset union +
	IdEnter["vdash"L,mathonly,[mathonly[[Open,[sy,140C]]]]]; -- |- (left turnstile)
	IdEnter["dashv"L,mathonly,[mathonly[[Close,[sy,141C]]]]]; -- -| (right turnstile)
	IdEnter["lfloor"L,mathonly,[mathonly[[Open,[sy,142C]]]]]; -- left floor bracket
	IdEnter["rfloor"L,mathonly,[mathonly[[Close,[sy,143C]]]]]; -- right floor bracket
	IdEnter["lceil"L,mathonly,[mathonly[[Open,[sy,144C]]]]]; -- left ceiling bracket
	IdEnter["rceil"L,mathonly,[mathonly[[Close,[sy,145C]]]]]; -- right ceiling bracket
	ChEnter['{,mathonly,[mathonly[[Open,[sy,146C]]]]]; -- left brace

	ChEnter[176C,mathonly,[mathonly[[Close,[sy,147C]]]]]; -- Stanford's right brace
	ChEnter[175C,mathonly,[mathonly[[Close,[sy,147C]]]]]; -- Ascii right brace

	IdEnter["langle"L,mathonly,[mathonly[[Open,[sy,150C]]]]]; -- left angle bracket
	IdEnter["rangle"L,mathonly,[mathonly[[Close,[sy,151C]]]]]; -- right angle bracket
	IdEnter["leftv"L,mathonly,[mathonly[[Open,[sy,152C]]]]]; -- | treated as left bracket
	IdEnter["rightv"L,mathonly,[mathonly[[Close,[sy,152C]]]]]; -- | treated as right bracket
	IdEnter["relv"L,mathonly,[mathonly[[Rel,[sy,152C]]]]]; -- | treated as relation (divides, or set def'n)
	ChEnter['|,mathonly,[mathonly[[Ord,[sy,153C]]]]]; -- ||
	IdEnter["leftvv"L,mathonly,[mathonly[[Open,[sy,153C]]]]]; -- || treated as left bracket
	IdEnter["rightvv"L,mathonly,[mathonly[[Close,[sy,153C]]]]]; -- || treated as right bracket
	IdEnter["relvv"L,mathonly,[mathonly[[Rel,[sy,153C]]]]]; -- || treated as relation (disjointness)
	IdEnter["dleft"L,mathonly,[mathonly[[Open,[sy,154C]]]]]; -- double left bracket
	IdEnter["dright"L,mathonly,[mathonly[[Close,[sy,155C]]]]]; -- double right bracket
	IdEnter["surd"L,mathonly,[mathonly[[Ord,[sy,160C]]]]]; -- radical (square root) sign
	IdEnter["#"L,mathonly,[mathonly[[Ord,[sy,161C]]]]]; -- sharp sign (hash mark or American pound)
	IdEnter["nabla"L,mathonly,[mathonly[[Ord,[sy,162C]]]]]; -- inverted u.c. delta
	IdEnter["smallint"L,mathonly,[mathonly[[Op,[sy,163C]]]]]; -- small integral sign
	IdEnter["lub"L,mathonly,[mathonly[[Bin,[sy,164C]]]]]; -- square union sign in Scott semantics
	IdEnter["glb"L,mathonly,[mathonly[[Bin,[sy,165C]]]]]; -- square intersection sign in Scott semantics
	IdEnter["sqsub"L,mathonly,[mathonly[[Rel,[sy,166C]]]]]; -- square inclusion sign in Scott semantics
	IdEnter["section"L,mathonly,[mathonly[[Ord,[sy,170C]]]]]; -- section symbol
	IdEnter["dag"L,mathonly,[mathonly[[Ord,[sy,171C]]]]]; -- dagger
	IdEnter["ddag"L,mathonly,[mathonly[[Ord,[sy,172C]]]]]; -- double dagger
	IdEnter["P"L,mathonly,[mathonly[[Ord,[sy,173C]]]]]; -- paragraph symbol
	IdEnter["@"L,mathonly,[mathonly[[Ord,[sy,174C]]]]]; -- at sign
	IdEnter["copyright"L,mathonly,[mathonly[[Ord,[sy,175C]]]]]; -- c in circle
	IdEnter["sterling"L,mathonly,[mathonly[[Ord,[sy,176C]]]]]; -- British pound sign
	IdEnter["$"L,mathonly,[mathonly[[Ord,[sy,177C]]]]]; -- dollar sign
	IdEnter["squnion"L,mathonly,[mathonly[[Op,[ex,106C]]]]]; -- large square union sign
	IdEnter["oint"L,mathonly,[mathonly[[Op,[ex,110C]]]]]; -- large contour integral sign
	IdEnter["odotprod"L,mathonly,[mathonly[[Op,[ex,112C]]]]]; -- large circle-dot sign
	IdEnter["osum"L,mathonly,[mathonly[[Op,[ex,114C]]]]]; -- large circle-plus sign
	IdEnter["oprod"L,mathonly,[mathonly[[Op,[ex,116C]]]]]; -- large circle-times sign
	IdEnter["sum"L,mathonly,[mathonly[[Op,[ex,120C]]]]]; -- large Sigma sign for summation
	IdEnter["prod"L,mathonly,[mathonly[[Op,[ex,121C]]]]]; -- large Pi sign for product
	IdEnter["int"L,mathonly,[mathonly[[Op,[ex,122C]]]]]; -- large integral sign
	IdEnter["union"L,mathonly,[mathonly[[Op,[ex,123C]]]]]; -- large set union sign
	IdEnter["inter"L,mathonly,[mathonly[[Op,[ex,124C]]]]]; -- large set intersection sign
	IdEnter["munion"L,mathonly,[mathonly[[Op,[ex,125C]]]]]; -- large multiset union sign (U with +)
	IdEnter["meet"L,mathonly,[mathonly[[Op,[ex,126C]]]]]; -- large logical or (lattice meet) sign
	IdEnter["join"L,mathonly,[mathonly[[Op,[ex,127C]]]]]; -- large logical and (lattice join) sign
	END;

-- main body code

InitHashF;
InitHashE;
InitHashD;
InitHashC;
InitHashB;
InitHashA;

FrameDefs.SelfDestruct;

END.