(FILECREATED "16-Oct-85 19:19:10" {ERINYES}<HERRING>COMPILER>DOPVALSEARCH.;8 8077   

      changes to:  (VARS DOPVALSEARCHCOMS)
		   (FNS OPPRINTSEARCH OPPRINTSEARCH1 LEVADJSEARCH DOPVALSEARCH1)

      previous date: " 1-Oct-85 15:49:49" {ERINYES}<HERRING>COMPILER>DOPVALSEARCH.;7)


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

(PRETTYCOMPRINT DOPVALSEARCHCOMS)

(RPAQQ DOPVALSEARCHCOMS ((* * for searching for DOPVALS, DOPCODEs, etc)
			   (FNS DOPVALSEARCH DMACROSEARCH BYTEMACROSEARCH)
			   (FNS OPPRINTSEARCH OPPRINTSEARCH1 LEVADJSEARCH DOPVALSEARCH1)
			   (FNS DOPVALSEARCH0 PRINTDOPVALSLIST DMACROSEARCH0 PRINTDMACROSLIST 
				BYTEMACROSEARCH0 PRINTBYTEMACROSLIST)))
(* * for searching for DOPVALS, DOPCODEs, etc)

(DEFINEQ

(DOPVALSEARCH
  [LAMBDA NIL                                                (* jmh "27-Sep-85 12:14")
    (DOPVALSEARCH0)
    (SETQ DOPVALSATOMSLIST (SORT DOPVALSATOMSLIST))
    (OUTFILE (QUOTE DOPVALSLIST))
    (PRINTDOPVALSLIST)
    (CLOSEF (QUOTE DOPVALSLIST))
    (SEND.FILE.TO.PRINTER (QUOTE DOPVALSLIST])

(DMACROSEARCH
  [LAMBDA NIL                                                (* jmh "27-Sep-85 12:43")
    (PROG (F)
          (DMACROSEARCH0)
          (SETQ DMACROSATOMSLIST (SORT DMACROSATOMSLIST))
          (SETQ F (OUTFILE (QUOTE DMACROSATOMSLIST)))
          (PRINTDMACROSLIST F)
          (CLOSEF F)
          (SEND.FILE.TO.PRINTER F])

(BYTEMACROSEARCH
  [LAMBDA NIL                                                (* jmh " 1-Oct-85 15:49")
    (PROG (F)
          (BYTEMACROSEARCH0)
          (SETQ BYTEMACROSATOMSLIST (SORT BYTEMACROSATOMSLIST))
          (SETQ F (OUTFILE (QUOTE BYTEMACROSATOMSLIST)))
          (PRINTBYTEMACROSLIST F)
          (CLOSEF F)
          (SEND.FILE.TO.PRINTER F])
)
(DEFINEQ

(OPPRINTSEARCH
  [LAMBDA (FILE)                                             (* jmh "16-Oct-85 18:32")

          (* * print OPPRINTs other than T/NIL, with the DOPCODEs that use them)


    (LET (L)
         (DECLARE (SPECVARS L))
         [MAPATOMS (FUNCTION (LAMBDA (A)
			 (LET (D O EL)
			      (if (SETQ D (GETPROP A (QUOTE DOPCODE)))
				  then (SETQ O (fetch OPPRINT of D))
					 (if (AND O (NEQ O T)
						      (NLISTP O))
					     then (if (SETQ EL (for EL in L
									thereis
									 (EQ (CAR EL)
									       O)))
							then (NCONC1 EL D)
						      else (SETQ L (NCONC1 L (LIST O D]
         (SETQ L (SORT L T))
         (printout FILE "opprint NLISTP and other than T/NIL -> dopcode --" T .PPV L T])

(OPPRINTSEARCH1
  [LAMBDA (FILE)                                             (* jmh "16-Oct-85 18:47")

          (* * print DOPCODEs with OPPRINTs T/NIL and OPNARGS > 1)


    (LET (L)
         (DECLARE (SPECVARS L))
         [MAPATOMS (FUNCTION (LAMBDA (A)
			 (LET (D O EL N)
			      (if (SETQ D (GETPROP A (QUOTE DOPCODE)))
				  then (SETQ O (fetch OPPRINT of D))
					 (if (AND (OR (NULL O)
							    (EQ O T))
						      (NUMBERP (SETQ N (fetch OPNARGS
									      of D)))
						      (IGREATERP N 1))
					     then (if (SETQ EL (for EL in L
									thereis
									 (EQ (CAR EL)
									       O)))
							then (NCONC1 EL D)
						      else (SETQ L (NCONC1 L (LIST O D]
         (SETQ L (SORT L T))
         (printout FILE "dopcodes with opprint T/NIL and opnargs > 1 --" T .PPV L T])

(LEVADJSEARCH
  [LAMBDA (FILE)                                             (* jmh "16-Oct-85 18:35")

          (* * print LEVADJs other than NIL and numbers, with the DOPCODEs that use them)


    (LET (L)
         (DECLARE (SPECVARS L))
         [MAPATOMS (FUNCTION (LAMBDA (A)
			 (LET (D LA EL)
			      (if (SETQ D (GETPROP A (QUOTE DOPCODE)))
				  then (SETQ LA (fetch LEVADJ of D))
					 (if (AND LA (NOT (NUMBERP LA)))
					     then (if (SETQ EL (for EL in L
									thereis
									 (EQ (CAR EL)
									       LA)))
							then (NCONC1 EL D)
						      else (SETQ L (NCONC1 L (LIST LA D]
         (SETQ L (SORT L T))
         (printout FILE "levadj not NIL nor number -> dopcodes --" T .PPV L T])

(DOPVALSEARCH1
  [LAMBDA (WORD FILE)                                        (* jmh "16-Oct-85 19:15")
    (printout FILE "DOPVALs containing " WORD " --" T)
    (MAPATOMS (FUNCTION (LAMBDA (A)
		    (LET (D O EL N)
		         (if (AND (SETQ D (GETPROP A (QUOTE DOPVAL)))
				      (NOT (EQUAL (SUBST (CONCAT WORD WORD)
							       WORD D)
						      D)))
			     then (printout T A 16 .PPV D T])
)
(DEFINEQ

(DOPVALSEARCH0
  [LAMBDA NIL                                                (* jmh "25-Sep-85 18:29")

          (* * construct (reversed) list of all atoms that have either DOPCODEs or DOPVALs, for printing)


    (SETQ DOPVALSATOMSLIST NIL)
    (MAPATOMS (FUNCTION (LAMBDA (A)
		  (if (OR (GETPROP A (QUOTE DOPCODE))
			  (GETPROP A (QUOTE DOPVAL)))
		      then (push DOPVALSATOMSLIST A])

(PRINTDOPVALSLIST
  [LAMBDA NIL                                                (* jmh "25-Sep-85 20:41")

          (* * dump list -- in whatever order it's in)


    (PROG ((NDOPVALS 0)
	   (NDOPCODES 0))
          (printout NIL T "DOPVALSATOMSLIST :  atom, dopval, dopcode" T)
          (for A in DOPVALSATOMSLIST
	     do (printout NIL A)
		[if (GETPROP A (QUOTE DOPVAL))
		    then (add NDOPVALS 1)
			 (printout NIL 16 (GETPROP A (QUOTE DOPVAL]
		[if (GETPROP A (QUOTE DOPCODE))
		    then (add NDOPCODES 1)
			 (printout NIL 36 (GETPROP A (QUOTE DOPCODE]
		(printout NIL T))
          (printout NIL "... end,   " NDOPVALS " dopvals,   " NDOPCODES " dopcodes" T])

(DMACROSEARCH0
  [LAMBDA NIL                                                (* jmh "27-Sep-85 12:23")

          (* * construct (reversed) list of all atoms that have DMACROs)


    (SETQ DMACROSATOMSLIST NIL)
    (MAPATOMS (FUNCTION (LAMBDA (A)
		  (if (GETPROP A (QUOTE DMACRO))
		      then (push DMACROSATOMSLIST A])

(PRINTDMACROSLIST
  [LAMBDA (F)                                                (* jmh "27-Sep-85 12:38")

          (* * dump list -- in whatever order it's in)


    (PROG NIL
          (printout F T "DMACROSATOMSLIST :  atom, dmacro" T)
          (for A in DMACROSATOMSLIST do (printout F A 16 .PPF (GETPROP A (QUOTE DMACRO))
						  T))
          (printout F "... end,   " (LENGTH DMACROSATOMSLIST)
		    " dmacros" T])

(BYTEMACROSEARCH0
  [LAMBDA NIL                                                (* jmh " 1-Oct-85 15:47")

          (* * construct (reversed) list of all atoms that have BYTEMACROs)


    (SETQ BYTEMACROSATOMSLIST NIL)
    (MAPATOMS (FUNCTION (LAMBDA (A)
		  (if (GETPROP A (QUOTE BYTEMACRO))
		      then (push BYTEMACROSATOMSLIST A])

(PRINTBYTEMACROSLIST
  [LAMBDA (F)                                                (* jmh " 1-Oct-85 15:48")

          (* * dump list -- in whatever order it's in)


    (PROG NIL
          (printout F T "BYTEMACROSATOMSLIST :  atom, bytemacro" T)
          (for A in BYTEMACROSATOMSLIST do (printout F A 16 .PPF (GETPROP A (QUOTE BYTEMACRO))
						     T))
          (printout F "... end,   " (LENGTH BYTEMACROSATOMSLIST)
		    " dmacros" T])
)
(PUTPROPS DOPVALSEARCH COPYRIGHT ("Xerox Corporation" 1985))
(DECLARE: DONTCOPY
  (FILEMAP (NIL (762 1929 (DOPVALSEARCH 772 . 1129) (DMACROSEARCH 1131 . 1519) (BYTEMACROSEARCH 1521 . 
1927)) (1930 5084 (OPPRINTSEARCH 1940 . 2803) (OPPRINTSEARCH1 2805 . 3772) (LEVADJSEARCH 3774 . 4626) 
(DOPVALSEARCH1 4628 . 5082)) (5085 7994 (DOPVALSEARCH0 5095 . 5542) (PRINTDOPVALSLIST 5544 . 6296) (
DMACROSEARCH0 6298 . 6662) (PRINTDMACROSLIST 6664 . 7126) (BYTEMACROSEARCH0 7128 . 7507) (
PRINTBYTEMACROSLIST 7509 . 7992)))))
STOP