<> <> <> <> <> <> DIRECTORY HandCoding, HandCodingPseudos, HandCodingSupport, HandCodingComforts, DragOpsCross, DragOpsCrossUtils, LizardHeart, LizardTweaker, IO, ViewerIO; <<>> <> GenDFN: CEDAR PROGRAM <> IMPORTS HandCoding, HandCodingPseudos, HandCodingSupport, HandCodingComforts, DragOpsCrossUtils, LizardHeart, LizardTweaker, IO, ViewerIO = { fdfnImpl: HandCodingComforts.DataLabel; <> <> <> <> oname: INT = 0; cSIZEname: INT = HandCodingComforts.SizeOfINT; <> ochildren: INT = oname + cSIZEname; cSIZEchildren: INT = HandCodingComforts.SizeOfLongPointer; <> ocyclehead: INT = ochildren + cSIZEchildren; cSIZEcyclehead: INT = HandCodingComforts.SizeOfLongPointer; <> ocnext: INT = ocyclehead + cSIZEcyclehead; cSIZEcnext: INT = HandCodingComforts.SizeOfLongPointer; <> onlnext: INT = ocnext + cSIZEcnext; cSIZEnlnext: INT = HandCodingComforts.SizeOfLongPointer; <> otoporder: INT = onlnext + cSIZEnlnext; cSIZEtoporder: INT = HandCodingComforts.SizeOfINT; <<];>> cSIZEnlType: INT = otoporder + cSIZEtoporder; <> cSIZEnlTypeRef: INT = HandCodingComforts.SizeOfLongPointer; <> <> <> oarcChildp: INT = 0; cSIZEarcChildp: INT = HandCodingComforts.SizeOfLongPointer; <> oarcChildlist: INT = oarcChildp + cSIZEarcChildp; cSIZEarcChildlist: INT = HandCodingComforts.SizeOfLongPointer; <<];>> cSIZEarcType: INT = oarcChildlist + cSIZEarcChildlist; <> cSIZEarcTypeRef: INT = HandCodingComforts.SizeOfLongPointer; <> <> cDFNNaN: INT = 0; <> cDFNBusy: INT = -1; <> <> onlentryp: INT = 0; cSIZEnlentryp: INT = HandCodingComforts.SizeOfLongPointer; <> ocycletop: INT = onlentryp + cSIZEnlentryp; cSIZEcycletop: INT = HandCodingComforts.SizeOfINT; <<];>> cSIZEdfnstruct: INT = ocycletop + cSIZEcycletop; <> <<-- what is it about C that requires this separate type declaration?>> <<-- not wanting to type `struct dfnstruct' as a type.>> cSIZEdfntype: INT = cSIZEdfnstruct; <> cDFNMaxDepth: INT = 100; <> cnlMax: INT = 101; <> carcMax: INT = 600; <> <> <> <<...>> <> <> <> <> <> <> <> <> <> oFirst: INT = 0; <<>> <> odfnCounter: INT = oFirst; cSIZEdfnCounter: INT = HandCodingComforts.SizeOfINT; <> odfnDepth: INT = odfnCounter + cSIZEdfnCounter; cSIZEdfnDepth: INT = HandCodingComforts.SizeOfINT; <<>> <> onlAvail: INT = odfnDepth + cSIZEdfnDepth; cSIZEnlAvail: INT = HandCodingComforts.SizeOfINT; <> oarcAvail: INT = onlAvail + cSIZEnlAvail; cSIZEarcAvail: INT = HandCodingComforts.SizeOfINT; <<>> <> onodeWorld: INT = oarcAvail + cSIZEarcAvail; cSIZEnodeWorld: INT = HandCodingComforts.SizeOfLongPointer; <> odfnStack: INT = onodeWorld + cSIZEnodeWorld; cSIZEdfnStack: INT = cDFNMaxDepth * cSIZEdfntype; <> onlZone: INT = odfnStack + cSIZEdfnStack; cSIZEnlZone: INT = cnlMax * cSIZEnlType; <> oarcZone: INT = onlZone + cSIZEnlZone; cSIZEarcZone: INT = carcMax * cSIZEarcType; oLast: INT = oarcZone + cSIZEarcZone; out: ViewerIO.STREAM _ NIL; <> lDepthFirstNumber: HandCodingPseudos.Label; DepthFirstNumber: HandCodingComforts.Proc = { rparentp: HandCoding.RegSpec = HandCoding.reg0; lreturn: HandCodingPseudos.Label = HandCodingPseudos.GenLabel[]; HandCodingComforts.Prologue["dfnImpl.DepthFirstNumber", lDepthFirstNumber, 1]; <> <<-- if we're already numbered, no need to look any furthur.>> <> <<};>> { lcontinue: HandCodingPseudos.Label = HandCodingPseudos.GenLabel[]; HandCoding.drLRn [rparentp]; HandCodingComforts.iLFC [ldfnNumbered]; HandCodingComforts.iJNEj [HandCodingComforts.TRUEByte, lcontinue]; HandCodingComforts.LoadConstant [HandCodingComforts.TRUEValue]; <> <> HandCodingComforts.iJB [lreturn]; HandCodingPseudos.SetLabel[lcontinue]; }; <> <<-- if we're already busy, must be a cycle>> <> <<};>> { lcontinue: HandCodingPseudos.Label = HandCodingPseudos.GenLabel[]; HandCoding.drLRn [rparentp]; HandCodingComforts.iLFC [ldfnBusy]; HandCodingComforts.iJNEj [HandCodingComforts.TRUEByte, lcontinue]; HandCoding.drLRn [rparentp]; HandCodingComforts.iLFC [ldfnFindcycle]; HandCodingComforts.iJB [lreturn]; HandCodingPseudos.SetLabel[lcontinue]; }; <<-- visit yourself before your children>> <> <> <<};>> { lcontinue: HandCodingPseudos.Label = HandCodingPseudos.GenLabel[]; HandCoding.drLRn [rparentp]; HandCodingComforts.iLFC [ldfnPreVisit]; HandCodingComforts.iJEQj [HandCodingComforts.TRUEByte, lcontinue]; HandCodingComforts.LoadConstant [HandCodingComforts.FALSEValue]; <> <> HandCodingComforts.iJB [lreturn]; HandCodingPseudos.SetLabel[lcontinue]; }; <<-- visit children>> <> <> <> <<};>> <> { rarcp: HandCoding.RegSpec = HandCoding.reg1; lagain: HandCodingPseudos.Label = HandCodingPseudos.GenLabel[]; ltest: HandCodingPseudos.Label = HandCodingPseudos.GenLabel[]; HandCoding.drLRIn [rparentp, ochildren]; -- HandCoding.drMove [rarcp, HandCoding.popSrc]; HandCodingComforts.iJB [ltest]; HandCodingPseudos.SetLabel[lagain]; { lcontinue: HandCodingPseudos.Label = HandCodingPseudos.GenLabel[]; HandCoding.drLRIn [rarcp, oarcChildp]; HandCodingComforts.iLFC [lDepthFirstNumber]; HandCodingComforts.iJEQj [HandCodingComforts.TRUEByte, lcontinue]; HandCodingComforts.LoadConstant [HandCodingComforts.FALSEValue]; HandCodingComforts.iJB [lreturn]; HandCodingPseudos.SetLabel[lcontinue]; }; HandCoding.drRRI [rarcp, rarcp, oarcChildlist]; HandCodingPseudos.SetLabel[ltest]; HandCodingComforts.iRJNEj [HandCodingComforts.ShortNIL, rarcp, lagain]; HandCoding.drDIS []; }; <<-- visit yourself after your children>> <> <> <<};>> { lcontinue: HandCodingPseudos.Label = HandCodingPseudos.GenLabel[]; HandCoding.drLRn [rparentp]; HandCodingComforts.iLFC [ldfnPostVisit]; HandCodingComforts.iJEQj [HandCodingComforts.TRUEByte, lcontinue]; HandCodingComforts.LoadConstant [HandCodingComforts.FALSEValue]; HandCodingComforts.iJB [lreturn]; HandCodingPseudos.SetLabel[lcontinue]; }; <> HandCodingComforts.LoadConstant [HandCodingComforts.TRUEValue]; HandCodingComforts.iJB [lreturn]; <<};>> HandCodingPseudos.SetLabel[lreturn]; HandCoding.drSRn [HandCoding.reg0]; HandCodingPseudos.ProcedureExit[1]; }; <> ldfnPreVisit: HandCodingPseudos.Label; dfnPreVisit: HandCodingComforts.Proc = { rparentp: HandCoding.RegSpec = HandCoding.reg0; lreturn: HandCodingPseudos.Label = HandCodingPseudos.GenLabel[]; HandCodingComforts.Prologue["dfnImpl.dfnPreVisit", ldfnPreVisit, 1]; { rdfnImpl: HandCoding.RegSpec = HandCoding.reg1; HandCoding.drLIQB [fdfnImpl]; -- HandCoding.drMove [rdfnImpl, HandCoding.popSrc]; <<-- push a parent onto the stack and mark it busy>> <> HandCoding.drLRIn [rdfnImpl, odfnDepth]; HandCoding.drADDB [1]; HandCoding.drSRIn [rdfnImpl, odfnDepth]; <= DFNMaxDepth THEN {>> { lcontinue: HandCodingPseudos.Label = HandCodingPseudos.GenLabel[]; HandCoding.drLIB [cDFNMaxDepth]; HandCoding.drLRIn [rdfnImpl, odfnDepth]; HandCodingComforts.iRJLTj [HandCodingComforts.ShortpopSrc, HandCoding.belowSrcPop, lcontinue]; <> -- HandCoding.drLRIn [rdfnImpl, oformat1]; -- HandCodingComforts.LoadConstant [HandCodingComforts.ConstantNIL]; -- HandCodingComforts.LoadConstant [HandCodingComforts.ConstantNIL]; -- HandCodingComforts.LoadConstant [HandCodingComforts.ConstantNIL]; -- HandCodingComforts.LoadConstant [HandCodingComforts.ConstantNIL]; -- HandCodingComforts.iDFC [lCmdIOOut]; <> HandCodingComforts.LoadConstant [HandCodingComforts.FALSEValue]; HandCodingComforts.iJB [lreturn]; <<};>> HandCodingPseudos.SetLabel[lcontinue]; }; <> HandCoding.drLRn [rdfnImpl]; HandCoding.drADDB [odfnStack]; HandCoding.drLRIn [rdfnImpl, odfnDepth]; HandCoding.drQADD [topAtop, HandCoding.topSrc]; <> <> <> HandCoding.drADD []; HandCoding.drLRn [rparentp]; HandCoding.drWSB [onlentryp]; <> HandCoding.drLRn [rdfnImpl]; HandCoding.drADDB [odfnStack]; HandCoding.drLRIn [rdfnImpl, odfnDepth]; HandCoding.drQADD [topAtop, HandCoding.topSrc]; <> <> <> HandCoding.drADD []; HandCoding.drLRIn [rdfnImpl, odfnDepth]; HandCoding.drWSB [ocycletop]; <> HandCoding.drLRn [rparentp]; HandCodingComforts.LoadConstant [cDFNBusy]; HandCoding.drWSB [otoporder]; <> HandCodingComforts.LoadConstant [HandCodingComforts.TRUEValue]; HandCodingComforts.iJB [lreturn]; <<};>> HandCodingPseudos.SetLabel[lreturn]; HandCoding.drSRn [HandCoding.reg0]; HandCodingPseudos.ProcedureExit[1]; }; }; <> <<-- are we already numbered?>> ldfnNumbered: HandCodingPseudos.Label; dfnNumbered: HandCodingComforts.Proc = { rchildp: HandCoding.RegSpec = HandCoding.reg0; lreturn: HandCodingPseudos.Label = HandCodingPseudos.GenLabel[]; HandCodingComforts.Prologue["dfnImpl.dfnNumbered", ldfnNumbered, 1]; <> { lelse: HandCodingPseudos.Label = HandCodingPseudos.GenLabel[]; HandCoding.drLRIn [rchildp, otoporder]; HandCodingComforts.iJEQj [cDFNNaN, lelse]; HandCoding.drLRIn [rchildp, otoporder]; HandCodingComforts.iRJEQj [HandCodingComforts.ShortpopSrc, HandCodingComforts.ConstantMinus1, lelse]; HandCodingComforts.LoadConstant [HandCodingComforts.TRUEValue]; HandCodingComforts.iJB [lreturn]; HandCodingPseudos.SetLabel[lelse]; HandCodingComforts.LoadConstant [HandCodingComforts.FALSEValue]; HandCodingComforts.iJB [lreturn]; }; <<};>> HandCodingPseudos.SetLabel[lreturn]; HandCoding.drSRn [HandCoding.reg0]; HandCodingPseudos.ProcedureExit[1]; }; <> <<-- are we already busy?>> ldfnBusy: HandCodingPseudos.Label; dfnBusy: HandCodingComforts.Proc = { rchildp: HandCoding.RegSpec = HandCoding.reg0; lreturn: HandCodingPseudos.Label = HandCodingPseudos.GenLabel[]; HandCodingComforts.Prologue["dfnImpl.dfnBusy", ldfnBusy, 1]; <> { lequalDFNNaN: HandCodingPseudos.Label = HandCodingPseudos.GenLabel[]; HandCoding.drLRIn [rchildp, otoporder]; HandCodingComforts.iJEQj [cDFNNaN, lequalDFNNaN]; HandCodingComforts.LoadConstant [HandCodingComforts.TRUEValue]; HandCodingComforts.iJB [lreturn]; HandCodingPseudos.SetLabel[lequalDFNNaN]; HandCodingComforts.LoadConstant [HandCodingComforts.FALSEValue]; HandCodingComforts.iJB [lreturn]; }; <<};>> HandCodingPseudos.SetLabel[lreturn]; HandCoding.drSRn [HandCoding.reg0]; HandCodingPseudos.ProcedureExit[1]; }; <> ldfnFindcycle: HandCodingPseudos.Label; dfnFindcycle: HandCodingComforts.Proc = { rchildp: HandCoding.RegSpec = HandCoding.reg0; rresult: HandCoding.RegSpec = HandCoding.reg1; <> rdfnImpl: HandCoding.RegSpec = HandCoding.reg2; lreturn: HandCodingPseudos.Label = HandCodingPseudos.GenLabel[]; HandCodingComforts.Prologue["dfnImpl.dfnFindcycle", ldfnFindcycle, 1]; HandCodingComforts.LoadConstant [HandCodingComforts.FALSEValue]; -- HandCoding.drMove [rresult, HandCoding.popSrc]; HandCoding.drLIQB [fdfnImpl]; -- HandCoding.drMove [rdfnImpl, HandCoding.popSrc]; { <> rcycletop: HandCoding.RegSpec = HandCoding.reg3; <> rcycleheadp: HandCoding.RegSpec = HandCoding.reg4; <> rtailp: HandCoding.RegSpec = HandCoding.reg5; HandCodingComforts.LoadConstant [0]; -- HandCoding.drMove [rcycletop, HandCoding.popSrc]; HandCodingComforts.LoadConstant [HandCodingComforts.NILValue]; -- HandCoding.drMove [rcycleheadp, HandCoding.popSrc]; HandCodingComforts.LoadConstant [HandCodingComforts.NILValue]; -- HandCoding.drMove [tailp, HandCoding.popSrc]; <> { lafter: HandCodingPseudos.Label = HandCodingPseudos.GenLabel[]; lagain: HandCodingPseudos.Label = HandCodingPseudos.GenLabel[]; rinitial: HandCoding.RegSpec = HandCoding.reg6; HandCoding.drLRIn [rdfnImpl, odfnDepth]; -- HandCoding.drMove [rinitial, HandCoding.popSrc]; HandCodingComforts.iRJGTj [HandCodingComforts.Short0, rinitial, lafter]; HandCoding.drROR [rcycletop, rinitial, HandCodingComforts.Constant0]; HandCodingPseudos.SetLabel[lagain]; <> HandCoding.drLRn [rdfnImpl]; HandCoding.drADDB [odfnStack]; HandCoding.drLRn [rcycletop]; HandCoding.drQADD [topAtop, HandCoding.topSrc]; <> <> <> HandCoding.drADD []; HandCoding.drRB [onlentryp]; HandCoding.drSRn [rcycleheadp]; <> { lcontinue: HandCodingPseudos.Label = HandCodingPseudos.GenLabel[]; HandCoding.drLRn [rchildp]; HandCodingComforts.iRJNEj [HandCodingComforts.ShortpopSrc, rcycleheadp, lcontinue]; HandCodingComforts.iJB [lafter]; HandCodingPseudos.SetLabel[lcontinue]; }; <> { lcontinue: HandCodingPseudos.Label = HandCodingPseudos.GenLabel[]; HandCoding.drLRIn [rchildp, ocyclehead]; HandCodingComforts.iRJEQj [HandCodingComforts.ShortpopSrc, rchildp, lcontinue]; HandCoding.drLRIn [rchildp, ocyclehead]; HandCodingComforts.iRJNEj [HandCodingComforts.ShortpopSrc, rcycleheadp, lcontinue]; HandCodingComforts.iJB [lafter]; HandCodingPseudos.SetLabel[lcontinue]; }; <> HandCodingComforts.iRJGEj [HandCodingComforts.Short0, rcycletop, lafter]; HandCoding.drRSUB [rcycletop, rcycletop, HandCodingComforts.Constant1]; HandCodingComforts.iJB [lagain]; HandCodingPseudos.SetLabel[lafter]; HandCoding.drDIS []; }; <> { lcontinue: HandCodingPseudos.Label = HandCodingPseudos.GenLabel[]; HandCodingComforts.iRJLTj [HandCodingComforts.Short0, rcycletop, lcontinue]; <<-- CmdIO.Out["[dfnFindcycle] couldn't find head of cycle\n"];>> <> HandCoding.drROR [rresult, HandCodingComforts.ConstantFALSE, HandCodingComforts.Constant0]; <> <> <> HandCodingComforts.iJB [lreturn]; <<};>> HandCodingPseudos.SetLabel[lcontinue]; }; <> { lelse: HandCodingPseudos.Label = HandCodingPseudos.GenLabel[]; lcontinue: HandCodingPseudos.Label = HandCodingPseudos.GenLabel[]; HandCoding.drLRIn [rdfnImpl, odfnDepth]; HandCodingComforts.iRJNEj [HandCodingComforts.ShortpopSrc, rcycletop, lelse]; <> <<-- this is previous function, e.g. this calls itself: sort of boring>> <> HandCoding.drLRn [rchildp]; HandCodingComforts.iLFC [ldfnSelfCycle]; HandCoding.drSRn [rresult]; HandCodingComforts.iJB [lcontinue]; <<};>> <> HandCodingPseudos.SetLabel[lelse]; <<-- glom intervening functions that aren't already glommed into this cycle.>> <<-- things have been glommed when their cyclehead field points to the head of the cycle they are glommed into.>> <> { ltest: HandCodingPseudos.Label = HandCodingPseudos.GenLabel[]; lagain: HandCodingPseudos.Label = HandCodingPseudos.GenLabel[]; HandCoding.drROR [rtailp, rcycleheadp, HandCodingComforts.Constant0]; HandCodingComforts.iJB [ltest]; HandCodingPseudos.SetLabel[lagain]; <> <> HandCoding.drRRI [rtailp, rtailp, ocnext]; HandCodingPseudos.SetLabel[ltest]; HandCoding.drLRIn [rtailp, ocnext]; HandCodingComforts.iJNEj [HandCodingComforts.NILValue, lagain]; }; <<-- if what we think is the top of the cycle has a cyclehead field, then it's not really the head of the cycle, which is really what we want>> <> { lcontinue: HandCodingPseudos.Label = HandCodingPseudos.GenLabel[]; HandCoding.drLRIn [rcycleheadp, ocyclehead]; HandCodingComforts.iRJEQj [HandCodingComforts.ShortpopSrc, rcycleheadp, lcontinue]; <> HandCoding.drRRI [rcycleheadp, rcycleheadp, ocyclehead]; <<};>> HandCodingPseudos.SetLabel[lcontinue]; }; <> { lafter: HandCodingPseudos.Label = HandCodingPseudos.GenLabel[]; lagain: HandCodingPseudos.Label = HandCodingPseudos.GenLabel[]; rinitial: HandCoding.RegSpec = HandCoding.reg6; ritermination: HandCoding.RegSpec = HandCoding.reg7; rindex: HandCoding.RegSpec = HandCoding.reg8; HandCoding.drLRn [rcycletop]; HandCoding.drADDB [1]; -- HandCoding.drMove [rinitial, HandCoding.popSrc]; HandCoding.drLRIn [rdfnImpl, odfnDepth]; -- HandCoding.drMove [ritermination, HandCoding.popSrc]; HandCoding.drLRn [rinitial]; HandCodingComforts.iRJGTj [HandCodingComforts.ShortpopSrc, ritermination, lafter]; HandCoding.drLRn [rinitial]; -- HandCoding.drMove [rindex, HandCoding.popSrc]; HandCodingPseudos.SetLabel[lagain]; <> HandCoding.drLRn [rdfnImpl]; HandCoding.drADDB [odfnStack]; HandCoding.drRADD [HandCoding.pushDst, rindex, rindex]; <> <> <> <> HandCoding.drADD []; HandCoding.drRB [onlentryp]; HandCoding.drSRn [rchildp]; <> { lelse: HandCodingPseudos.Label = HandCodingPseudos.GenLabel[]; lcontinue: HandCodingPseudos.Label = HandCodingPseudos.GenLabel[]; HandCoding.drLRIn [rchildp, ocyclehead]; HandCodingComforts.iRJNEj [HandCodingComforts.ShortpopSrc, rchildp, lelse]; <> <<-- not yet glommed anywhere, glom it>> <<-- and fix any children it has glommed>> <> HandCodingComforts.iWRI [rtailp, ocnext, rchildp]; <> HandCodingComforts.iWRI [rchildp, ocyclehead, rcycleheadp]; <> { ltest: HandCodingPseudos.Label = HandCodingPseudos.GenLabel[]; lagain: HandCodingPseudos.Label = HandCodingPseudos.GenLabel[]; HandCoding.drROR [rtailp, rchildp, HandCodingComforts.Constant0]; HandCodingComforts.iJB [ltest]; HandCodingPseudos.SetLabel[lagain]; <> HandCoding.drLRIn [rtailp, ocnext]; HandCoding.drLRn [rcycleheadp]; HandCoding.drWSB [ocyclehead]; <> HandCoding.drRRI [rtailp, rtailp, ocnext]; HandCodingPseudos.SetLabel[ltest]; HandCoding.drLRIn [rtailp, ocnext]; HandCodingComforts.iJNEj [HandCodingComforts.NILByte, lagain]; }; <<};>> HandCodingComforts.iJB [lcontinue]; <> HandCodingPseudos.SetLabel[lelse]; <> { lcontinue: HandCodingPseudos.Label = HandCodingPseudos.GenLabel[]; HandCoding.drLRIn [rchildp, ocyclehead]; HandCodingComforts.iRJEQj [HandCodingComforts.ShortpopSrc, rcycleheadp, lcontinue]; <<-- CmdIO.Out["[dfnBusy] glommed, but not to cyclehead\n"];>> <> <<};>> HandCodingPseudos.SetLabel[lcontinue]; }; <<};>> HandCodingPseudos.SetLabel[lcontinue]; }; <> HandCoding.drLRn [rindex]; HandCodingComforts.iRJGEj [HandCodingComforts.ShortpopSrc, ritermination, lafter]; HandCoding.drRADD [rindex, rindex, HandCodingComforts.Constant1]; HandCodingComforts.iJB [lagain]; HandCodingPseudos.SetLabel[lafter]; }; <> HandCoding.drROR [rresult,HandCodingComforts.ConstantTRUE,HandCodingComforts.Constant0]; <<};>> HandCodingPseudos.SetLabel[lcontinue]; }; <<};>> HandCodingPseudos.SetLabel[lreturn]; HandCoding.drROR [HandCoding.reg0, rresult, HandCodingComforts.Constant0]; HandCodingPseudos.ProcedureExit[1]; }; }; <> <<-- deal with self-cycles>> <<-- since we are taking out self-cycles elsewhere no need for the special case, here.>> ldfnSelfCycle: HandCodingPseudos.Label; dfnSelfCycle: HandCodingComforts.Proc = { rparentp: HandCoding.RegSpec = HandCoding.reg0; lreturn: HandCodingPseudos.Label = HandCodingPseudos.GenLabel[]; HandCodingComforts.Prologue["dfnImpl.dfnSelfCycle", ldfnSelfCycle, 1]; <> <> HandCodingComforts.LoadConstant [HandCodingComforts.TRUEByte]; HandCodingComforts.iJB [lreturn]; <<};>> HandCodingPseudos.SetLabel[lreturn]; HandCoding.drSRn [HandCoding.reg0]; HandCodingPseudos.ProcedureExit[1]; }; <> <<-- visit a node after all its children and pop it off the stack>> ldfnPostVisit: HandCodingPseudos.Label; dfnPostVisit: HandCodingComforts.Proc = { rparentp: HandCoding.RegSpec = HandCoding.reg0; rdfnImpl: HandCoding.RegSpec = HandCoding.reg1; lreturn: HandCodingPseudos.Label = HandCodingPseudos.GenLabel[]; HandCodingComforts.Prologue["dfnImpl.dfnPostVisit", ldfnPostVisit, 1]; HandCoding.drLIQB [fdfnImpl]; -- HandCoding.drMove [rdfnImpl, HandCoding.popSrc]; <<-- number functions and things in their cycles unless the function is itself part of a cycle>> <> { lelse: HandCodingPseudos.Label = HandCodingPseudos.GenLabel[]; lcontinue: HandCodingPseudos.Label = HandCodingPseudos.GenLabel[]; HandCoding.drLRIn [rparentp, ocyclehead]; HandCodingComforts.iRJNEj [HandCodingComforts.ShortpopSrc, rparentp, lelse]; <> <> HandCoding.drLRIn [rdfnImpl, odfnCounter]; HandCoding.drADDB [1]; HandCoding.drSRIn [rdfnImpl, odfnCounter]; <> { rmemberp: HandCoding.RegSpec = HandCoding.reg2; ltest: HandCodingPseudos.Label = HandCodingPseudos.GenLabel[]; lagain: HandCodingPseudos.Label = HandCodingPseudos.GenLabel[]; HandCoding.drLRn [rparentp]; -- HandCoding.drMove [rmemberp, HandCoding.popSrc]; HandCodingPseudos.SetLabel[lagain]; <> HandCoding.drLRIn [rdfnImpl, odfnCounter]; HandCoding.drSRIn [rmemberp, otoporder]; <> HandCoding.drRRI [rmemberp, rmemberp, ocnext]; HandCodingPseudos.SetLabel[ltest]; HandCodingComforts.iRJNEj [HandCodingComforts.ShortNIL, rmemberp, lagain]; HandCoding.drDIS []; }; <<};>> HandCodingComforts.iJB [lcontinue]; <> HandCodingPseudos.SetLabel[lelse]; <> <<};>> HandCodingPseudos.SetLabel[lcontinue]; }; <> HandCoding.drLRIn [rdfnImpl, odfnDepth]; HandCoding.drSUBB [1]; HandCoding.drSRIn [rdfnImpl, odfnDepth]; <> HandCodingComforts.LoadConstant [HandCodingComforts.TRUEByte]; HandCodingComforts.iJB [lreturn]; <<};>> HandCodingPseudos.SetLabel[lreturn]; HandCoding.drSRn [HandCoding.reg0]; HandCodingPseudos.ProcedureExit[1]; }; <> <<-- pretend this guy returns INTs>> lprintname: HandCodingPseudos.Label; printname: HandCodingComforts.Proc = { rnlentryp: HandCoding.RegSpec = HandCoding.reg0; lreturn: HandCodingPseudos.Label = HandCodingPseudos.GenLabel[]; HandCodingComforts.Prologue["dfnImpl.printname", lprintname, 1]; <> HandCoding.drLRIn [rnlentryp, oname]; HandCodingComforts.iJB [lreturn]; <<};>> HandCodingPseudos.SetLabel[lreturn]; HandCoding.drSRn [HandCoding.reg0]; HandCodingPseudos.ProcedureExit[1]; }; <<-- *** stuff for using the interpreter to run this ***>> <> lAddNode: HandCodingPseudos.Label; AddNode: HandCodingComforts.Proc = { rname: HandCoding.RegSpec = HandCoding.reg0; rdfnImpl: HandCoding.RegSpec = HandCoding.reg1; lreturn: HandCodingPseudos.Label = HandCodingPseudos.GenLabel[]; HandCodingComforts.Prologue["dfnImpl.AddNode", lAddNode, 1]; HandCoding.drLIQB [fdfnImpl]; -- HandCoding.drMove [rdfnImpl, HandCoding.popSrc]; <> { rnode: HandCoding.RegSpec = HandCoding.reg2; HandCoding.drLRn [rdfnImpl]; HandCoding.drADDDB [onlZone]; HandCoding.drLRIn [rdfnImpl, onlAvail]; HandCoding.drLIB [cSIZEnlType]; HandCodingComforts.iDFC [HandCodingPseudos.GetGlobalLabel["Basics.MixedMultiply"]]; HandCoding.drADD []; -- HandCoding.drMove [rnode, HandCoding.popSrc]; <> HandCoding.drLRIn [rdfnImpl, onlAvail]; HandCoding.drADDB [1]; HandCoding.drSRIn [rdfnImpl, onlAvail]; <> HandCodingComforts.iWRI [rnode, oname, rname]; <> HandCodingComforts.LoadConstant [HandCodingComforts.NILValue]; HandCoding.drSRIn [rnode, ochildren]; <> HandCodingComforts.iWRI [rnode, ocyclehead, rnode]; <> HandCodingComforts.LoadConstant [HandCodingComforts.NILValue]; HandCoding.drSRIn [rnode, ocnext]; <> HandCoding.drLRIn [rdfnImpl, onodeWorld]; HandCoding.drSRIn [rnode, onlnext]; <> HandCodingComforts.LoadConstant [0]; HandCoding.drSRIn [rnode, otoporder]; <> HandCodingComforts.iWRI [rdfnImpl, onodeWorld, rnode]; <> HandCoding.drLRn [rnode]; HandCodingComforts.iJB [lreturn]; <<};>> }; HandCodingPseudos.SetLabel[lreturn]; HandCoding.drSRn [HandCoding.reg0]; HandCodingPseudos.ProcedureExit[1]; }; <> lNodeLookup: HandCodingPseudos.Label; NodeLookup: HandCodingComforts.Proc = { rname: HandCoding.RegSpec = HandCoding.reg0; rdfnImpl: HandCoding.RegSpec = HandCoding.reg1; lreturn: HandCodingPseudos.Label = HandCodingPseudos.GenLabel[]; HandCodingComforts.Prologue["dfnImpl.NodeLookup", lNodeLookup, 1]; HandCoding.drLIQB [fdfnImpl]; -- HandCoding.drMove [rdfnImpl, HandCoding.popSrc]; <> { rnodep: HandCoding.RegSpec = HandCoding.reg2; lagain: HandCodingPseudos.Label = HandCodingPseudos.GenLabel[]; ltest: HandCodingPseudos.Label = HandCodingPseudos.GenLabel[]; HandCoding.drLRIn [rdfnImpl, onodeWorld]; -- HandCoding.drMove [rnodep, HandCoding.popSrc]; HandCodingComforts.iJB [ltest]; HandCodingPseudos.SetLabel[lagain]; <> { lcontinue: HandCodingPseudos.Label = HandCodingPseudos.GenLabel[]; HandCoding.drLRIn [rnodep, oname]; HandCodingComforts.iRJNEj [HandCodingComforts.ShortpopSrc, rname, lcontinue]; <> HandCoding.drLRn [rnodep]; HandCodingComforts.iJB [lreturn]; <> HandCodingPseudos.SetLabel[lcontinue]; }; <> HandCoding.drRRI [rnodep, rnodep, onlnext]; HandCodingPseudos.SetLabel[ltest]; HandCodingComforts.iRJNEj [HandCodingComforts.ShortNIL, rnodep, lagain]; HandCoding.drDIS []; }; <> HandCodingComforts.LoadConstant [HandCodingComforts.NILValue]; HandCodingComforts.iJB [lreturn]; <<};>> HandCodingPseudos.SetLabel[lreturn]; HandCoding.drSRn [HandCoding.reg0]; HandCodingPseudos.ProcedureExit[1]; }; <> lAddArc: HandCodingPseudos.Label; AddArc: HandCodingComforts.Proc = { rfrom: HandCoding.RegSpec = HandCoding.reg0; rto: HandCoding.RegSpec = HandCoding.reg1; rdfnImpl: HandCoding.RegSpec = HandCoding.reg2; lreturn: HandCodingPseudos.Label = HandCodingPseudos.GenLabel[]; HandCodingComforts.Prologue["dfnImpl.AddArc", lAddArc, 2]; HandCoding.drLIQB [fdfnImpl]; -- HandCoding.drMove [rdfnImpl, HandCoding.popSrc]; { rfromNode: HandCoding.RegSpec = HandCoding.reg3; rtoNode: HandCoding.RegSpec = HandCoding.reg4; <> HandCoding.drLRn [rfrom]; HandCodingComforts.iLFC [lNodeLookup]; -- HandCoding.drMove [rfromNode, HandCoding.popSrc]; <> HandCoding.drLRn [rto]; HandCodingComforts.iLFC [lNodeLookup]; -- HandCoding.drMove [rtoNode, HandCoding.popSrc]; <> { lcontinue: HandCodingPseudos.Label = HandCodingPseudos.GenLabel[]; HandCodingComforts.iRJEQj [HandCodingComforts.ShortNIL, rfromNode, lcontinue]; HandCodingComforts.iRJEQj [HandCodingComforts.ShortNIL, rtoNode, lcontinue]; <> { rarcp: HandCoding.RegSpec = HandCoding.reg5; HandCoding.drLRn [rdfnImpl]; HandCoding.drADDDB [oarcZone]; HandCoding.drLRIn [rdfnImpl, oarcAvail]; HandCoding.drQADD [topAtop, HandCoding.topSrc]; <> <> <> HandCoding.drADD []; -- HandCoding.drMove [rarcp, HandCoding.popSrc]; <> HandCoding.drLRIn [rdfnImpl, oarcAvail]; HandCoding.drADDB [1]; HandCoding.drSRIn [rdfnImpl, oarcAvail]; <> HandCodingComforts.iWRI [rarcp, oarcChildp, rtoNode]; <> HandCoding.drLRIn [rfromNode, ochildren]; HandCoding.drSRIn [rarcp, oarcChildlist]; <> HandCodingComforts.iWRI [rfromNode, ochildren, rarcp]; <> HandCoding.drLRn [rarcp]; HandCodingComforts.iJB [lreturn]; <<};>> HandCodingPseudos.SetLabel[lcontinue]; }; }; <> HandCodingComforts.LoadConstant [HandCodingComforts.NILValue]; <> HandCodingComforts.iJB [lreturn]; <<};>> }; HandCodingPseudos.SetLabel[lreturn]; HandCoding.drSRn [HandCoding.reg0]; HandCodingPseudos.ProcedureExit[1]; }; <> lPrintNode: HandCodingPseudos.Label; PrintNode: HandCodingComforts.Proc = { rnodep: HandCoding.RegSpec = HandCoding.reg0; HandCodingComforts.Prologue["dfnImpl.PrintNode", lPrintNode, 1]; <> HandCoding.drLRIn [rnodep, oname]; HandCodingSupport.OQBcommon[x060B, DragOpsCrossUtils.IntToWord[1]]; <> HandCoding.drDIS []; HandCoding.drLRIn [rnodep, otoporder]; HandCodingSupport.OQBcommon[x060B, DragOpsCrossUtils.IntToWord[0]]; <> HandCoding.drDIS []; <<};>> HandCodingPseudos.ProcedureExit[0]; }; <> lPrintArc: HandCodingPseudos.Label; PrintArc: HandCodingComforts.Proc = { rarcp: HandCoding.RegSpec = HandCoding.reg0; HandCodingComforts.Prologue["dfnImpl.PrintArc", lPrintArc, 1]; <> HandCoding.drLRIn [rarcp, oarcChildp]; HandCodingComforts.iLFC [lPrintNode]; <<};>> HandCodingPseudos.ProcedureExit[0]; }; <> lPrintNodeWorld: HandCodingPseudos.Label; PrintNodeWorld: HandCodingComforts.Proc = { rdfnImpl: HandCoding.RegSpec = HandCoding.reg0; HandCodingComforts.Prologue["dfnImpl.PrintNodeWorld", lPrintNodeWorld, 0]; HandCoding.drLIQB [fdfnImpl]; -- HandCoding.drMove [rdfnImpl, HandCoding.popSrc]; <> { rnodep: HandCoding.RegSpec = HandCoding.reg1; lagain: HandCodingPseudos.Label = HandCodingPseudos.GenLabel[]; ltest: HandCodingPseudos.Label = HandCodingPseudos.GenLabel[]; HandCoding.drLRIn [rdfnImpl, onodeWorld]; -- HandCoding.drMove [rnodep, HandCoding.popSrc]; HandCodingComforts.iJB [ltest]; HandCodingPseudos.SetLabel[lagain]; <> HandCoding.drLRn [rnodep]; HandCodingComforts.iLFC [lPrintNode]; <> HandCoding.drRRI [rnodep, rnodep, onlnext]; HandCodingPseudos.SetLabel[ltest]; HandCodingComforts.iRJNEj [HandCodingComforts.ShortNIL, rnodep, lagain]; HandCoding.drDIS []; }; <<};>> HandCodingPseudos.ProcedureExit[0]; }; <> lDoIt: HandCodingPseudos.Label; DoIt: HandCodingComforts.Proc = { rresult: HandCoding.RegSpec = HandCoding.reg0; lreturn: HandCodingPseudos.Label = HandCodingPseudos.GenLabel[]; lStartHere: HandCodingPseudos.Label = HandCodingPseudos.GenLabel[]; lStopHere: HandCodingPseudos.Label = HandCodingPseudos.GenLabel[]; HandCodingComforts.Prologue["dfnImpl.DoIt", lDoIt, 0]; <<-- Build the world>> HandCoding.drLIB [ 1]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 2]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 3]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 4]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 5]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 6]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 7]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 8]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 9]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 10]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 11]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 12]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 13]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 14]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 15]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 16]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 17]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 18]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 19]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 20]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 21]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 22]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 23]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 24]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 25]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 26]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 27]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 28]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 29]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 30]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 31]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 32]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 33]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 34]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 35]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 36]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 37]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 38]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 39]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 40]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 41]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 42]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 43]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 44]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 45]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 46]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 47]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 48]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 49]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 50]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 51]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 52]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 53]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 54]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 55]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 56]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 57]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 58]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 59]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 60]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 61]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 62]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 63]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 64]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 65]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 66]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 67]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 68]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 69]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 70]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 71]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 72]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 73]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 74]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 75]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 76]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 77]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 78]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 79]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 80]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 81]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 82]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 83]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 84]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 85]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 86]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 87]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 88]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 89]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 90]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 91]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 92]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 93]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 94]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 95]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 96]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 97]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 98]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 99]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [100]; HandCodingComforts.iLFC [lAddNode]; HandCoding.drDIS []; HandCoding.drLIB [ 1]; HandCoding.drLIB [ 2]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 1]; HandCoding.drLIB [ 3]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 1]; HandCoding.drLIB [ 4]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 1]; HandCoding.drLIB [ 5]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 2]; HandCoding.drLIB [ 6]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 2]; HandCoding.drLIB [ 7]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 4]; HandCoding.drLIB [ 8]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 4]; HandCoding.drLIB [ 9]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 4]; HandCoding.drLIB [ 10]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 4]; HandCoding.drLIB [ 11]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 5]; HandCoding.drLIB [ 12]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 5]; HandCoding.drLIB [ 12]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 5]; HandCoding.drLIB [ 13]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 5]; HandCoding.drLIB [ 14]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 5]; HandCoding.drLIB [ 15]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 6]; HandCoding.drLIB [ 16]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 6]; HandCoding.drLIB [ 17]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 7]; HandCoding.drLIB [ 18]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 7]; HandCoding.drLIB [ 4]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 8]; HandCoding.drLIB [ 19]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 8]; HandCoding.drLIB [ 20]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 8]; HandCoding.drLIB [ 13]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 8]; HandCoding.drLIB [ 21]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 8]; HandCoding.drLIB [ 22]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 9]; HandCoding.drLIB [ 23]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 9]; HandCoding.drLIB [ 6]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 10]; HandCoding.drLIB [ 24]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 10]; HandCoding.drLIB [ 25]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 10]; HandCoding.drLIB [ 26]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 10]; HandCoding.drLIB [ 27]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 10]; HandCoding.drLIB [ 4]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 11]; HandCoding.drLIB [ 21]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 11]; HandCoding.drLIB [ 27]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 11]; HandCoding.drLIB [ 9]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 12]; HandCoding.drLIB [ 28]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 12]; HandCoding.drLIB [ 29]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 12]; HandCoding.drLIB [ 30]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 12]; HandCoding.drLIB [ 31]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 13]; HandCoding.drLIB [ 32]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 13]; HandCoding.drLIB [ 33]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 13]; HandCoding.drLIB [ 34]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 13]; HandCoding.drLIB [ 35]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 13]; HandCoding.drLIB [ 36]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 15]; HandCoding.drLIB [ 7]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 16]; HandCoding.drLIB [ 37]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 16]; HandCoding.drLIB [ 33]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 16]; HandCoding.drLIB [ 38]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 16]; HandCoding.drLIB [ 39]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 17]; HandCoding.drLIB [ 40]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 17]; HandCoding.drLIB [ 41]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 18]; HandCoding.drLIB [ 24]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 18]; HandCoding.drLIB [ 42]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 19]; HandCoding.drLIB [ 43]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 19]; HandCoding.drLIB [ 20]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 19]; HandCoding.drLIB [ 25]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 19]; HandCoding.drLIB [ 44]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 20]; HandCoding.drLIB [ 45]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 20]; HandCoding.drLIB [ 46]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 20]; HandCoding.drLIB [ 26]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 22]; HandCoding.drLIB [ 40]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 22]; HandCoding.drLIB [ 47]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 22]; HandCoding.drLIB [ 34]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 22]; HandCoding.drLIB [ 48]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 22]; HandCoding.drLIB [ 49]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 22]; HandCoding.drLIB [ 12]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 23]; HandCoding.drLIB [ 33]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 23]; HandCoding.drLIB [ 50]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 23]; HandCoding.drLIB [ 41]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 24]; HandCoding.drLIB [ 51]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 24]; HandCoding.drLIB [ 52]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 24]; HandCoding.drLIB [ 53]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 24]; HandCoding.drLIB [ 11]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 25]; HandCoding.drLIB [ 4]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 26]; HandCoding.drLIB [ 29]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 26]; HandCoding.drLIB [ 54]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 26]; HandCoding.drLIB [ 12]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 27]; HandCoding.drLIB [ 55]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 27]; HandCoding.drLIB [ 56]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 27]; HandCoding.drLIB [ 57]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 28]; HandCoding.drLIB [ 58]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 28]; HandCoding.drLIB [ 38]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 28]; HandCoding.drLIB [ 59]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 28]; HandCoding.drLIB [ 52]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 29]; HandCoding.drLIB [ 32]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 29]; HandCoding.drLIB [ 60]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 29]; HandCoding.drLIB [ 47]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 29]; HandCoding.drLIB [ 61]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 29]; HandCoding.drLIB [ 50]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 29]; HandCoding.drLIB [ 21]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 30]; HandCoding.drLIB [ 62]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 30]; HandCoding.drLIB [ 63]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 30]; HandCoding.drLIB [ 64]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 31]; HandCoding.drLIB [ 33]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 31]; HandCoding.drLIB [ 65]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 31]; HandCoding.drLIB [ 46]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 31]; HandCoding.drLIB [ 63]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 31]; HandCoding.drLIB [ 40]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 31]; HandCoding.drLIB [ 8]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 32]; HandCoding.drLIB [ 45]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 32]; HandCoding.drLIB [ 66]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 32]; HandCoding.drLIB [ 20]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 33]; HandCoding.drLIB [ 53]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 33]; HandCoding.drLIB [ 67]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 33]; HandCoding.drLIB [ 28]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 34]; HandCoding.drLIB [ 47]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 34]; HandCoding.drLIB [ 39]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 34]; HandCoding.drLIB [ 38]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 34]; HandCoding.drLIB [ 57]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 34]; HandCoding.drLIB [ 68]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 35]; HandCoding.drLIB [ 69]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 35]; HandCoding.drLIB [ 45]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 35]; HandCoding.drLIB [ 40]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 35]; HandCoding.drLIB [ 70]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 35]; HandCoding.drLIB [ 71]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 36]; HandCoding.drLIB [ 42]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 36]; HandCoding.drLIB [ 64]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 36]; HandCoding.drLIB [ 61]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 36]; HandCoding.drLIB [ 48]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 36]; HandCoding.drLIB [ 63]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 36]; HandCoding.drLIB [ 13]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 37]; HandCoding.drLIB [ 72]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 37]; HandCoding.drLIB [ 45]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 37]; HandCoding.drLIB [ 16]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 38]; HandCoding.drLIB [ 23]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 39]; HandCoding.drLIB [ 73]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 39]; HandCoding.drLIB [ 74]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 39]; HandCoding.drLIB [ 75]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 39]; HandCoding.drLIB [ 76]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 40]; HandCoding.drLIB [ 44]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 40]; HandCoding.drLIB [ 53]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 40]; HandCoding.drLIB [ 63]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 40]; HandCoding.drLIB [ 77]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 42]; HandCoding.drLIB [ 78]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 42]; HandCoding.drLIB [ 79]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 42]; HandCoding.drLIB [ 80]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 43]; HandCoding.drLIB [ 81]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 43]; HandCoding.drLIB [ 50]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 43]; HandCoding.drLIB [ 66]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 43]; HandCoding.drLIB [ 50]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 43]; HandCoding.drLIB [ 82]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 44]; HandCoding.drLIB [ 49]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 44]; HandCoding.drLIB [ 73]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 44]; HandCoding.drLIB [ 57]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 44]; HandCoding.drLIB [ 76]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 44]; HandCoding.drLIB [ 81]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 44]; HandCoding.drLIB [ 10]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 45]; HandCoding.drLIB [ 11]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 46]; HandCoding.drLIB [ 83]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 46]; HandCoding.drLIB [ 2]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 47]; HandCoding.drLIB [ 79]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 47]; HandCoding.drLIB [ 84]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 47]; HandCoding.drLIB [ 73]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 48]; HandCoding.drLIB [ 61]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 48]; HandCoding.drLIB [ 85]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 48]; HandCoding.drLIB [ 69]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 48]; HandCoding.drLIB [ 35]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 49]; HandCoding.drLIB [ 44]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 50]; HandCoding.drLIB [ 21]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 52]; HandCoding.drLIB [ 71]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 52]; HandCoding.drLIB [ 86]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 54]; HandCoding.drLIB [ 87]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 54]; HandCoding.drLIB [ 84]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 54]; HandCoding.drLIB [ 68]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 54]; HandCoding.drLIB [ 83]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 54]; HandCoding.drLIB [ 71]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 55]; HandCoding.drLIB [ 63]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 55]; HandCoding.drLIB [ 88]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 55]; HandCoding.drLIB [ 69]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 56]; HandCoding.drLIB [ 82]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 56]; HandCoding.drLIB [ 89]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 56]; HandCoding.drLIB [ 38]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 57]; HandCoding.drLIB [ 78]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 57]; HandCoding.drLIB [ 84]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 57]; HandCoding.drLIB [ 20]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 59]; HandCoding.drLIB [ 90]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 59]; HandCoding.drLIB [ 91]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 60]; HandCoding.drLIB [ 92]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 61]; HandCoding.drLIB [ 86]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 62]; HandCoding.drLIB [ 65]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 62]; HandCoding.drLIB [ 86]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 62]; HandCoding.drLIB [ 20]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 63]; HandCoding.drLIB [ 80]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 63]; HandCoding.drLIB [ 22]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 64]; HandCoding.drLIB [ 88]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 65]; HandCoding.drLIB [ 93]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 65]; HandCoding.drLIB [ 75]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 65]; HandCoding.drLIB [ 69]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 65]; HandCoding.drLIB [ 67]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 65]; HandCoding.drLIB [ 85]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 65]; HandCoding.drLIB [ 13]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 66]; HandCoding.drLIB [ 72]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 66]; HandCoding.drLIB [ 49]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 67]; HandCoding.drLIB [ 83]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 67]; HandCoding.drLIB [ 90]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 67]; HandCoding.drLIB [ 94]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 67]; HandCoding.drLIB [ 91]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 67]; HandCoding.drLIB [ 20]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 68]; HandCoding.drLIB [ 92]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 68]; HandCoding.drLIB [ 79]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 68]; HandCoding.drLIB [ 69]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 68]; HandCoding.drLIB [ 73]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 68]; HandCoding.drLIB [ 95]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 68]; HandCoding.drLIB [ 19]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 69]; HandCoding.drLIB [ 79]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 70]; HandCoding.drLIB [ 88]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 70]; HandCoding.drLIB [ 61]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 71]; HandCoding.drLIB [ 95]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 71]; HandCoding.drLIB [ 2]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 72]; HandCoding.drLIB [ 61]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 73]; HandCoding.drLIB [ 75]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 73]; HandCoding.drLIB [ 67]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 74]; HandCoding.drLIB [ 93]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 74]; HandCoding.drLIB [ 88]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 74]; HandCoding.drLIB [ 90]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 75]; HandCoding.drLIB [ 85]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 75]; HandCoding.drLIB [ 96]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 75]; HandCoding.drLIB [ 96]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 75]; HandCoding.drLIB [ 29]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 76]; HandCoding.drLIB [ 49]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 77]; HandCoding.drLIB [ 97]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 77]; HandCoding.drLIB [ 95]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 77]; HandCoding.drLIB [ 94]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 77]; HandCoding.drLIB [ 83]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 77]; HandCoding.drLIB [ 76]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 78]; HandCoding.drLIB [ 95]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 78]; HandCoding.drLIB [ 92]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 78]; HandCoding.drLIB [ 85]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 78]; HandCoding.drLIB [ 93]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 79]; HandCoding.drLIB [ 89]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 79]; HandCoding.drLIB [ 80]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 80]; HandCoding.drLIB [ 91]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 80]; HandCoding.drLIB [ 83]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 83]; HandCoding.drLIB [ 98]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 83]; HandCoding.drLIB [ 93]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 84]; HandCoding.drLIB [ 91]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 84]; HandCoding.drLIB [ 87]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 84]; HandCoding.drLIB [ 97]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 84]; HandCoding.drLIB [ 94]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 85]; HandCoding.drLIB [ 96]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 86]; HandCoding.drLIB [ 91]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 86]; HandCoding.drLIB [ 96]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 86]; HandCoding.drLIB [ 88]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 86]; HandCoding.drLIB [ 97]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 86]; HandCoding.drLIB [ 92]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 87]; HandCoding.drLIB [ 98]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 87]; HandCoding.drLIB [ 95]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 87]; HandCoding.drLIB [ 99]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 87]; HandCoding.drLIB [ 95]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 87]; HandCoding.drLIB [ 22]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 88]; HandCoding.drLIB [ 22]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 89]; HandCoding.drLIB [ 99]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 89]; HandCoding.drLIB [ 90]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 89]; HandCoding.drLIB [ 96]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 89]; HandCoding.drLIB [ 92]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 89]; HandCoding.drLIB [ 93]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 90]; HandCoding.drLIB [ 92]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 91]; HandCoding.drLIB [ 2]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 92]; HandCoding.drLIB [ 32]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 93]; HandCoding.drLIB [ 96]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 93]; HandCoding.drLIB [ 96]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 93]; HandCoding.drLIB [ 97]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 93]; HandCoding.drLIB [ 97]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 93]; HandCoding.drLIB [ 95]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 94]; HandCoding.drLIB [ 99]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 94]; HandCoding.drLIB [ 97]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 94]; HandCoding.drLIB [100]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 94]; HandCoding.drLIB [ 95]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 94]; HandCoding.drLIB [ 98]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 95]; HandCoding.drLIB [ 96]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 95]; HandCoding.drLIB [ 97]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 95]; HandCoding.drLIB [ 98]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 95]; HandCoding.drLIB [ 8]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 96]; HandCoding.drLIB [ 99]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 96]; HandCoding.drLIB [ 97]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 96]; HandCoding.drLIB [ 33]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 97]; HandCoding.drLIB [ 99]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 97]; HandCoding.drLIB [ 53]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 98]; HandCoding.drLIB [ 99]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [ 99]; HandCoding.drLIB [ 86]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; HandCoding.drLIB [100]; HandCoding.drLIB [ 37]; HandCodingComforts.iLFC [lAddArc]; HandCoding.drDIS []; <<-- Number the nodes>> HandCodingPseudos.SetLabel[lStartHere]; HandCodingPseudos.MakeLabelGlobal["dfnImpl.StartHere", lStartHere]; <> HandCodingComforts.LoadConstant [1]; HandCodingComforts.iLFC [lNodeLookup]; HandCodingComforts.iLFC [lDepthFirstNumber]; HandCoding.drSRn [rresult]; HandCodingPseudos.SetLabel[lStopHere]; HandCodingPseudos.MakeLabelGlobal["dfnImpl.StopHere", lStopHere]; <<-- And check the result>> <> HandCodingComforts.iLFC [lPrintNodeWorld]; <<};>> HandCodingPseudos.SetLabel[lreturn]; -- HandCoding.drROR [HandCoding.reg0, rresult, HandCodingComforts.Constant0]; HandCodingPseudos.ProcedureExit[0]; }; <<>> <<-- procedures for running the simulator>> lInitializeDfnImplGlobalFrame: HandCodingPseudos.Label; InitializeDfnImplGlobalFrame: HandCodingComforts.Proc = { rdfnImpl: HandCoding.RegSpec = HandCoding.reg0; HandCodingComforts.Prologue["dfnImpl.InitializeDfnImplGlobalFrame", lInitializeDfnImplGlobalFrame, 0]; HandCoding.drLIQB [fdfnImpl]; -- HandCoding.drMove [rdfnImpl, HandCoding.popSrc]; <> HandCodingComforts.LoadConstant [0]; HandCoding.drSRIn [rdfnImpl, odfnDepth]; <> HandCodingComforts.LoadConstant [0]; HandCoding.drSRIn [rdfnImpl, odfnCounter]; <> HandCodingComforts.LoadConstant [0]; HandCoding.drSRIn [rdfnImpl, onlAvail]; <> <> HandCodingComforts.LoadConstant [0]; HandCoding.drSRIn [rdfnImpl, oarcAvail]; <> <> HandCodingComforts.LoadConstant [HandCodingComforts.NILValue]; HandCoding.drSRIn [rdfnImpl, onodeWorld]; HandCodingPseudos.ProcedureExit[0]; }; PrintINT: LizardTweaker.OpcodeHandler = { <<[data: REF ANY, processor: LizardHeart.Processor, inst: DragOpsCross.Inst, rest: DragOpsCross.Word] RETURNS [normal: BOOL _ FALSE]>> operand: INT = DragOpsCrossUtils.WordToInt[rest]; SELECT operand FROM 0 => { <> regS: DragOpsCross.ProcessorRegister = LizardHeart.WordToReg[processor.regs[ifuS]]; StackS: DragOpsCross.Word _ processor.regs[regS]; IF out # NIL THEN IO.PutF[out, " %5g\n", [integer[DragOpsCrossUtils.WordToInt[StackS]]] ]; }; 1 => { <> regS: DragOpsCross.ProcessorRegister = LizardHeart.WordToReg[processor.regs[ifuS]]; StackS: DragOpsCross.Word _ processor.regs[regS]; IF out # NIL THEN IO.PutF[out, " %5g ", [integer[DragOpsCrossUtils.WordToInt[StackS]]] ]; }; ENDCASE; }; All: PROCEDURE = { <> <> <> <> area: HandCodingSupport.Area _ HandCodingSupport.GetCurrentArea[]; lDepthFirstNumber _ HandCodingPseudos.GenLabel[]; ldfnPreVisit _ HandCodingPseudos.GenLabel[]; ldfnNumbered _ HandCodingPseudos.GenLabel[]; ldfnBusy _ HandCodingPseudos.GenLabel[]; ldfnFindcycle _ HandCodingPseudos.GenLabel[]; ldfnSelfCycle _ HandCodingPseudos.GenLabel[]; ldfnPostVisit _ HandCodingPseudos.GenLabel[]; lprintname _ HandCodingPseudos.GenLabel[]; lAddNode _ HandCodingPseudos.GenLabel[]; lNodeLookup _ HandCodingPseudos.GenLabel[]; lAddArc _ HandCodingPseudos.GenLabel[]; lPrintNode _ HandCodingPseudos.GenLabel[]; lPrintArc _ HandCodingPseudos.GenLabel[]; lPrintNodeWorld _ HandCodingPseudos.GenLabel[]; lDoIt _ HandCodingPseudos.GenLabel[]; lInitializeDfnImplGlobalFrame _ HandCodingPseudos.GenLabel[]; <> fdfnImpl _ DragOpsCrossUtils.BytePCToWordAddress[ [DragOpsCrossUtils.CardToWord[ HandCodingSupport.ReserveData[oLast]]]].addr; <> HandCodingComforts.iLFC [lInitializeDfnImplGlobalFrame]; HandCodingComforts.iLFC [lDoIt]; HandCodingPseudos.Halt[0]; <> InitializeDfnImplGlobalFrame[]; DepthFirstNumber[]; dfnPreVisit[]; dfnNumbered[]; dfnBusy[]; dfnFindcycle[]; dfnSelfCycle[]; dfnPostVisit[]; printname[]; AddNode[]; NodeLookup[]; AddArc[]; PrintNode[]; PrintNodeWorld[]; DoIt[]; <> LizardTweaker.Register[x060B, PrintINT]; out _ ViewerIO.CreateViewerStreams[name: "GenDFN.log"].out; }; }.