aboutsummaryrefslogtreecommitdiff
path: root/src/algebra/strap/ISTRING.lsp
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2010-06-09 16:00:43 +0000
committerdos-reis <gdr@axiomatics.org>2010-06-09 16:00:43 +0000
commit050ebc37a782f65ea7d305d32d79f1427057787f (patch)
treed2227523738cb9819c4f694089209d9eb65b39ec /src/algebra/strap/ISTRING.lsp
parent4e8ea57821d8deaccd9ffb47ff7a4a7f505880c5 (diff)
downloadopen-axiom-050ebc37a782f65ea7d305d32d79f1427057787f.tar.gz
* interp/compiler.boot (canReturn): Handle %when and %bind.
(compMatchAlternative): Generate %bind form. (compMatch): Likewise. (compReduce1): Rewrite. (getIdentity): Tidy. * interp/g-opt.boot (changeThrowToExit): HAndle %reduce. (varIsAssigned): %store is side-effectful. * interp/g-util.boot (expandReduce): New. Expand %reduce forms. * interp/i-map.boot (getUserIdentifiersIn): Handle %reduce. (findLocalVars1): Likewise. * interp/i-spec1.boot (checkForFreeVariables): Likewise.
Diffstat (limited to 'src/algebra/strap/ISTRING.lsp')
-rw-r--r--src/algebra/strap/ISTRING.lsp45
1 files changed, 16 insertions, 29 deletions
diff --git a/src/algebra/strap/ISTRING.lsp b/src/algebra/strap/ISTRING.lsp
index 4cd0567f..23b54d95 100644
--- a/src/algebra/strap/ISTRING.lsp
+++ b/src/algebra/strap/ISTRING.lsp
@@ -544,47 +544,34 @@
$))))))
(DEFUN |ISTRING;concat;L$;28| (|l| $)
- (PROG (#0=#:G1540 #1=#:G1495 #2=#:G1493 #3=#:G1494 |t| |s| #4=#:G1541
- |i|)
+ (PROG (|t| |s| #0=#:G1541 |i|)
(RETURN
(SEQ (LETT |t|
(MAKE-FULL-CVEC
- (PROGN
- (LETT #3# NIL |ISTRING;concat;L$;28|)
- (SEQ (LETT |s| NIL |ISTRING;concat;L$;28|)
- (LETT #0# |l| |ISTRING;concat;L$;28|) G190
- (COND
- ((OR (ATOM #0#)
- (PROGN (SETQ |s| (CAR #0#)) NIL))
- (GO G191)))
- (SEQ (EXIT (PROGN
- (LETT #1# (QCSIZE |s|)
- |ISTRING;concat;L$;28|)
- (COND
- (#3#
- (LETT #2# (+ #2# #1#)
- |ISTRING;concat;L$;28|))
- ('T
- (PROGN
- (LETT #2# #1#
- |ISTRING;concat;L$;28|)
- (LETT #3# 'T
- |ISTRING;concat;L$;28|)))))))
- (SETQ #0# (CDR #0#)) (GO G190) G191
- (EXIT NIL))
- (COND (#3# #2#) ('T 0)))
+ (LET ((#1=#:G1494 NIL) (#2=#:G1495 T)
+ (#3=#:G1540 |l|))
+ (LOOP
+ (COND
+ ((ATOM #3#) (RETURN (COND (#2# 0) (T #1#))))
+ (T (LET ((|s| (CAR #3#)))
+ (LET ((#4=#:G1493 (QCSIZE |s|)))
+ (COND
+ (#2# (SETQ #1# #4#))
+ (T (SETQ #1# (+ #1# #4#))))
+ (SETQ #2# NIL)))))
+ (SETQ #3# (CDR #3#))))
(|spadConstant| $ 53))
|ISTRING;concat;L$;28|)
(LETT |i| (|getShellEntry| $ 6) |ISTRING;concat;L$;28|)
(SEQ (LETT |s| NIL |ISTRING;concat;L$;28|)
- (LETT #4# |l| |ISTRING;concat;L$;28|) G190
+ (LETT #0# |l| |ISTRING;concat;L$;28|) G190
(COND
- ((OR (ATOM #4#) (PROGN (SETQ |s| (CAR #4#)) NIL))
+ ((OR (ATOM #0#) (PROGN (SETQ |s| (CAR #0#)) NIL))
(GO G191)))
(SEQ (|ISTRING;copyInto!;2$I$;29| |t| |s| |i| $)
(EXIT (LETT |i| (+ |i| (QCSIZE |s|))
|ISTRING;concat;L$;28|)))
- (SETQ #4# (CDR #4#)) (GO G190) G191 (EXIT NIL))
+ (SETQ #0# (CDR #0#)) (GO G190) G191 (EXIT NIL))
(EXIT |t|)))))
(DEFUN |ISTRING;copyInto!;2$I$;29| (|y| |x| |s| $)