P [0+8+FQ(+4)[1 0FO10F"G+Q1' +FQ()+4U1 FQ1"L0' ,Q1:M(Q1+4(]1]0)) B SU ]lG).+5<u& Setup Muddle LibraryMUDDLE ModeSyntax Check^R Muddle Structure Insert~DIRECTORY~~DOC~ & Setup Muddle Library~DOC~ MUDDLE Mode~DOC~ Syntax Check~DOC~ ^R Muddle Structure Insert~DOC~ ~Filename~~Filename~~INVERT~M.M^R Muddle Structure InsertU...S 1M.VMuddle Insert Marker Strings? :I**$M.VMuddle Marker Prefix :@I*\I"AUX"MP\M.VMuddle Insert  :@I*\I"DONE"MP\M.VMuddle Insert  :@I*\I"EXTRA"MP\M.VMuddle Insert  :I*MGM.VMuddle Insert  :@I*\I"OPTIONAL"MP\M.VMuddle Insert  :I*-MSMPMCM.VMuddle Insert  :I*MSMPMCM.VMuddle Insert  :@I*\I"TUPLE"MP\M.VMuddle Insert  :I*M.VMuddle Insert Altmode :@I*\MPI MC\M.VMuddle Insert :@I*\I!MPMC\M.VMuddle Insert ! :@I*\MGI"MPI"\M.VMuddle Insert " :@I*\I'MPMC\M.VMuddle Insert ' :@I*\MGI(MPMMelementsI)\M.VMuddle Insert ( :@I*\MGI<* MPMMexpressionsI>\M.VMuddle Insert * :@I*\MGI<+ MPMMexpressionsI>\M.VMuddle Insert + :@I*\MGI,MP\M.VMuddle Insert , :@I*\MGI<- MPMMexpressionsI>\M.VMuddle Insert - :@I*\MGI.MP\M.VMuddle Insert . :@I*\MGI\M.VMuddle Insert / :@I*\MGI;"MPI"\M.VMuddle Insert ; :@I*\MGI<MPMMelementsI>\M.VMuddle Insert < :@I*\MGI<==? MPMMexpressionI MMexpression I>\M.VMuddle Insert = :@I*\MGI\M.VMuddle Insert A :@I*\MGI\M.VMuddle Insert C :@I*\MGI\M.VMuddle Insert D :@I*\MGI(ELSE MPMMconsequentI)\M.VMuddle Insert E :@I*\MGI\M.VMuddle Insert F :@I*\MGI\M.VMuddle Insert G :@I*\MGI\M.VMuddle Insert L :@I*\MGI\M.VMuddle Insert M :@I*\MGI\M.VMuddle Insert N :@I*\MGI\M.VMuddle Insert O :@I*\MGI\M.VMuddle Insert P :@I*\MGI\M.VMuddle Insert R :@I*\MGI\M.VMuddle Insert S :@I*\MGI\M.VMuddle Insert T :@I*\MGI\M.VMuddle Insert U :@I*\MGI#DECL ((MPMMargsI) MMdeclsI)\M.VMuddle Insert V :@I*\MGI[MPMMelementsI]\M.VMuddle Insert [ :@I*\MGI{MPMMelementsI}\M.VMuddle Insert { M(M.M& Init Buffer Locals) M.M^R Indent for LISPM.QI 1,1M.LSpace Indent Flag 1,Q1,Q..QW)M.Q. 1,56M.LComment Column QPermit Unmatched Paren"L 1,0M.LPermit Unmatched Paren' 1000000.[2Q2-1&(aFS^RINIT)[1 !<-)*Q2+Q1M.Q> ]-)*Q2+Q1M.Q] }-)*Q2+Q1M.Q} ]1]2 1,(:I*;)M.LComment Start 1,(:I*;")M.LComment Begin 1,(:I*")M.LComment End M.Q..D 0FO..QMUDDLE ..DF"NU..D' "#W:G..DU..D Q..DM.VMUDDLE ..D !"""""""! 1M(M.M& Alter ..D)<(>)''!','.'#'%'\/"|/A|A !'!' 1M(M.M& Set Mode Line)Muddle1:< :I*CSyntax CheckingFSEchoDisplay 0FSEchoActive [0[1[2[3.[4 J 1:< !TOP!.U30U2[3[2 !AGAIN!:S{<(["])>}U1.U0 Q1"E]2]3Q2"EOWIN'OUNM' 0,-1A-\"EOAGAIN'Q1+5U1 Q1"G[0[1OAGAIN' Q1"L]2]3Q2"EOXTRA'Q1+Q2"NOMISM'OAGAIN' 0,-1A-!"ECOAGAIN' .U3R:S\""EOUNM'OAGAIN !MISM!7FSIMAGE0,Q3-.A:I20,Q0-.A:I1 :I*C2 Mismatched by 1FSEchoDisplay 0FSEchoActive Q3-1JQ0U...T0; !UNM!7FSIMAGE0,Q3-.A:I2 :I*C2 UnmatchedFSEchoDisplay 0FSEchoActive Q3-1JQ0U...T0; !XTRA!7FSIMAGE0,0A:I2 :I*C2 ExtraneousFSEchoDisplay 0FSEchoActive RQ3-1U...T0; !WIN! Q4J :I*CSyntax CorrectFSEchoDisplay 0FSEchoActive >U0Q0F"L-@FEQIT"E'' ]4]3]2]1]0 > :I*CMuddle Insert: FSEchoDisplay QMuddle Marker Prefix[0 QMuddle Insert Marker Strings[1 .[2 [C:@IC\Q2J@VFI[3 Q3-27"E:FO..QMuddle Insert AltmodeU3'"# :@FO..QMuddle Insert 3U3' Q3"GM:..Q(Q3+1)'"#7FSImage']3\ [G:@IG\-2-(:S0)"NQ2J@FLK'\ [M:@IM\G0[3:I3Q1"NG3']3\ [P:IP.U2 [S:@IS\FCFS0+1"GFKC'\ MCQ2J]S]P]M]G]C]2]1]0MuddleMacros for hacking MUDDLE code& Set up environment for Muddle macrosC Enter a mode for editing MUDDLE code. Modifies the delimiter dispatch, ..D, appropriate for MUDDLE syntax, puts special rubout on rubout, sets parameters for comment hackery, and defines Tab to be ^R Indent for LISP. C MUDDLE Syntax checker, adapted from RMODE M-SC MUDDLE structure insertion The next character determines what structure will be inserted. The template for the insertion is the variable $Muddle Insert $ where is the character typed in. The template consists of a sequence of the following, as a TECO program: I$ insert the string. MC continue, getting another character from user. MG gobble marker immediately after the point, if there is one. MM$ insert a marker. The marker consists of the contents of $Muddle Marker Prefix$. If $Muddle Insert Marker Strings?$ is nonzero, the specified string is also inserted. MP put the point here when done. MS put point just before marker (may take arg).& Setup Muddle Library MUDDLE Mode Syntax Check ^R Muddle Structure Insert +8+fq(+4)[20[3 <%3,-q2f2u3q3&1@;q3"l0'> f[BBindq3-1*5,q3*5g2q:..o(0)+q2