P [0+8+FQ(+4)[1 0FO10F"G+Q1' +FQ()+4U1 FQ1"L0' ,Q1:M(Q1+4(]1]0)) lV}E %W< i1ih | ! /+A"=]?6-A[Up [ G07s]n-VQ6U_f& Query Loop& XLISP Indent SexpChange / to \Change LAMBDA Combination to LETInterchange slash and backslashLowercase Lisp BufferLowercase Lisp RegionModernize FUNCTION ReferencesModernize LAMBDA CombinationsModernize LAMBDA ReferencesModernize MAP ReferencesModernize NIL OccurrencesModernize Old CATCH/THROW ReferencesModernize QUOTE ReferencesModernize StringsUppercase Lisp BufferUppercase Lisp Region~DIRECTORY~~DOC~ & Query Loop~DOC~ & XLISP Indent Sexp~DOC~ Change / to \~DOC~ Change LAMBDA Combination to LET~DOC~ Interchange slash and backslash~DOC~ Lowercase Lisp Buffer~DOC~ Lowercase Lisp Region~DOC~ Modernize FUNCTION References~DOC~ Modernize LAMBDA Combinations~DOC~ Modernize LAMBDA References~DOC~ Modernize MAP References~DOC~ Modernize NIL Occurrences~DOC~ Modernize Old CATCH/THROW References~DOC~ Modernize QUOTE References~DOC~ Modernize Strings~DOC~ Uppercase Lisp Buffer~DOC~ Uppercase Lisp Region~DOC~ ~Filename~~Filename~~INVERT~r:i*Query/[..J[C[0[P oPause' qCf ,.:"lfi .u0m()q0j qC-,"e !Pause! :i*COk? fsechodispw@v :fiuC qC-4110."e?uC'"#:fiuC' @ftC ... qC- "efi oLoop' qCfQqXx:"lfi ' qC-^"efi .:ww1:<>oPause' qC-"efi oPause' qC- "efi @m(m.m^R New Window) oPause' qC-?"efi ftSpace = Continue C-L = Redisplay C-R = Edit Q or X = Exit Anything else aborts and is reread as a command. --Pause--oPause' ' qC-."e' oLoop' qC-"efi oLoop' qC-efi :-."n.'fkroSkipLoop' qC- "efi @m(m.m^R New Window)woLoop' qCf?:"lfi !"!ftSpace = Replace entry and move on C-L = Redisplay Comma = Replace entry and await approval C-R = Edit Rubout = Don't replace this entry Period = Replace and exit Anything else exits Q or X = Exit and is reread as a command. --Pause--oLoop' qCfXxQq"lfi ' ' !Loop!:-."n.'!SkipLoop!> :i*CEnd of ..Jfsechodisplay 0fsechoactive @:i*|:s(FUNCTION(fkc)|,( @:i*|.[0fll1f[noquitw-d q0j9d@f  k .u0!"!i#'2r m(m.m& XLISP Indent SEXP)  |)!" #'exp @:i*|:s(CATCH(THROW( fkc)|,( @:i*|.[0[11f[noquitwc@fll <:@fll1a-;:@;l>@fll :@fll1a-;"e!"!:i*CH; Can't hack commentfserr' @m(m.m^R Transpose Sexps) -2@fll!"!i'q0+1ji*  |)!" (*CATCH/*THROW 'tag form) @:i*|:s(QUOTE(fkc)|,( @:i*|.[0fll1f[noquitw-d q0j6d@f  k .u0!"!i'2r m(m.m& XLISP Indent SEXP)  |)!" 'exp @:i*|!"!:s#'(LAMBDA(fkcc)|,( @:i*|i#rm(m.m& XLISP Indent SEXP) |)!"<"!m(m.m& Query Loop)Modernize: '(LAMBDA ...) => #'(LAMBDA ...)@:i*|[0<:s(MAP"e0' .-4u0 1a:"b@fll' @f  l !"!1a-'"eq0j-1'> |,( @:i*|c@fll!"!s'ri#rm(m.m& XLISP Indent SEXP) |)!"<"!m(m.m& Query Loop)Modernize: (MAPx 'fun ...) => (MAPx #'fun ...)@:i*~:s/|"e0'r-1~,( @:i*~1f[noquit f[vbwf[vz !"!0,0a-'"e-d' .,(s/|-d.)fsbound jd<.-z;1a-/"ec' "#1af"|!'!:"li/'' c> ji"!'!zji"!'!j  ~)! "..."!''!z[S j0uS <.-z; qS"e1af"|!'!:"l1auS'' "#1a-qS"e0uS'' qS"e1fc' 1a-/"ec' "#1a-;"e:s"ezj''' :c > jz h{[S j0uS <.-z; qS"e1af"|!'!:"l1auS'' "#1a-qS"e0uS'' qS"e1@fc' 1a-/"ec' "#1a-;"e:s"ezj''' :c > jz hf[vbf[vz .,(w.)ffsbound m(m.mLowercase Lisp Buffer)f[vbf[vz .,(w.)ffsbound m(m.mUppercase Lisp Buffer)[0[1[2 [L[A f[noquit g(flx*(f[bbind))q..OuL jfll-djdfll g(zfx*(f[bbind))q..OuA jqLu..O jc1a-l"e@flkilet' "#@flkiLET' s(rflfsbound jc.,(z-1)fsbound <<@f  k 0,1a-;"el'"#0;'> .-z; qAu..O <@f  k 0,1a-;"el'"#0;'> 3f~NIL"e0,4a"b3di()2r'' 2f~()"e 2d-@f  k @f  k 0,1a-;"el' g(b,.fx*(qLu..O@fll))i ' "# 1:<@fll>"n :i*TFA Too Few Actual Argsfserr' @f  l 0,1a-;"el' g(b,.fx*(qLu..Oi(@flli )) i) ' > zj qAu..O@f  k 0,1a-;"eg(hfx*(qLu..Oi ))' "#.-z"eqLu..O' "#:i*TMA Too Many Actual Argsfserr'' zj-@f  k 0,(fsz)fsboundw 1fsnoquit qAu..Of]bbind g(hfx*(f]bbindwflk)) -@fll@m(m.m& XLISP Indent SEXP) @:i*|:s((LAMBDA(fkc)|,( m.mChange LAMBDA Combination to LET( ))m(m.m& Query Loop)LAMBDA Combinations: ((LAMBDA ...) ...) to (LET (...) ...)@:i*|:sNIL(fkcc)|,( @:i*|3di()|)m(m.m& Query Loop)NIL: NIL => ()[0 .(1:<@fll>w.u0)j .(1:<:fll>w.-q0"g)j0' 0,1a-("n)j0' )j ]0 f:m(m.m^R Indent Sexp)j@f l 1:fb-*-"e i;;; -*- Mode: Lisp; -*-  js-*-' 1:fbEscape:"e i Escape: Slash;' "#:fwl .,(s;-:fwl.)f~slash"n :i*CBuffer not using slash escape charfsechodisplay 0fsechoactivel0,.(j)'' [S j0uS <.-z; qS"e1af"|!'!:"l1auS'' "#1a-qS"e0uS'' qS"e 1a-;"e:s"ezj'oLoop'' 1a-\"ei\oLoop' 1a-#"e 2a-/"e2c' 2a-\"e2c'oLoop' 1a-/"e0,2a-/"ed' "#f\' coLoop' !Loop! :c > js-*-sEscape::fwl iBack :i*CConversion of / to \ complete.Afsechodisplay0fsechoactive jz huj @:i*|:<:s57"ezj0;'0,-2a:"d0,-2a:"a0,1a:"d2r0;'''>.-z|,( @:i*|2di#//|( ))m(m.m& Query Loop)Change / to \: Maybe change octal 57 to #// j @:i*|:<:s47"ezj0;'0,-2a:"d0,-2a:"a0,1a:"d2r0;'''>.-z|,( @:i*|2d0,1a-."ed'i#//|( ))m(m.m& Query Loop)Change / to \: Maybe change decimal 47 to #// j @:i*|:<:s#o57"ezj0;'0,1a:"d0;'>.-z|,( @:i*|2di#//|( ))m(m.m& Query Loop)Change / to \: Maybe change #o57 to #// j @:i*|:sslash|,( @:i*|5r-4f~BACK"e-4d' "#1a-s"eiback' "#2a-L"eiBACK' "#iBackfs'''5c|( ))!""""!m(m.m& Query Loop)Change / to \: Maybe interchange ``slash'' and ``backslash jz hXLISPMacros for transforming Lisp Code& Loop doing things and asking for confirmationS Change (FUNCTION form) => #'form S CATCH/THROW => *CATCH/*THROW S Change (QUOTE form) => 'form S Change '(LAMBDA ...) => #'(LAMBDA ...) S Change (MAPxxx '... ...) => (MAPxxx #'... ...)S Search for things in |...| => "..."S Lowercase a buffer of lisp text respecting things that should not get lowercased.S Uppercase a buffer of lisp text respecting things that should not get uppercased.S Lowercase a region of Lisp textS Uppercase a region of Lisp text& The name says it, man...S Change ((LAMBDA ...)...) => (LET (...)...)S Change NIL to ()& Like ^R Indent SEXP but tries not to err outS Update buffer for the new Lisp backslash syntaxS Swap slash and backslash & Query Loop Modernize FUNCTION References Modernize Old CATCH/THROW References Modernize QUOTE References Modernize LAMBDA References Modernize MAP References Modernize Strings Lowercase Lisp Buffer Uppercase Lisp Buffer Lowercase Lisp Region Uppercase Lisp Region Change LAMBDA Combination to LET Modernize LAMBDA Combinations Modernize NIL Occurrences & XLISP Indent Sexp Change / to \ Interchange slash and backslash +8+fq(+4)[20[3 <%3,-q2f2u3q3&1@;q3"l0'> f[BBindq3-1*5,q3*5g2q:..o(0)+q2