diff options
Diffstat (limited to 'src/boot')
-rw-r--r-- | src/boot/ast.boot | 6 | ||||
-rw-r--r-- | src/boot/strap/ast.clisp | 12 | ||||
-rw-r--r-- | src/boot/strap/tokens.clisp | 287 | ||||
-rw-r--r-- | src/boot/strap/translator.clisp | 19 | ||||
-rw-r--r-- | src/boot/translator.boot | 7 |
5 files changed, 149 insertions, 182 deletions
diff --git a/src/boot/ast.boot b/src/boot/ast.boot index 5cf0176a..190fc926 100644 --- a/src/boot/ast.boot +++ b/src/boot/ast.boot @@ -1146,9 +1146,6 @@ bfCompHash(op,argl,body) == shoeCompileTimeEvaluation x == ["EVAL-WHEN", [KEYWORD::COMPILE_-TOPLEVEL], x] -shoeEVALANDFILEACTQ x== - ["EVAL-WHEN", [KEYWORD::EXECUTE, KEYWORD::LOAD_-TOPLEVEL], x] - bfMain(auxfn,op)== g1 := bfGenSymbol() arg :=["&REST",g1] @@ -1172,8 +1169,7 @@ bfMain(auxfn,op)== defCode := ["DEFPARAMETER",cacheName, ['MAKE_-HASHTABLE,["QUOTE","UEQUAL"]]] [defCode,mainFunction, - shoeEVALANDFILEACTQ - ["SETF",["GET", + ["SETF",["GET", ["QUOTE", op],["QUOTE",'cacheInfo]],["QUOTE", cacheVector]]] diff --git a/src/boot/strap/ast.clisp b/src/boot/strap/ast.clisp index c29dc0b2..33bfc335 100644 --- a/src/boot/strap/ast.clisp +++ b/src/boot/strap/ast.clisp @@ -2222,9 +2222,6 @@ (DEFUN |shoeCompileTimeEvaluation| (|x|) (LIST 'EVAL-WHEN (LIST :COMPILE-TOPLEVEL) |x|)) -(DEFUN |shoeEVALANDFILEACTQ| (|x|) - (LIST 'EVAL-WHEN (LIST :EXECUTE :LOAD-TOPLEVEL) |x|)) - (DEFUN |bfMain| (|auxfn| |op|) (PROG (|defCode| |cacheVector| |cacheCountCode| |cacheResetCode| |cacheType| |mainFunction| |codeBody| |thirdPredPair| @@ -2259,11 +2256,10 @@ (LIST 'DEFPARAMETER |cacheName| (LIST 'MAKE-HASHTABLE (LIST 'QUOTE 'UEQUAL)))) (LIST |defCode| |mainFunction| - (|shoeEVALANDFILEACTQ| - (LIST 'SETF - (LIST 'GET (LIST 'QUOTE |op|) - (LIST 'QUOTE '|cacheInfo|)) - (LIST 'QUOTE |cacheVector|)))))))) + (LIST 'SETF + (LIST 'GET (LIST 'QUOTE |op|) + (LIST 'QUOTE '|cacheInfo|)) + (LIST 'QUOTE |cacheVector|))))))) (DEFUN |bfNamespace| (|x|) (LIST '|%Namespace| |x|)) diff --git a/src/boot/strap/tokens.clisp b/src/boot/strap/tokens.clisp index 5465289e..41ae0b5d 100644 --- a/src/boot/strap/tokens.clisp +++ b/src/boot/strap/tokens.clisp @@ -156,159 +156,144 @@ (DEFPARAMETER |shoePun| (|shoePunCons|)) -(EVAL-WHEN (:EXECUTE :LOAD-TOPLEVEL) - (LET ((|bfVar#1| (LIST 'NOT 'LENGTH)) (|i| NIL)) - (LOOP - (COND - ((OR (ATOM |bfVar#1|) (PROGN (SETQ |i| (CAR |bfVar#1|)) NIL)) - (RETURN NIL)) - (T (SETF (GET |i| 'SHOEPRE) T))) - (SETQ |bfVar#1| (CDR |bfVar#1|))))) +(LET ((|bfVar#1| (LIST 'NOT 'LENGTH)) (|i| NIL)) + (LOOP + (COND + ((OR (ATOM |bfVar#1|) (PROGN (SETQ |i| (CAR |bfVar#1|)) NIL)) + (RETURN NIL)) + (T (SETF (GET |i| 'SHOEPRE) T))) + (SETQ |bfVar#1| (CDR |bfVar#1|)))) -(EVAL-WHEN (:EXECUTE :LOAD-TOPLEVEL) - (LET ((|bfVar#1| (LIST (LIST 'SHOEEQ '=) (LIST 'TIMES '*) - (LIST 'REM '|rem|) (LIST 'QUO '|quo|) - (LIST 'PLUS '+) (LIST 'IS '|is|) - (LIST 'ISNT '|isnt|) (LIST 'AND '|and|) - (LIST 'OR '|or|) (LIST 'SLASH '/) - (LIST 'POWER '**) (LIST 'MINUS '-) - (LIST 'LT '<) (LIST 'GT '>) (LIST 'LE '<=) - (LIST 'GE '>=) (LIST 'SHOENE '~=))) - (|i| NIL)) - (LOOP - (COND - ((OR (ATOM |bfVar#1|) (PROGN (SETQ |i| (CAR |bfVar#1|)) NIL)) - (RETURN NIL)) - (T (SETF (GET (CAR |i|) 'SHOEINF) (CADR |i|)))) - (SETQ |bfVar#1| (CDR |bfVar#1|))))) +(LET ((|bfVar#1| + (LIST (LIST 'SHOEEQ '=) (LIST 'TIMES '*) (LIST 'REM '|rem|) + (LIST 'QUO '|quo|) (LIST 'PLUS '+) (LIST 'IS '|is|) + (LIST 'ISNT '|isnt|) (LIST 'AND '|and|) + (LIST 'OR '|or|) (LIST 'SLASH '/) (LIST 'POWER '**) + (LIST 'MINUS '-) (LIST 'LT '<) (LIST 'GT '>) + (LIST 'LE '<=) (LIST 'GE '>=) (LIST 'SHOENE '~=))) + (|i| NIL)) + (LOOP + (COND + ((OR (ATOM |bfVar#1|) (PROGN (SETQ |i| (CAR |bfVar#1|)) NIL)) + (RETURN NIL)) + (T (SETF (GET (CAR |i|) 'SHOEINF) (CADR |i|)))) + (SETQ |bfVar#1| (CDR |bfVar#1|)))) -(EVAL-WHEN (:EXECUTE :LOAD-TOPLEVEL) - (LET ((|bfVar#1| - (LIST (LIST '+ 0) (LIST '|gcd| 0) (LIST '|lcm| 1) - (LIST 'STRCONC "") (LIST '|strconc| "") - (LIST 'CONCAT "") (LIST 'MAX (- 999999)) - (LIST 'MIN 999999) (LIST '* 1) (LIST '|times| 1) - (LIST 'CONS NIL) (LIST '|append| NIL) - (LIST '|append!| NIL) (LIST 'UNION NIL) - (LIST 'UNIONQ NIL) (LIST '|union| NIL) - (LIST '|and| T) (LIST '|or| NIL) (LIST 'AND T) - (LIST 'OR NIL))) - (|i| NIL)) - (LOOP - (COND - ((OR (ATOM |bfVar#1|) (PROGN (SETQ |i| (CAR |bfVar#1|)) NIL)) - (RETURN NIL)) - (T (SETF (GET (CAR |i|) 'SHOETHETA) (CDR |i|)))) - (SETQ |bfVar#1| (CDR |bfVar#1|))))) +(LET ((|bfVar#1| + (LIST (LIST '+ 0) (LIST '|gcd| 0) (LIST '|lcm| 1) + (LIST 'STRCONC "") (LIST '|strconc| "") + (LIST 'CONCAT "") (LIST 'MAX (- 999999)) + (LIST 'MIN 999999) (LIST '* 1) (LIST '|times| 1) + (LIST 'CONS NIL) (LIST '|append| NIL) + (LIST '|append!| NIL) (LIST 'UNION NIL) + (LIST 'UNIONQ NIL) (LIST '|union| NIL) (LIST '|and| T) + (LIST '|or| NIL) (LIST 'AND T) (LIST 'OR NIL))) + (|i| NIL)) + (LOOP + (COND + ((OR (ATOM |bfVar#1|) (PROGN (SETQ |i| (CAR |bfVar#1|)) NIL)) + (RETURN NIL)) + (T (SETF (GET (CAR |i|) 'SHOETHETA) (CDR |i|)))) + (SETQ |bfVar#1| (CDR |bfVar#1|)))) -(EVAL-WHEN (:EXECUTE :LOAD-TOPLEVEL) - (LET ((|bfVar#1| - (LIST (LIST '|abs| 'ABS) (LIST '|abstractChar| 'CODE-CHAR) - (LIST '|alphabetic?| 'ALPHA-CHAR-P) - (LIST '|alphanumeric?| 'ALPHANUMERICP) - (LIST '|and| 'AND) (LIST '|apply| 'APPLY) - (LIST '|array?| 'ARRAYP) (LIST '|arrayRef| 'AREF) - (LIST '|atom| 'ATOM) (LIST '|bitmask| 'SBIT) - (LIST '|canonicalFilename| 'PROBE-FILE) - (LIST '|charByName| 'NAME-CHAR) - (LIST '|charDowncase| 'CHAR-DOWNCASE) - (LIST '|charEq?| 'CHAR=) - (LIST '|charUpcase| 'CHAR-UPCASE) - (LIST '|charString| 'STRING) - (LIST '|char?| 'CHARACTERP) - (LIST '|codePoint| 'CHAR-CODE) (LIST '|cons?| 'CONSP) - (LIST '|copy| 'COPY) (LIST '|copyTree| 'COPY-TREE) - (LIST '|croak| 'CROAK) (LIST '|digit?| 'DIGIT-CHAR-P) - (LIST '|drop| 'DROP) (LIST '|exit| 'EXIT) - (LIST '|false| 'NIL) (LIST '|first| 'CAR) - (LIST '|float?| 'FLOATP) (LIST '|fourth| 'CADDDR) - (LIST '|function| 'FUNCTION) - (LIST '|function?| 'FUNCTIONP) - (LIST '|gensym| 'GENSYM) (LIST '|genvar| 'GENVAR) - (LIST '|integer?| 'INTEGERP) (LIST 'LAST '|last|) - (LIST '|list| 'LIST) (LIST '|listEq?| 'EQUAL) - (LIST '|lowerCase?| 'LOWER-CASE-P) - (LIST '|makeSymbol| 'INTERN) - (LIST '|maxIndex| 'MAXINDEX) (LIST '|mkpf| 'MKPF) - (LIST '|newString| 'MAKE-STRING) - (LIST '|newVector| 'MAKE-ARRAY) (LIST '|nil| NIL) - (LIST '|not| 'NOT) (LIST '|null| 'NULL) - (LIST '|odd?| 'ODDP) (LIST '|or| 'OR) - (LIST '|otherwise| 'T) (LIST '|property| 'GET) - (LIST '|readInteger| 'PARSE-INTEGER) - (LIST '|readLispFromString| 'READ-FROM-STRING) - (LIST '|readOnly?| 'CONSTANTP) - (LIST '|removeDuplicates| 'REMDUP) - (LIST '|rest| 'CDR) (LIST '|sameObject?| 'EQ) - (LIST '|scalarEq?| 'EQL) (LIST '|scalarEqual?| 'EQL) - (LIST '|second| 'CADR) - (LIST '|setIntersection| 'INTERSECTION) - (LIST '|setPart| 'SETELT) (LIST '|setUnion| 'UNION) - (LIST '|strconc| 'CONCAT) (LIST '|stringChar| 'SCHAR) - (LIST '|stringDowncase| 'STRING-DOWNCASE) - (LIST '|string?| 'STRINGP) - (LIST '|stringEq?| 'STRING=) - (LIST '|stringUpcase| 'STRING-UPCASE) - (LIST '|subSequence| 'SUBSEQ) - (LIST '|symbolScope| 'SYMBOL-PACKAGE) - (LIST '|symbolEq?| 'EQ) - (LIST '|symbolFunction| 'SYMBOL-FUNCTION) - (LIST '|symbolName| 'SYMBOL-NAME) - (LIST '|symbolValue| 'SYMBOL-VALUE) - (LIST '|symbol?| 'SYMBOLP) (LIST '|take| 'TAKE) - (LIST '|third| 'CADDR) - (LIST '|toString| 'WRITE-TO-STRING) (LIST '|true| 'T) - (LIST '|upperCase?| 'UPPER-CASE-P) - (LIST '|valueEq?| 'EQUAL) - (LIST '|vector?| 'SIMPLE-VECTOR-P) - (LIST '|vectorRef| 'SVREF) - (LIST '|writeByte| 'WRITE-BYTE) - (LIST '|writeLine| 'WRITE-LINE) (LIST 'PLUS '+) - (LIST 'MINUS '-) (LIST 'TIMES '*) (LIST 'POWER 'EXPT) - (LIST 'REM 'REM) (LIST 'QUO 'TRUNCATE) - (LIST 'SLASH '/) (LIST 'LT '<) (LIST 'GT '>) - (LIST 'LE '<=) (LIST 'GE '>=) (LIST 'SHOEEQ 'EQUAL) - (LIST 'SHOENE '/=) (LIST 'T 'T$))) - (|i| NIL)) - (LOOP - (COND - ((OR (ATOM |bfVar#1|) (PROGN (SETQ |i| (CAR |bfVar#1|)) NIL)) - (RETURN NIL)) - (T (SETF (GET (CAR |i|) 'SHOERENAME) (CDR |i|)))) - (SETQ |bfVar#1| (CDR |bfVar#1|))))) +(LET ((|bfVar#1| + (LIST (LIST '|abs| 'ABS) (LIST '|abstractChar| 'CODE-CHAR) + (LIST '|alphabetic?| 'ALPHA-CHAR-P) + (LIST '|alphanumeric?| 'ALPHANUMERICP) + (LIST '|and| 'AND) (LIST '|apply| 'APPLY) + (LIST '|array?| 'ARRAYP) (LIST '|arrayRef| 'AREF) + (LIST '|atom| 'ATOM) (LIST '|bitmask| 'SBIT) + (LIST '|canonicalFilename| 'PROBE-FILE) + (LIST '|charByName| 'NAME-CHAR) + (LIST '|charDowncase| 'CHAR-DOWNCASE) + (LIST '|charEq?| 'CHAR=) + (LIST '|charUpcase| 'CHAR-UPCASE) + (LIST '|charString| 'STRING) + (LIST '|char?| 'CHARACTERP) + (LIST '|codePoint| 'CHAR-CODE) (LIST '|cons?| 'CONSP) + (LIST '|copy| 'COPY) (LIST '|copyTree| 'COPY-TREE) + (LIST '|croak| 'CROAK) (LIST '|digit?| 'DIGIT-CHAR-P) + (LIST '|drop| 'DROP) (LIST '|exit| 'EXIT) + (LIST '|false| 'NIL) (LIST '|first| 'CAR) + (LIST '|float?| 'FLOATP) (LIST '|fourth| 'CADDDR) + (LIST '|function| 'FUNCTION) + (LIST '|function?| 'FUNCTIONP) (LIST '|gensym| 'GENSYM) + (LIST '|genvar| 'GENVAR) (LIST '|integer?| 'INTEGERP) + (LIST 'LAST '|last|) (LIST '|list| 'LIST) + (LIST '|listEq?| 'EQUAL) + (LIST '|lowerCase?| 'LOWER-CASE-P) + (LIST '|makeSymbol| 'INTERN) + (LIST '|maxIndex| 'MAXINDEX) (LIST '|mkpf| 'MKPF) + (LIST '|newString| 'MAKE-STRING) + (LIST '|newVector| 'MAKE-ARRAY) (LIST '|nil| NIL) + (LIST '|not| 'NOT) (LIST '|null| 'NULL) + (LIST '|odd?| 'ODDP) (LIST '|or| 'OR) + (LIST '|otherwise| 'T) (LIST '|property| 'GET) + (LIST '|readInteger| 'PARSE-INTEGER) + (LIST '|readLispFromString| 'READ-FROM-STRING) + (LIST '|readOnly?| 'CONSTANTP) + (LIST '|removeDuplicates| 'REMDUP) (LIST '|rest| 'CDR) + (LIST '|sameObject?| 'EQ) (LIST '|scalarEq?| 'EQL) + (LIST '|scalarEqual?| 'EQL) (LIST '|second| 'CADR) + (LIST '|setIntersection| 'INTERSECTION) + (LIST '|setPart| 'SETELT) (LIST '|setUnion| 'UNION) + (LIST '|strconc| 'CONCAT) (LIST '|stringChar| 'SCHAR) + (LIST '|stringDowncase| 'STRING-DOWNCASE) + (LIST '|string?| 'STRINGP) (LIST '|stringEq?| 'STRING=) + (LIST '|stringUpcase| 'STRING-UPCASE) + (LIST '|subSequence| 'SUBSEQ) + (LIST '|symbolScope| 'SYMBOL-PACKAGE) + (LIST '|symbolEq?| 'EQ) + (LIST '|symbolFunction| 'SYMBOL-FUNCTION) + (LIST '|symbolName| 'SYMBOL-NAME) + (LIST '|symbolValue| 'SYMBOL-VALUE) + (LIST '|symbol?| 'SYMBOLP) (LIST '|take| 'TAKE) + (LIST '|third| 'CADDR) + (LIST '|toString| 'WRITE-TO-STRING) (LIST '|true| 'T) + (LIST '|upperCase?| 'UPPER-CASE-P) + (LIST '|valueEq?| 'EQUAL) + (LIST '|vector?| 'SIMPLE-VECTOR-P) + (LIST '|vectorRef| 'SVREF) + (LIST '|writeByte| 'WRITE-BYTE) + (LIST '|writeLine| 'WRITE-LINE) (LIST 'PLUS '+) + (LIST 'MINUS '-) (LIST 'TIMES '*) (LIST 'POWER 'EXPT) + (LIST 'REM 'REM) (LIST 'QUO 'TRUNCATE) (LIST 'SLASH '/) + (LIST 'LT '<) (LIST 'GT '>) (LIST 'LE '<=) + (LIST 'GE '>=) (LIST 'SHOEEQ 'EQUAL) (LIST 'SHOENE '/=) + (LIST 'T 'T$))) + (|i| NIL)) + (LOOP + (COND + ((OR (ATOM |bfVar#1|) (PROGN (SETQ |i| (CAR |bfVar#1|)) NIL)) + (RETURN NIL)) + (T (SETF (GET (CAR |i|) 'SHOERENAME) (CDR |i|)))) + (SETQ |bfVar#1| (CDR |bfVar#1|)))) -(EVAL-WHEN (:EXECUTE :LOAD-TOPLEVEL) - (LET ((|bfVar#1| (LIST (LIST '|setName| 0) (LIST '|setLabel| 1) - (LIST '|setLevel| 2) (LIST '|setType| 3) - (LIST '|setVar| 4) (LIST '|setLeaf| 5) - (LIST '|setDef| 6) (LIST '|aGeneral| 4) - (LIST '|aMode| 1) (LIST '|aModeSet| 3) - (LIST '|aTree| 0) (LIST '|aValue| 2) - (LIST '|args| 'CDR) - (LIST '|attributes| 'CADDR) - (LIST '|cacheCount| 'CADDDDR) - (LIST '|cacheName| 'CADR) - (LIST '|cacheReset| 'CADDDR) - (LIST '|cacheType| 'CADDR) - (LIST '|env| 'CADDR) (LIST '|expr| 'CAR) - (LIST 'CAR 'CAR) (LIST '|mmCondition| 'CAADR) - (LIST '|mmDC| 'CAAR) - (LIST '|mmImplementation| 'CADADR) - (LIST '|mmSignature| 'CDAR) - (LIST '|mmTarget| 'CADAR) - (LIST '|mmSource| 'CDDAR) (LIST '|mode| 'CADR) - (LIST '|op| 'CAR) (LIST '|opcode| 'CADR) - (LIST '|opSig| 'CADR) (LIST 'CDR 'CDR) - (LIST '|sig| 'CDDR) (LIST '|source| 'CDR) - (LIST '|streamCode| 'CADDDR) - (LIST '|streamDef| 'CADDR) - (LIST '|streamName| 'CADR) - (LIST '|target| 'CAR))) - (|i| NIL)) - (LOOP - (COND - ((OR (ATOM |bfVar#1|) (PROGN (SETQ |i| (CAR |bfVar#1|)) NIL)) - (RETURN NIL)) - (T (SETF (GET (CAR |i|) 'SHOESELFUNCTION) (CADR |i|)))) - (SETQ |bfVar#1| (CDR |bfVar#1|))))) +(LET ((|bfVar#1| + (LIST (LIST '|setName| 0) (LIST '|setLabel| 1) + (LIST '|setLevel| 2) (LIST '|setType| 3) + (LIST '|setVar| 4) (LIST '|setLeaf| 5) + (LIST '|setDef| 6) (LIST '|aGeneral| 4) + (LIST '|aMode| 1) (LIST '|aModeSet| 3) + (LIST '|aTree| 0) (LIST '|aValue| 2) + (LIST '|args| 'CDR) (LIST '|attributes| 'CADDR) + (LIST '|cacheCount| 'CADDDDR) (LIST '|cacheName| 'CADR) + (LIST '|cacheReset| 'CADDDR) (LIST '|cacheType| 'CADDR) + (LIST '|env| 'CADDR) (LIST '|expr| 'CAR) + (LIST 'CAR 'CAR) (LIST '|mmCondition| 'CAADR) + (LIST '|mmDC| 'CAAR) (LIST '|mmImplementation| 'CADADR) + (LIST '|mmSignature| 'CDAR) (LIST '|mmTarget| 'CADAR) + (LIST '|mmSource| 'CDDAR) (LIST '|mode| 'CADR) + (LIST '|op| 'CAR) (LIST '|opcode| 'CADR) + (LIST '|opSig| 'CADR) (LIST 'CDR 'CDR) + (LIST '|sig| 'CDDR) (LIST '|source| 'CDR) + (LIST '|streamCode| 'CADDDR) (LIST '|streamDef| 'CADDR) + (LIST '|streamName| 'CADR) (LIST '|target| 'CAR))) + (|i| NIL)) + (LOOP + (COND + ((OR (ATOM |bfVar#1|) (PROGN (SETQ |i| (CAR |bfVar#1|)) NIL)) + (RETURN NIL)) + (T (SETF (GET (CAR |i|) 'SHOESELFUNCTION) (CADR |i|)))) + (SETQ |bfVar#1| (CDR |bfVar#1|)))) diff --git a/src/boot/strap/translator.clisp b/src/boot/strap/translator.clisp index fa3d131c..3e93facc 100644 --- a/src/boot/strap/translator.clisp +++ b/src/boot/strap/translator.clisp @@ -595,7 +595,6 @@ (DEFUN |translateToplevelExpression| (|expr|) (PROG (|expr'|) - (DECLARE (SPECIAL |$InteractiveMode|)) (RETURN (PROGN (SETQ |expr'| @@ -609,13 +608,9 @@ ((AND (CONSP |t|) (EQ (CAR |t|) 'DECLARE)) (IDENTITY (RPLACA |t| 'DECLAIM)))) (SETQ |bfVar#1| (CDR |bfVar#1|)))) - (SETQ |expr'| - (COND - ((< 1 (LENGTH |expr'|)) (CONS 'PROGN |expr'|)) - (T (CAR |expr'|)))) (COND - (|$InteractiveMode| |expr'|) - (T (|shoeEVALANDFILEACTQ| |expr'|))))))) + ((< 1 (LENGTH |expr'|)) (CONS 'PROGN |expr'|)) + (T (CAR |expr'|))))))) (DEFUN |inAllContexts| (|x|) (LIST 'EVAL-WHEN (LIST :COMPILE-TOPLEVEL :LOAD-TOPLEVEL :EXECUTE) @@ -1300,13 +1295,11 @@ |objFile|) (T NIL)))))) -(EVAL-WHEN (:EXECUTE :LOAD-TOPLEVEL) - (|associateRequestWithFileType| (|Option| "translate") "boot" - #'|translateBootFile|)) +(|associateRequestWithFileType| (|Option| "translate") "boot" + #'|translateBootFile|) -(EVAL-WHEN (:EXECUTE :LOAD-TOPLEVEL) - (|associateRequestWithFileType| (|Option| "compile") "boot" - #'|compileBootHandler|)) +(|associateRequestWithFileType| (|Option| "compile") "boot" + #'|compileBootHandler|) (DEFUN |loadNativeModule| (|m|) (COND diff --git a/src/boot/translator.boot b/src/boot/translator.boot index e606da82..bc445495 100644 --- a/src/boot/translator.boot +++ b/src/boot/translator.boot @@ -408,11 +408,8 @@ translateToplevelExpression expr == for t in expr' repeat t is ["DECLARE",:.] => t.first := "DECLAIM" - expr' := - #expr' > 1 => ["PROGN",:expr'] - first expr' - $InteractiveMode => expr' - shoeEVALANDFILEACTQ expr' + #expr' > 1 => ["PROGN",:expr'] + first expr' inAllContexts x == ["EVAL-WHEN",[KEYWORD::COMPILE_-TOPLEVEL, |