(FILECREATED "15-Dec-85 13:05:06" {FLOPPY}RECORDPRINT.;1 3269   

      previous date: "26-Nov-85 21:29:41" {DSK}<USERFILES>LISPUSERS>RECORDPRINT.;10)


(PRETTYCOMPRINT RECORDPRINTCOMS)

(RPAQQ RECORDPRINTCOMS ((FNS PRINTFETCH PRINTREPLACE)
			(ALISTS (PRETTYPRINTMACROS REPLACE FETCH replace fetch))))
(DEFINEQ

(PRINTFETCH
  [LAMBDA (EXP)                                              (* M.Model "18-Apr-85 16:11")
    (DECLARE (USEDFREE LEFT DEF FNSLST FILE))
    (COND
      ([OR (NLISTP EXP)
	   (NEQ (QUOTE FNS)
		DEF)
	   (NOT (EQLENGTH EXP 4))
	   (AND (NEQ (QUOTE fetch)
		     (CAR EXP))
		(NEQ (QUOTE FETCH)
		     (CAR EXP)))
	   (AND (NEQ (QUOTE of)
		     (CADDR EXP))
		(NEQ (QUOTE OF)
		     (CADDR EXP]                             (* DEF is a PRINTDEF variable indicating whether or not
							     this is part of a function definition.)
	EXP)
      ((LISTP (CADR EXP))
	(PRINTDEF (CAR (NTH EXP 4))
		  LEFT DEF NIL FNSLST FILE)

          (* Have to do the CONCAT because using PRIN1 on each leaves open the possibility of PRIN1 deciding to do a TERPRI, 
	  say, after the .; this way, it can%'t. It%'s OK to have breaks between successive fields.)


	(PRIN1 (CONCAT (QUOTE :)
		       (CAADR EXP)
		       (QUOTE %.)
		       (CADADR EXP)))
	NIL)
      (T (PRINTDEF (CAR (NTH EXP 4))
		   LEFT DEF NIL FNSLST FILE)
	 (PRIN1 (CONCAT (QUOTE :)
			(CADR EXP)))
	 NIL])

(PRINTREPLACE
  [LAMBDA (EXP)                                              (* M.Model "18-Apr-85 16:11")
    (DECLARE (USEDFREE LEFT DEF FNSLST FILE))
    (COND
      ([OR (NLISTP EXP)
	   (NEQ (QUOTE FNS)
		DEF)
	   (NOT (EQLENGTH EXP 6))
	   (AND (NEQ (QUOTE replace)
		     (CAR EXP))
		(NEQ (QUOTE REPLACE)
		     (CAR EXP)))
	   (AND (NEQ (QUOTE of)
		     (CADDR EXP))
		(NEQ (QUOTE OF)
		     (CADDR EXP)))
	   (AND (NEQ (QUOTE with)
		     (CAR (NTH EXP 5)))
		(NEQ (QUOTE WITH)
		     (CAR (NTH EXP 5]                        (* DEF is a PRINTDEF variable indicating whether or not
							     this is part of a function definition.)
	EXP)
      ((LISTP (CADR EXP))
	(PRINTDEF (CAR (NTH EXP 4))
		  LEFT DEF NIL FNSLST FILE)

          (* Have to do the CONCAT because using PRIN1 on each leaves open the possibility of PRIN1 deciding to do a TERPRI, 
	  say, after the .; this way, it can%'t. It%'s OK to have breaks between successive fields.)


	(printout NIL (CONCAT (QUOTE :)
			      (CAADR EXP)
			      (QUOTE %.)
			      (CADADR EXP))
		  (QUOTE ←)
		  (CAR (NTH EXP 6)))
	NIL)
      (T (PRINTDEF (CAR (NTH EXP 4))
		   LEFT DEF NIL FNSLST FILE)
	 (printout NIL (CONCAT (QUOTE :)
			       (CADR EXP))
		   (QUOTE ←)
		   (CAR (NTH EXP 6)))
	 NIL])
)

(ADDTOVAR PRETTYPRINTMACROS (REPLACE . PRINTREPLACE)
			    (FETCH . PRINTFETCH)
			    (replace . PRINTREPLACE)
			    (fetch . PRINTFETCH))
(DECLARE: DONTCOPY
  (FILEMAP (NIL (313 3100 (PRINTFETCH 323 . 1582) (PRINTREPLACE 1584 . 3098)))))
STOP