(FILECREATED "23-Jan-86 16:24:41" {ERIS}<LISPCORE>CML>LAB>CMLSOURCESTATS.;5 4228   

      changes to:  (VARS FOO CMLSOURCESTATSCOMS BAR)
		   (FNS GATHER-SOURCE-STATS FILE-SOURCE-STATS IGNORE-WHITESPACE SKIP-TO-EOL 
			FILES-SOURCE-STATS)
		   (RECORDS STATS)

      previous date: "15-Jan-86 16:15:48" {ERIS}<LISPCORE>CML>LAB>CMLSOURCESTATS.;1)


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

(PRETTYCOMPRINT CMLSOURCESTATSCOMS)

(RPAQQ CMLSOURCESTATSCOMS [(RECORDS STATS)
			     (FNS FILE-SOURCE-STATS FILES-SOURCE-STATS GATHER-SOURCE-STATS 
				  IGNORE-WHITESPACE SKIP-TO-EOL)
			     (DECLARE: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS
				       (ADDVARS (NLAMA)
						(NLAML)
						(LAMA])
[DECLARE: EVAL@COMPILE 

(DEFSTRUCT STATS NAME (COMMENT-LINES 0 :TYPE FIXNUM)
			(SOURCE-LINES 0 :TYPE FIXNUM)
			(DEFUNS 0 :TYPE FIXNUM)
			(DEFSTRUCTS 0 :TYPE FIXNUM)
			(DEFCONSTANTS 0 :TYPE FIXNUM)
			(DEFMACROS 0 :TYPE FIXNUM))
]
(/DECLAREDATATYPE (QUOTE STATS)
		  (QUOTE (SIGNEDWORD SIGNEDWORD SIGNEDWORD SIGNEDWORD SIGNEDWORD SIGNEDWORD POINTER))
		  (QUOTE ((STATS 0 (SIGNEDBITS . 15))
			  (STATS 1 (SIGNEDBITS . 15))
			  (STATS 2 (SIGNEDBITS . 15))
			  (STATS 3 (SIGNEDBITS . 15))
			  (STATS 4 (SIGNEDBITS . 15))
			  (STATS 5 (SIGNEDBITS . 15))
			  (STATS 6 POINTER)))
		  (QUOTE 8))
(DEFINEQ

(FILE-SOURCE-STATS
  (CL:LAMBDA (FILE)                                          (* raf "16-Jan-86 15:50")
    (LET ((STATS (MAKE-STATS)))
         (SETF (STATS-NAME STATS)
	       FILE)
         (RESETFORM (INFILE FILE)
		      (PROMPTPRINT FILE % )
		      (NLSETQ (CL:DO NIL ((EOFP NIL))
				       (IGNORE-WHITESPACE)
				       (SELCHARQ (BIN NIL)
						 (CR         (* CR a blank line)
						     NIL)
						 (;          (* comment line)
						    (INCF (STATS-COMMENT-LINES STATS)))
						 [%(         (* form is it a def?)
						     (COND
						       ((EQ (PEEKC)
							      (QUOTE d))
							 (SELECTQ (RATOM NIL)
								    (defstruct (INCF (STATS-DEFSTRUCTS
										       STATS)))
								    (defun (INCF (STATS-DEFUNS STATS))
									   )
								    (defconstant (INCF (
STATS-DEFCONSTANTS STATS)))
								    (defmacro (INCF (STATS-DEFMACROS
										      STATS)))
								    NIL]
						 NIL)
				       (SKIP-TO-EOL)
				       (INCF (STATS-SOURCE-LINES STATS))
				       (BLOCK)))
		      (CLOSEF NIL))
     STATS)))

(FILES-SOURCE-STATS
  (CL:LAMBDA (FILES)                                         (* raf "16-Jan-86 14:54")
    (SETQ FILES (CL:IF (SYMBOLP FILES)
			 (FILDIR FILES)
			 FILES))
    (GATHER-SOURCE-STATS (CL:MAPCAR (FUNCTION FILE-SOURCE-STATS)
					FILES))))

(GATHER-SOURCE-STATS
  (CL:LAMBDA (STATS-LIST)                                    (* raf "16-Jan-86 17:58")
    (LET ((SUMMARY (MAKE-STATS)))
         (SETF (STATS-NAME SUMMARY)
	       "<Summary>")
         (CL:MAP NIL [FUNCTION (LAMBDA (STATS)
		       (INCF (STATS-COMMENT-LINES SUMMARY)
			     (STATS-COMMENT-LINES STATS))
		       (INCF (STATS-SOURCE-LINES SUMMARY)
			     (STATS-SOURCE-LINES STATS))
		       (INCF (STATS-DEFUNS SUMMARY)
			     (STATS-DEFUNS STATS))
		       (INCF (STATS-DEFSTRUCTS SUMMARY)
			     (STATS-DEFSTRUCTS STATS))
		       (INCF (STATS-DEFCONSTANTS SUMMARY)
			     (STATS-DEFCONSTANTS STATS))
		       (INCF (STATS-DEFMACROS SUMMARY)
			     (STATS-DEFMACROS STATS]
		   STATS-LIST)
     SUMMARY)))

(IGNORE-WHITESPACE
  (CL:LAMBDA NIL                                             (* raf "16-Jan-86 15:03")
    (CL:DO NIL ((SELCHARQ (CHCON1 (PEEKC NIL))
			  ((SPACE EOL ↑I ↑L)
			    NIL)
			  T)
	    NIL)
	   (BIN))))

(SKIP-TO-EOL
  (CL:LAMBDA NIL                                             (* raf "16-Jan-86 15:03")
    (CL:DO NIL ((SELCHARQ (CHCON1 (PEEKC NIL))
			  ((↑M ↑L ↑J)
			    T)
			  NIL)
	    NIL)
	   (BIN NIL))))
)
(DECLARE: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS 

(ADDTOVAR NLAMA )

(ADDTOVAR NLAML )

(ADDTOVAR LAMA )
)
(PUTPROPS CMLSOURCESTATS COPYRIGHT ("Xerox Corporation" 1986))
(DECLARE: DONTCOPY
  (FILEMAP (NIL (1343 4011 (FILE-SOURCE-STATS 1353 . 2487) (FILES-SOURCE-STATS 2489 . 2777) (
GATHER-SOURCE-STATS 2779 . 3536) (IGNORE-WHITESPACE 3538 . 3777) (SKIP-TO-EOL 3779 . 4009)))))
STOP