Add new procedures YNODE-EXP-SPECIAL and YNODE-RESULT-SPECIAL to
authorChris Hanson <org/chris-hanson/cph>
Thu, 13 Oct 1994 04:02:54 +0000 (04:02 +0000)
committerChris Hanson <org/chris-hanson/cph>
Thu, 13 Oct 1994 04:02:54 +0000 (04:02 +0000)
identify special markers within the ynode structure.

v7/src/edwin/edwin.pkg
v7/src/runtime/ystep.scm

index efe7e337ba0f39007d7a1902f42b64772e72ddf5..ee0d8b7aac7f22406f216adde4ab88e0d8f3faf0 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Id: edwin.pkg,v 1.152 1994/10/12 00:30:50 cph Exp $
+$Id: edwin.pkg,v 1.153 1994/10/13 04:02:54 cph Exp $
 
 Copyright (c) 1989-1994 Massachusetts Institute of Technology
 
@@ -1347,10 +1347,12 @@ MIT in each case. |#
          ynode-contract!
          ynode-doesnt-need-redisplay!
          ynode-exp
+         ynode-exp-special
          ynode-expand!
          ynode-hidden-children?
          ynode-needs-redisplay?
          ynode-result
+         ynode-result-special
          ynode-type
          ynode-value-node)
   (initialization (initialize-package!)))
\ No newline at end of file
index 3f80067fd60c4f2c527409be38847276cc324200..88b95362bcbc6dbb0740d35401a614ce1d1c0ddd 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Id: ystep.scm,v 1.1 1994/10/12 07:54:00 cph Exp $
+$Id: ystep.scm,v 1.2 1994/10/13 04:02:08 cph Exp $
 
 Copyright (c) 1994 Massachusetts Institute of Technology
 
@@ -310,9 +310,22 @@ MIT in each case. |#
 (define ynode-exp:top-level (list 'STEPPER-TOP-LEVEL))
 (define ynode-exp:proceed   (list 'STEPPER-PROCEED))
 
-(define ynode-result:waiting (list '<WAITING>))
-(define ynode-result:reduced (list '<REDUCED>))
-(define ynode-result:unknown (list '<UNKNOWN>))
+(define (ynode-exp-special node)
+  (let ((exp (ynode-exp node)))
+    (and (or (eq? ynode-exp:top-level exp)
+            (eq? ynode-exp:proceed exp))
+        (car exp))))
+
+(define ynode-result:waiting (list 'WAITING))
+(define ynode-result:reduced (list 'REDUCED))
+(define ynode-result:unknown (list 'UNKNOWN))
+
+(define (ynode-result-special node)
+  (let ((result (ynode-result node)))
+    (and (or (eq? ynode-result:waiting result)
+            (eq? ynode-result:reduced result)
+            (eq? ynode-result:unknown result))
+        (car result))))
 
 (define (ynode-reduced? node)
   (eq? (ynode-result node) ynode-result:reduced))
@@ -358,7 +371,7 @@ MIT in each case. |#
             (and previous
                  (ynode-reduced? previous)
                  (ynode-reduces-to? previous reduces-to))))))
-
+\f
 (define (ynode-splice-under node)
   (let ((children (ynode-children node)))
     (set-ynode-children! node '())
@@ -369,7 +382,7 @@ MIT in each case. |#
        (ynode-needs-redisplay! ynode)
        (for-each loop (ynode-children node)))
       new-node)))
-\f
+
 (define (ynode-reductions node)
   (if (ynode-reduced? node)
       (let ((next (ynode-next node)))