;;; -*- Mode:LISP; Package:ZWEI; Readtable:CL; Base:10 -*-

;;Originally in FALCON:K;FLEABIT;TOP.LISP -- moved <28-Oct-88 wkf+keith>
;;These functions rehacked by --wkf 9/30/88 |||

(defcom com-compile-region-for-new-processor
	"With numeric arg turns on debug :post; with negative arg opens buffer COMPILER-OUTPUT" ()
  (let ((si:*target-features* si:*falcon-features*)
	(old-debug-mode (nc:debug-off)))
    (when *numeric-arg-p* (nc:debug-on :post))
    (let-if (minusp *NUMERIC-ARG*)
	    ((nc:*debug-stream* (open "ed-buffer:compiler-output" :direction :output)
				#+old-way (open-editor-stream :start *point*)))
      (compile-defun-internal #'nc:compile-region-for-new-processor "Hacking" "hacked."))
    (when *numeric-arg-p* (nc:debug-off :post) (apply #'nc:debug-on old-debug-mode))
    #+old-way(if *numeric-arg-p* dis-text DIS-NONE)
    dis-none))

(command-store 'com-compile-region-for-new-processor #\S-sh-C *ZMACS-COMTAB*)

(defcom com-nmacro-expand-expression "Print nmacroexpansion of next s-expression.
The result is printed on the screen with GRIND-TOP-LEVEL." ()
  (LET ((STREAM (REST-OF-INTERVAL-STREAM (POINT)))
	(si:*target-features* si:*falcon-features*))
    (LET ((FORM (READ-OR-BARF STREAM)))
      (global:GRIND-TOP-LEVEL (nlisp:MACROEXPAND FORM))))
  DIS-NONE)

(command-store 'com-nmacro-expand-expression #\s-sh-M *ZMACS-COMTAB*)

(defvar target-computer-CHOICES '(((:lambda "Lambda.") #\L #\space)
				  ((:falcon "Falcon (K)") #\K #\RUBOUT #\HAND-DOWN)))

(defvar *default-target-computer* nil)

(defcom com-xmacro-expand-expression "Print target-computer macroexpansion of next S-expression.
  With a numeric argument, you select appropriate default target-computer 
  for this and next invocation." ()

  (when (or *numeric-arg-p* (null *default-target-computer*))
    (setq *default-target-computer*
	  (fquery :tyi
		  :choices '((
  (let ((compi*target- )))))))))


