(FILECREATED " 5-Feb-86 20:33:03" {ERIS}<PROLOGCORE>DEMOS>PROLOGTRACE.;2 2730   

      changes to:  (FNS PROLOG-TRACE PROLOG-TRACE-INIT)
		   (VARS PROLOGTRACECOMS PATH CALL-GRAPH-WINDOW)

      previous date: " 5-Feb-86 17:50:49" {ERIS}<PROLOGCORE>DEMOS>PROLOGTRACE.;1)


(* Copyright (c) 1986 by Xerox Corporation. All rights reserved.)

(PRETTYCOMPRINT PROLOGTRACECOMS)

(RPAQQ PROLOGTRACECOMS ((FILES GRAPHER)
			  (VARS (PATH))
			  (FNS PROLOG-TRACE PROLOG-TRACE-INIT)
			  (FNS ADD-CHILD ADD-CHILD-AND-PUSH-CURR-NODE DELETE-AND-POP-CURR-NODE 
			       DELETE-CHILDREN)
			  (P (PROLOG-TRACE-INIT))))
(FILESLOAD GRAPHER)

(RPAQQ PATH NIL)
(DEFINEQ

(PROLOG-TRACE
  [LAMBDA (LEVEL PROCNAME CALLTYPE)                          (* edited: " 5-Feb-86 20:23")
    (DECLARE (GLOBALVARS CALL-GRAPH-WINDOW PATH))
    (LET ((LABEL (CONS PROCNAME LEVEL)))
         (SELECTQ CALLTYPE
		    [call (if PATH
			      then (ADD-CHILD-AND-PUSH-CURR-NODE LABEL)
			    else (SETQ PATH (LIST (LIST LABEL]
		    (fail (DELETE-AND-POP-CURR-NODE LABEL PATH))
		    (solution (DELETE-CHILDREN (pop PATH)))
		    [backtrack (if PATH
				   then (ADD-CHILD-AND-PUSH-CURR-NODE LABEL)
				 else (SETQ PATH (LIST (LIST LABEL]
		    NIL)
         (AND PATH (SHOWGRAPH (LAYOUTSEXPR (CAR (LAST PATH))
						 (QUOTE VERTICAL))
				  CALL-GRAPH-WINDOW])

(PROLOG-TRACE-INIT
  [LAMBDA NIL
    (DECLARE (GLOBALVARS CALL-GRAPH-WINDOW))             (* edited: " 5-Feb-86 20:31")
    (SETQ CALL-GRAPH-WINDOW (CREATEW NIL "Prolog execution tree"])
)
(DEFINEQ

(ADD-CHILD
  [LAMBDA (LABEL)                                            (* hdj "17-Jul-85 12:37")
    (DECLARE (GLOBALVARS PATH))
    (LET ((NODE (LIST LABEL)))
         (RPLACD (CAR PATH)
		 (CONS NODE (CDAR PATH)))
         (push PATH NODE])

(ADD-CHILD-AND-PUSH-CURR-NODE
  [LAMBDA (LABEL)                                            (* hdj "17-Jul-85 12:02")
    (DECLARE (GLOBALVARS PATH))
    (LET ((NODE (LIST LABEL)))
         (RPLACD (CAR PATH)
		 (CONS NODE (CDAR PATH)))
         (push PATH NODE])

(DELETE-AND-POP-CURR-NODE
  [LAMBDA (LABEL)                                            (* hdj "17-Jul-85 12:38")
    (DECLARE (GLOBALVARS PATH))
    (DREMOVE (pop PATH)
	     (CAR PATH])

(DELETE-CHILDREN
  [LAMBDA (NODE)                                             (* hdj "17-Jul-85 12:01")
    (RPLACD NODE NIL])
)
(PROLOG-TRACE-INIT)
(PUTPROPS PROLOGTRACE COPYRIGHT ("Xerox Corporation" 1986))
(DECLARE: DONTCOPY
  (FILEMAP (NIL (661 1672 (PROLOG-TRACE 671 . 1458) (PROLOG-TRACE-INIT 1460 . 1670)) (1673 2628 (
ADD-CHILD 1683 . 1966) (ADD-CHILD-AND-PUSH-CURR-NODE 1968 . 2270) (DELETE-AND-POP-CURR-NODE 2272 . 
2486) (DELETE-CHILDREN 2488 . 2626)))))
STOP