;Reading at top level in Editor Typeout Window 7. ;Reading in base 10 in package SPELL with standard Zetalisp readtable. (defun check-words(input &key (pred '(lambda(x) (not(word-ok-p x)))) (counts nil) (verbose nil) &aux found (count 0) temp eof) (with-open-file (in input) (loop while (not eof) do (multiple-value-setq (temp eof) (read-delimited-string *ng-characters* in nil)) (when (> (string-length temp) 0) (when (funcall pred temp) (when verbose (print temp)) (if counts (isoc temp found) (unless (member temp found) (push-ip temp found))) (incf count))) finally (return found count)))) CHECK-WORDS (disassemble 'check-words) Arg 0 (INPUT) is required, local, not initialized. Rest arg (NIL) is local, not initialized. Local 1 (PRED) is local, initialized to '(LAMBDA (X) (NOT (WORD-OK-P X))). Local 2 (COUNTS) is local, not initialized. Local 3 (VERBOSE) is local, not initialized. 64 MOVE D-IGNORE LOCAL|0 65 BR-NIL 73 66 CALL D-IGNORE FEF|21 ;#'SYSTEM:STORE-KEYWORD-ARG-VALUES 67 (MISC) %STACK-FRAME-POINTER D-PDL 68 MOVE D-PDL LOCAL|0 69 MOVE D-PDL FEF|22 ;'(:PRED :COUNTS :VERBOSE) 70 MOVE D-PDL 'NIL 71 PUSH-E LOCAL|1 ;PRED 72 MOVE D-LAST PDL-POP 73 SET-ZERO LOCAL|5 ;COUNT 74 MOVE D-PDL FEF|23 ;':ABORT 75 POP LOCAL|9 ;.FILE-ABORTED-FLAG. 76 MOVE D-PDL FEF|24 ;'146 77 MOVE D-PDL '4 78 (MISC) %CATCH-OPEN-MV D-IGNORE 79 MOVE D-PDL 'T 80 CALL D-PDL FEF|25 ;#'OPEN 81 MOVE D-LAST ARG|0 ;INPUT 82 MOVEM LOCAL|8 83 POP LOCAL|10 ;IN 84 MOVE D-IGNORE LOCAL|7 ;EOF 85 BR-NOT-NIL 140 86 MOVE D-PDL FEF|26 ;#'READ-DELIMITED-STRING 87 MOVE D-PDL '2 88 (MISC) %CALL-MULT-VALUE D-IGNORE 89 MOVE D-PDL FEF|6 ;*NG-CHARACTERS* 90 MOVE D-PDL LOCAL|10 ;IN 91 MOVE D-LAST 'NIL 92 POP LOCAL|7 ;EOF 93 POP LOCAL|6 ;TEMP 94 CALL D-PDL FEF|27 ;#'STRING-LENGTH 95 MOVE D-LAST LOCAL|6 ;TEMP 96 (MISC) PLUSP D-IGNORE 97 BR-NIL 84 98 CALL D-IGNORE LOCAL|1 ;PRED 99 MOVE D-LAST LOCAL|6 ;TEMP 100 BR-NIL 84 101 MOVE D-IGNORE LOCAL|3 ;VERBOSE 102 BR-NIL 105 103 CALL D-IGNORE FEF|28 ;#'PRINT 104 MOVE D-LAST LOCAL|6 ;TEMP 105 MOVE D-IGNORE LOCAL|2 ;COUNTS 106 BR-NIL 123 107 MOVE D-PDL LOCAL|6 ;TEMP 108 MOVE D-PDL LOCAL|4 ;FOUND 109 (MISC) ASSOC D-PDL 110 BR-NOT-NIL-POP 118 111 MOVE D-PDL LOCAL|6 ;TEMP 112 PUSH-NUMBER 0 113 (MISC) CONS D-PDL 114 MOVE D-PDL LOCAL|4 ;FOUND 115 (MISC) CONS D-PDL 116 MOVEM LOCAL|4 ;FOUND 117 CAR D-PDL PDL-POP 118 MOVEM LOCAL|11 119 CDR D-PDL LOCAL|11 120 1+ PDL-POP 121 (MISC) SETCDR D-IGNORE 122 BR 138 123 MOVE D-PDL LOCAL|6 ;TEMP 124 MOVE D-PDL LOCAL|4 ;FOUND 125 (MISC) MEMBER D-IGNORE 126 BR-NOT-NIL 138 127 MOVE D-IGNORE LOCAL|4 ;FOUND 128 BR-NOT-NIL 133 129 MOVE D-PDL LOCAL|6 ;TEMP 130 PUSH-NUMBER 1 131 (MISC) %INTERNAL-LIST D-PDL 132 BR 137 133 MOVE D-PDL LOCAL|6 ;TEMP 134 MOVE D-PDL LOCAL|4 ;FOUND 135 (MISC) CONS D-PDL 136 MOVEM LOCAL|4 ;FOUND 137 POP LOCAL|4 ;FOUND 138 SETE-1+ LOCAL|5 ;COUNT 139 BR 84 140 MOVE D-PDL LOCAL|4 ;FOUND 141 MOVE D-PDL LOCAL|5 ;COUNT 142 PUSH-NUMBER 2 143 (MISC) RETURN-N-KEEP-CONTROL D-IGNORE 144 SET-NIL LOCAL|9 ;.FILE-ABORTED-FLAG. 145 MOVE D-RETURN PDL-POP 146 MOVE D-IGNORE LOCAL|8 147 BR-NIL 154 148 CALL D-IGNORE FEF|29 ;#'ERRORP 149 MOVE D-LAST LOCAL|8 150 BR-NOT-NIL 154 151 CALL D-IGNORE LOCAL|8 152 MOVE D-PDL FEF|30 ;':CLOSE 153 MOVE D-LAST LOCAL|9 ;.FILE-ABORTED-FLAG. 154 (MISC) %UNWIND-PROTECT-CONTINUE D-RETURN CHECK-WORDS fil "spell-complaints.text" (check-words fil) ("CARNIVORE" "CANADIAN" "MEXICO" "CHINA" "ENCORE" "ALIMENTARY" "TRANQUILIZE" "TRANSCENDENTAL" "RUGBY" "MERMAID" "UNIX" "PARFAIT" "SAXOPHONE" "jacuzzi" "onyx" "OK" "be" "should" "sauna") 64 (defun check-words(input &key (pred #'(lambda(x) (not(word-ok-p x)))) (counts nil) (verbose nil) &aux found (count 0) temp eof) (with-open-file (in input) (loop while (not eof) do (multiple-value-setq (temp eof) (read-delimited-string *ng-characters* in nil)) (when (> (string-length temp) 0) (when (funcall pred temp) (when verbose (print temp)) (if counts (isoc temp found) (unless (member temp found) (push-ip temp found))) (incf count))) finally (return found count)))) CHECK-WORDS (disassemble 'check-words) Arg 0 (INPUT) is required, local, not initialized. Rest arg (NIL) is local, not initialized. Local 1 (NIL) is local, initialized to the value of SI:KEYWORD-GARBAGE. Local 2 (COUNTS) is local, not initialized. Local 3 (VERBOSE) is local, not initialized. 70 MOVE D-IGNORE LOCAL|0 71 BR-NIL 79 72 CALL D-IGNORE FEF|23 ;#'SYSTEM:STORE-KEYWORD-ARG-VALUES 73 (MISC) %STACK-FRAME-POINTER D-PDL 74 MOVE D-PDL LOCAL|0 75 MOVE D-PDL FEF|24 ;'(:PRED :COUNTS :VERBOSE) 76 MOVE D-PDL 'NIL 77 PUSH-E LOCAL|1 78 MOVE D-LAST PDL-POP 79 MOVE D-PDL LOCAL|1 80 EQ FEF|7 ;SI:KEYWORD-GARBAGE 81 BR-NIL 84 82 MOVE D-PDL FEF|25 ;'# 83 BR 85 84 MOVE D-PDL LOCAL|1 85 POP LOCAL|4 ;PRED 86 SET-ZERO LOCAL|6 ;COUNT 87 MOVE D-PDL FEF|26 ;':ABORT 88 POP LOCAL|10 ;.FILE-ABORTED-FLAG. 89 MOVE D-PDL FEF|27 ;'159 90 MOVE D-PDL '4 91 (MISC) %CATCH-OPEN-MV D-IGNORE 92 MOVE D-PDL 'T 93 CALL D-PDL FEF|28 ;#'OPEN 94 MOVE D-LAST ARG|0 ;INPUT 95 MOVEM LOCAL|9 96 POP LOCAL|11 ;IN 97 MOVE D-IGNORE LOCAL|8 ;EOF 98 BR-NOT-NIL 153 99 MOVE D-PDL FEF|29 ;#'READ-DELIMITED-STRING 100 MOVE D-PDL '2 101 (MISC) %CALL-MULT-VALUE D-IGNORE 102 MOVE D-PDL FEF|6 ;*NG-CHARACTERS* 103 MOVE D-PDL LOCAL|11 ;IN 104 MOVE D-LAST 'NIL 105 POP LOCAL|8 ;EOF 106 POP LOCAL|7 ;TEMP 107 CALL D-PDL FEF|30 ;#'STRING-LENGTH 108 MOVE D-LAST LOCAL|7 ;TEMP 109 (MISC) PLUSP D-IGNORE 110 BR-NIL 97 111 CALL D-IGNORE LOCAL|4 ;PRED 112 MOVE D-LAST LOCAL|7 ;TEMP 113 BR-NIL 97 114 MOVE D-IGNORE LOCAL|3 ;VERBOSE 115 BR-NIL 118 116 CALL D-IGNORE FEF|31 ;#'PRINT 117 MOVE D-LAST LOCAL|7 ;TEMP 118 MOVE D-IGNORE LOCAL|2 ;COUNTS 119 BR-NIL 136 120 MOVE D-PDL LOCAL|7 ;TEMP 121 MOVE D-PDL LOCAL|5 ;FOUND 122 (MISC) ASSOC D-PDL 123 BR-NOT-NIL-POP 131 124 MOVE D-PDL LOCAL|7 ;TEMP 125 PUSH-NUMBER 0 126 (MISC) CONS D-PDL 127 MOVE D-PDL LOCAL|5 ;FOUND 128 (MISC) CONS D-PDL 129 MOVEM LOCAL|5 ;FOUND 130 CAR D-PDL PDL-POP 131 MOVEM LOCAL|12 132 CDR D-PDL LOCAL|12 133 1+ PDL-POP 134 (MISC) SETCDR D-IGNORE 135 BR 151 136 MOVE D-PDL LOCAL|7 ;TEMP 137 MOVE D-PDL LOCAL|5 ;FOUND 138 (MISC) MEMBER D-IGNORE 139 BR-NOT-NIL 151 140 MOVE D-IGNORE LOCAL|5 ;FOUND 141 BR-NOT-NIL 146 142 MOVE D-PDL LOCAL|7 ;TEMP 143 PUSH-NUMBER 1 144 (MISC) %INTERNAL-LIST D-PDL 145 BR 150 146 MOVE D-PDL LOCAL|7 ;TEMP 147 MOVE D-PDL LOCAL|5 ;FOUND 148 (MISC) CONS D-PDL 149 MOVEM LOCAL|5 ;FOUND 150 POP LOCAL|5 ;FOUND 151 SETE-1+ LOCAL|6 ;COUNT 152 BR 97 153 MOVE D-PDL LOCAL|5 ;FOUND 154 MOVE D-PDL LOCAL|6 ;COUNT 155 PUSH-NUMBER 2 156 (MISC) RETURN-N-KEEP-CONTROL D-IGNORE 157 SET-NIL LOCAL|10 ;.FILE-ABORTED-FLAG. 158 MOVE D-RETURN PDL-POP 159 MOVE D-IGNORE LOCAL|9 160 BR-NIL 167 161 CALL D-IGNORE FEF|32 ;#'ERRORP 162 MOVE D-LAST LOCAL|9 163 BR-NOT-NIL 167 164 CALL D-IGNORE LOCAL|9 165 MOVE D-PDL FEF|33 ;':CLOSE 166 MOVE D-LAST LOCAL|10 ;.FILE-ABORTED-FLAG. 167 (MISC) %UNWIND-PROTECT-CONTINUE D-RETURN CHECK-WORDS (check-words fil) ;Back to top level in Editor Typeout Window 7. (dribble)