<> <> <> <> <<>> <> <> <> <<>> DIRECTORY NodeStyleOps USING [defaultStyleName, InitializeDefaultStyle, LoadStyle], NodeStyleWorks USING [attachmentsDict, bindingDict, defaultFrame, FreeFrame, get, GetCommand, GetFrame, InitDict, load, RegisterStyleLiteral, RegisterWorks1, RegisterWorks2, RegisterWorks3, RegisterWorks4, run, styledict, stylesDicts, sysdict, TypeCheckDict, userdict], Rope USING [ROPE], TJaM USING [AtomFromRope, AttachDict, Begin, DictTop, End, Execute, Frame, NewFrame, Pop, Push, TryToLoad]; NodeStyleWorksStartImpl: CEDAR PROGRAM IMPORTS NodeStyleOps, NodeStyleWorks, TJaM EXPORTS NodeStyleWorks ~ BEGIN OPEN NodeStyleWorks; <<>> ROPE: TYPE ~ Rope.ROPE; Frame: TYPE ~ TJaM.Frame; RunFile: PROC [frame: Frame, name: ATOM, fileName: ROPE] RETURNS [ran: BOOL] ~ { <> known: BOOL; [known, ] _ TJaM.TryToLoad[frame, name]; IF known THEN RETURN [FALSE]; TJaM.Push[frame, fileName]; TJaM.Execute[frame, run]; RETURN [TRUE]; }; StartTheWorks: PUBLIC PROC ~ { frame: Frame _ defaultFrame _ TJaM.NewFrame[]; <<>> <> get _ GetCommand[frame, TJaM.AtomFromRope[".get"]]; run _ GetCommand[frame, TJaM.AtomFromRope[".run"]]; load _ GetCommand[frame, TJaM.AtomFromRope[".load"]]; <> TJaM.Execute[frame, TJaM.AtomFromRope[".sysdict"]]; sysdict _ TypeCheckDict[TJaM.Pop[frame]]; <> <> IF NOT RunFile[frame, $user ,"start.jam"] THEN TJaM.Execute[frame, TJaM.AtomFromRope[".start"]]; <> userdict _ TJaM.DictTop[frame]; <> styledict _ InitDict[$TiogaStylesDictionary]; TJaM.AttachDict[styledict, userdict]; <<>> <> TJaM.End[frame]; TJaM.Begin[frame, styledict]; <> stylesDicts[base] _ InitDict[$TiogaBaseStylesDictionary]; stylesDicts[print] _ InitDict[$TiogaPrintStylesDictionary]; stylesDicts[screen] _ InitDict[$TiogaScreenStylesDictionary]; bindingDict _ InitDict[$TiogaBindingDictionary, 200]; attachmentsDict _ InitDict[$TiogaAttachedStylesDictionary]; <> [] _ RunFile[frame, $StyleError, "TiogaUtils.jam"]; <> RegisterWorks1[frame]; RegisterWorks2[frame]; RegisterWorks3[frame]; RegisterWorks4[frame]; <> <> <<>> <> <> RegisterStyleLiteral[frame, $the]; RegisterStyleLiteral[frame, $smaller]; RegisterStyleLiteral[frame, $bigger]; RegisterStyleLiteral[frame, $percent]; <<>> <> RegisterStyleLiteral[frame, $regular]; RegisterStyleLiteral[frame, $bold]; RegisterStyleLiteral[frame, $italic]; RegisterStyleLiteral[frame, TJaM.AtomFromRope["bold+italic"]]; RegisterStyleLiteral[frame, TJaM.AtomFromRope["+bold"]]; RegisterStyleLiteral[frame, TJaM.AtomFromRope["+italic"]]; RegisterStyleLiteral[frame, TJaM.AtomFromRope["-bold"]]; RegisterStyleLiteral[frame, TJaM.AtomFromRope["-italic"]]; <<>> <> RegisterStyleLiteral[frame, TJaM.AtomFromRope["caps+lowercase"]]; RegisterStyleLiteral[frame, TJaM.AtomFromRope["caps+smallcaps"]]; RegisterStyleLiteral[frame, $lowercase]; RegisterStyleLiteral[frame, $caps]; <<>> <> RegisterStyleLiteral[frame, $all]; RegisterStyleLiteral[frame, $visible]; RegisterStyleLiteral[frame, TJaM.AtomFromRope["letters+digits"]]; RegisterStyleLiteral[frame, $none]; <> RegisterStyleLiteral[frame, $justified]; RegisterStyleLiteral[frame, $flush]; RegisterStyleLiteral[frame, $flushLeft]; RegisterStyleLiteral[frame, $flushRight]; RegisterStyleLiteral[frame, $centered]; <<>> <> RegisterStyleLiteral[frame, $filled]; RegisterStyleLiteral[frame, $outlined]; RegisterStyleLiteral[frame, $filled]; RegisterStyleLiteral[frame, TJaM.AtomFromRope["filled+outlined"]]; <<>> <> RegisterStyleLiteral[frame, $fixed]; RegisterStyleLiteral[frame, $relative]; <<>> <> RegisterStyleLiteral[frame, $looks]; RegisterStyleLiteral[frame, $breakIfPast]; RegisterStyleLiteral[frame, $spaceIfPast]; RegisterStyleLiteral[frame, $blank]; RegisterStyleLiteral[frame, $leaders]; RegisterStyleLiteral[frame, $rule]; RegisterStyleLiteral[frame, $rules]; RegisterStyleLiteral[frame, $aligned]; RegisterStyleLiteral[frame, $congruent]; <<>> <> { frame: ARRAY [0..4) OF Frame; FOR i: NAT IN [0..4) DO frame[i] _ GetFrame[NIL, NIL, screen] ENDLOOP; FOR i: NAT IN [0..4) DO FreeFrame[frame[i], NIL, screen] ENDLOOP; }; <> NodeStyleOps.InitializeDefaultStyle["Cedar"]; [] _ NodeStyleOps.LoadStyle[NodeStyleOps.defaultStyleName]; }; StartTheWorks[!]; END.