#| -*-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
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
#| -*-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
(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))
(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 '())
(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)))