1 "MUDDLE EDITOR, PRETTY-PRINT, AND OTHER ASSORTED ROUTINES"
22 %%<BLOCK <SETG EDITOR (<MOBLIST 7> <ROOT>)>>
24 <SETG DEFINE <FUNCTION (NAME "ARGS" BODY "NAME" REDEF)
25 <COND (<GASSIGNED? .NAME><COND (<LISTEN
26 DO-YOU-REALLY-WANT-TO-REDEFINE .NAME
27 IF-SO-ERRET-TRUE-OTHERWISE-FALSE>)
28 (ELSE <EXIT .REDEF>)>)>
29 <SETG .NAME <CHTYPE .BODY FUNCTION>>
32 <SETG FRAMES <FUNCTION (I)
33 <REPEAT ((FRM <FRAME>)(SMALL 1))
34 <COND (<L? .I .SMALL > <RETURN FUNCT---ARGS>)>
35 <SET FRM <FRAME .FRM>>
40 <SET SMALL <+ .SMALL 1>>
48 <SETG 1+ <FUNCTION (NUMBER) <+ .NUMBER 1>>>
49 <SETG 1- <FUNCTION (NUMBER) <- .NUMBER 1>>>
51 <SETG INC <FUNCTION (ATOM "OPTIONAL" (VAL 1))
52 <SET .ATOM <+ ..ATOM .VAL>>>>
54 <SETG DEC <FUNCTION (ATOM "OPTIONAL" (VAL 1))
55 <SET .ATOM <- ..ATOM .VAL>>>>
57 <SETG CHOP <FUNCTION (ATOM "OPTIONAL" (VAL 1))
58 <SET .ATOM <REST ..ATOM .VAL>>>>
61 <SETG TPL <FUNCTION ()
62 <OPEN "PRINT" "" "" "TPL">>>
64 <SETG LPT <FUNCTION ("OPTIONAL" (DEFAULT TRUE))
65 <COND (<OPEN "PRINT" "" "" "LPT">)
68 <SET TABS ["" " " " " " "
77 <SET SPACES ["" " " " " " " " " " " " " " "]>
80 <SETG INDENT-TO <FUNCTION ( N "AUX" (NOW <LINPOS .OUTCHAN>))
82 <PRINC <<- </ .N 8> </ .NOW 8 > -1> .TABS>>
83 <PRINC <<- .N <* </ .N 8> 8> -1> .SPACES>>)>>>
85 <SETG COMPONENTS <FUNCTION (L M)
86 <REPEAT ((N <LINPOS .OUTCHAN>))
88 <COND (<EMPTY? <SET L <REST .L>>><RETURN DONE>)>
94 <SETG FORMS <FUNCTION (L)
95 <COND (<FLATSIZE .L <- <LINLNT .OUTCHAN> <LINPOS .OUTCHAN> .M>>
100 (<==? <TYPE .L> FORM> <PRINC "<">
103 <FORM1 <REST .L> <+ .M 1>>
105 (<==? <TYPE .L> LIST><PRINC "(">
108 (<==? <TYPE .L> VECTOR><PRINC "[">
111 (<==? <TYPE .L> FUNCTION>
112 <PRINC "<FUNCTION " >
115 (<MONAD? .L> <PRIN1 .L>)
124 <SETG PPRINT <FUNCTION (L "OPTIONAL" (OUTCHAN .OUTCHAN))
125 <COND (<GASSIGNED? .L>
126 <EPPRINT <CHTYPE (SETG .L ,.L) FORM>>)
128 <EPPRINT <CHTYPE (SET .L ..L) FORM>>)
132 <SETG EPPRINT <FUNCTION ( L "AUX" (M 1))