diff --git a/books/bookvol9.pamphlet b/books/bookvol9.pamphlet index e9553e1..44f8ba2 100644 --- a/books/bookvol9.pamphlet +++ b/books/bookvol9.pamphlet @@ -19153,8 +19153,41 @@ Stack of results of reduced productions. \end{chunk} -\chapter{Comment handlers} +\chapter{Comment Recording} + +\begin{chunk}{v9CommentRecording.dot} +digraph pic { + fontsize=10; + bgcolor="#ECEA81"; + node [shape=box, color=white, style=filled]; + +"postDef" [color="#FFFFFF"] +"PARSE-Category" [color="#FFFFFF"] + +"recordAttributeDocumentation" [color="#FF6600"] +"recordSignatureDocumentation" [color="#FF6600"] +"recordDocumentation" [color="#2222DD"] +"collectComBlock" [color="#22EE22"] +"recordHeaderDocumentation" [color="#FFFF66"] +"collectAndDeleteAssoc" [color="#FFFF66"] + +"postDef" -> "recordHeaderDocumentation" +"PARSE-Category" -> "recordSignatureDocumentation" +"PARSE-Category" -> "recordAttributeDocumentation" + +"recordAttributeDocumentation" -> "recordDocumentation" +"recordSignatureDocumentation" -> "recordDocumentation" +"recordDocumentation" -> "recordHeaderDocumentation" +"recordDocumentation" -> "collectComBlock" +"collectComBlock" -> "collectAndDeleteAssoc" +} + +\end{chunk} + +\section{Comment Recording Layer 0 -- API} + \defun{recordSignatureDocumentation}{recordSignatureDocumentation} +This function is called externally by PARSE-Category. \calls{recordSignatureDocumentation}{recordDocumentation} \calls{recordSignatureDocumentation}{postTransform} \begin{chunk}{defun recordSignatureDocumentation} @@ -19163,8 +19196,8 @@ Stack of results of reduced productions. \end{chunk} - \defun{recordAttributeDocumentation}{recordAttributeDocumentation} +This function is called externally by PARSE-Category. \calls{recordAttributeDocumentation}{opOf} \calls{recordAttributeDocumentation}{pname} \calls{recordAttributeDocumentation}{upper-case-p} @@ -19184,6 +19217,8 @@ Stack of results of reduced productions. \end{chunk} +\section{Comment Recording Layer 1} + \defun{recordDocumentation}{recordDocumentation} \calls{recordDocumentation}{recordHeaderDocumentation} \calls{recordDocumentation}{collectComBlock} @@ -19200,7 +19235,31 @@ Stack of results of reduced productions. \end{chunk} +\section{Comment Recording Layer 2} + +\defun{collectComBlock}{collectComBlock} +\calls{collectComBlock}{collectAndDeleteAssoc} +\defsdollar{collectComBlock}{comblocklist} +\begin{chunk}{defun collectComBlock} +(defun |collectComBlock| (x) + (let (val u) + (declare (special $comblocklist)) + (cond + ((and (consp $comblocklist) + (consp (qcar $comblocklist)) + (equal (qcaar $comblocklist) x)) + (setq val (qcdar $comblocklist)) + (setq u (append val (|collectAndDeleteAssoc| x))) + (setq $comblocklist (cdr $comblocklist)) + u) + (t (|collectAndDeleteAssoc| x))))) + +\end{chunk} + +\section{Comment Recording Layer 3} + \defun{recordHeaderDocumentation}{recordHeaderDocumentation} +This function is called externally by postDef. \calls{recordHeaderDocumentation}{assocright} \refsdollar{recordHeaderDocumentation}{maxSignatureLineNumber} \refsdollar{recordHeaderDocumentation}{comblocklist} @@ -19224,25 +19283,6 @@ Stack of results of reduced productions. \end{chunk} -\defun{collectComBlock}{collectComBlock} -\calls{collectComBlock}{collectAndDeleteAssoc} -\defsdollar{collectComBlock}{comblocklist} -\begin{chunk}{defun collectComBlock} -(defun |collectComBlock| (x) - (let (val u) - (declare (special $comblocklist)) - (cond - ((and (consp $comblocklist) - (consp (qcar $comblocklist)) - (equal (qcaar $comblocklist) x)) - (setq val (qcdar $comblocklist)) - (setq u (append val (|collectAndDeleteAssoc| x))) - (setq $comblocklist (cdr $comblocklist)) - u) - (t (|collectAndDeleteAssoc| x))))) - -\end{chunk} - \defun{collectAndDeleteAssoc}{collectAndDeleteAssoc} \begin{verbatim} u is (.. (x . a) .. (x . b) .. ) ==> (a b ..) @@ -19267,6 +19307,257 @@ deleting entries from u assumes that the first element is useless \end{chunk} +\chapter{Comment Syntax Checking} + +\begin{chunk}{v9CommentSyntaxChecking.dot} +digraph hierarchy { + fontsize=10; + bgcolor="#ECEA81"; + node [shape=box, color=white, style=filled]; + +"compileDocumentation" [color="#FFFFFF"] +"finalizeLisplib" [color="#FFFFFF"] + +{rank=same; "compileDocumentation" "finalizeLisplib"} + +"checkAddBackSlashes" [color="#FFFF66"] +"checkAddMacros" [color="#FFFF66"] +"checkAddPeriod" [color="#FFFF66"] +"checkAddSpaceSegments" [color="#FFFF66"] +"checkAddSpaces" [color="#FFFF66"] +"checkAlphabetic" [color="#FFFF66"] +"checkIeEgfun" [color="#FFFF66"] +"checkIsValidType" [color="#FFFF66"] +"checkLookForLeftBrace" [color="#FFFF66"] +"checkLookForRightBrace" [color="#FFFF66"] +"checkNumOfArgs" [color="#FFFF66"] +"checkSayBracket" [color="#FFFF66"] +"checkSkipBlanks" [color="#FFFF66"] +"checkSplitBackslash" [color="#FFFF66"] +"checkSplitOn" [color="#FFFF66"] +"checkSplitPunctuation" [color="#FFFF66"] +"firstNonBlankPosition" [color="#FFFF66"] +"getMatchingRightPren" [color="#FFFF66"] +"hasNoVowels" [color="#FFFF66"] +"htcharPosition" [color="#FFFF66"] +"newWordFrom" [color="#FFFF66"] +"removeBackslashes" [color="#FFFF66"] +"whoOwns" [color="#FFFF66"] + +{rank=same; + "checkAddBackSlashes" + "checkAddMacros" + "checkAddPeriod" + "checkAddSpaceSegments" + "checkAddSpaces" + "checkAlphabetic" + "checkIeEgfun" + "checkIsValidType" + "checkLookForLeftBrace" + "checkLookForRightBrace" + "checkNumOfArgs" + "checkSayBracket" + "checkSkipBlanks" + "checkSplitBackslash" + "checkSplitOn" + "checkSplitPunctuation" + "firstNonBlankPosition" + "getMatchingRightPren" + "hasNoVowels" + "htcharPosition" + "newWordFrom" + "removeBackslashes" + "whoOwns" +} + +"checkAddIndented" [color="#22EE22"] +"checkDocMessage" [color="#22EE22"] +"checkExtract" [color="#22EE22"] +"checkGetArgs" [color="#22EE22"] +"checkGetMargin" [color="#22EE22"] +"checkGetParse" [color="#22EE22"] +"checkGetStringBeforeRightBrace" [color="#22EE22"] +"checkIeEg" [color="#22EE22"] +"checkIndentedLines" [color="#22EE22"] +"checkSkipIdentifierToken" [color="#22EE22"] +"checkSkipOpToken" [color="#22EE22"] +"checkSplitBrace" [color="#22EE22"] +"checkTrimCommented" [color="#22EE22"] +"newString2Words" [color="#22EE22"] + +{rank=same; + "checkAddIndented" + "checkDocMessage" + "checkExtract" + "checkGetArgs" + "checkGetMargin" + "checkGetParse" + "checkGetStringBeforeRightBrace" + "checkIeEg" + "checkIndentedLines" + "checkSkipIdentifierToken" + "checkSkipOpToken" + "checkSplitBrace" + "checkTrimCommented" + "newString2Words" +} + +"checkDocError" [color="#2222DD"] +"checkRemoveComments" [color="#2222DD"] +"checkSkipToken" [color="#2222DD"] +"checkSplit2Words" [color="#2222DD"] + +{rank=same; + "checkDocError" + "checkRemoveComments" + "checkSkipToken" + "checkSplit2Words" +} + +"checkBeginEnd" [color="#FF6600"] +"checkDecorate" [color="#FF6600"] +"checkDecorateForHt" [color="#FF6600"] +"checkDocError1" [color="#FF6600"] +"checkFixCommonProblem" [color="#FF6600"] +"checkGetLispFunctionName" [color="#FF6600"] +"checkHTargs" [color="#FF6600"] +"checkRecordHash" [color="#FF6600"] +"checkTexht" [color="#FF6600"] +"checkTransformFirsts" [color="#FF6600"] +"checkTrim" [color="#FF6600"] + +{rank=same; + "checkBeginEnd" + "checkDecorate" + "checkDecorateForHt" + "checkDocError1" + "checkFixCommonProblem" + "checkGetLispFunctionName" + "checkHTargs" + "checkRecordHash" + "checkTexht" + "checkTransformFirsts" + "checkTrim" +} + +"checkArguments" [color="#0066FF"] +"checkBalance" [color="#0066FF"] + +{rank=same; + "checkArguments" + "checkBalance" +} + +"checkComments" [color="#006600"] +"checkRewrite" [color="#006600"] + +{rank=same; + "checkComments" + "checkRewrite" +} + +"transformAndRecheckComments" [color="#448822"] + +"transDoc" [color="#448822"] + +"transDocList" [color="#448822"] + +"finalizeDocumentation" [color="#448822"] + +"checkAddIndented" -> "firstNonBlankPosition" +"checkAddIndented" -> "checkAddSpaceSegments" +"checkArguments" -> "checkHTargs" +"checkBalance" -> "checkBeginEnd" +"checkBalance" -> "checkDocError" +"checkBalance" -> "checkSayBracket" +"checkBeginEnd" -> "checkDocError" +"checkComments" -> "checkGetMargin" +"checkComments" -> "checkTransformFirsts" +"checkComments" -> "checkIndentedLines" +"checkComments" -> "checkGetArgs" +"checkComments" -> "newString2Words" +"checkComments" -> "checkAddSpaces" +"checkComments" -> "checkIeEg" +"checkComments" -> "checkSplit2Words" +"checkComments" -> "checkBalance" +"checkComments" -> "checkArguments" +"checkComments" -> "checkFixCommonProblem" +"checkComments" -> "checkDecorate" +"checkComments" -> "checkAddPeriod" +"checkDecorate" -> "checkDocError" +"checkDecorate" -> "checkAddBackSlashes" +"checkDecorate" -> "hasNoVowels" +"checkDecorateForHt" -> "checkDocError" +"checkDocError" -> "checkDocMessage" +"checkDocError1" -> "checkDocError" +"checkDocMessage" -> "whoOwns" +"checkExtract" -> "firstNonBlankPosition" +"checkFixCommonProblem" -> "checkDocError" +"checkGetArgs" -> "firstNonBlankPosition" +"checkGetArgs" -> "getMatchingRightPren" +"checkGetLispFunctionName" -> "checkDocError" +"checkGetMargin" -> "firstNonBlankPosition" +"checkGetParse" -> "removeBackslashes" +"checkHTargs" -> "checkLookForLeftBrace" +"checkHTargs" -> "checkLookForRightBrace" +"checkHTargs" -> "checkDocError" +"checkIeEg" -> "checkIeEgfun" +"checkIndentedLines" -> "firstNonBlankPosition" +"checkIndentedLines" -> "checkAddSpaceSegments" +"checkRecordHash" -> "checkLookForLeftBrace" +"checkRecordHash" -> "checkLookForRightBrace" +"checkRecordHash" -> "checkGetLispFunctionName" +"checkRecordHash" -> "checkGetStringBeforeRightBrace" +"checkRecordHash" -> "checkGetParse" +"checkRecordHash" -> "checkDocError" +"checkRecordHash" -> "checkNumOfArgs" +"checkRecordHash" -> "checkIsValidType" +"checkRemoveComments" -> "checkTrimCommented" +"checkRewrite" -> "checkRemoveComments" +"checkRewrite" -> "checkAddIndented" +"checkRewrite" -> "checkGetArgs" +"checkRewrite" -> "newString2Words" +"checkRewrite" -> "checkAddSpaces" +"checkRewrite" -> "checkSplit2Words" +"checkRewrite" -> "checkAddMacros" +"checkRewrite" -> "checkTexht" +"checkRewrite" -> "checkArguments" +"checkRewrite" -> "checkFixCommonProblem" +"checkRewrite" -> "checkRecordHash" +"checkRewrite" -> "checkDecorateForHt" +"checkSkipIdentifierToken" -> "checkAlphabetic" +"checkSkipOpToken" -> "checkAlphabetic" +"checkSkipToken" -> "checkSkipIdentifierToken" +"checkSkipToken" -> "checkSkipOpToken" +"checkSplit2Words" -> "checkSplitBrace" +"checkSplitBrace" -> "checkSplitBackslash" +"checkSplitBrace" -> "checkSplitOn" +"checkSplitBrace" -> "checkSplitPunctuation" +"checkTexht" -> "checkDocError" +"checkTransformFirsts" -> "checkSkipToken" +"checkTransformFirsts" -> "checkSkipBlanks" +"checkTransformFirsts" -> "getMatchingRightPren" +"checkTransformFirsts" -> "checkDocError" +"checkTrim" -> "checkDocError" +"checkTrimCommented" -> "htcharPosition" +"finalizeDocumentation" -> "transDocList" +"newString2Words" -> "newWordFrom" +"transDoc" -> "checkDocError1" +"transDoc" -> "checkTrim" +"transDoc" -> "checkExtract" +"transDoc" -> "transformAndRecheckComments" +"transDocList" -> "transDoc" +"transDocList" -> "checkDocError" +"transDocList" -> "checkDocError1" +"transformAndRecheckComments" -> "checkComments" +"transformAndRecheckComments" -> "checkRewrite" + +"compileDocumentation" -> "finalizeDocumentation" +"finalizeLisplib" -> "finalizeDocumentation" +} +\end{chunk} + +\section{Comment Checking Layer 0 -- API} \defun{finalizeDocumentation}{finalizeDocumentation} \calls{finalizeDocumentation}{bright} \calls{finalizeDocumentation}{sayMSG} @@ -19391,7 +19682,8 @@ deleting entries from u assumes that the first element is useless \end{chunk} -\section{Transformation of ++ comments} +\section{Comment Checking Layer 1} + \defun{transDocList}{transDocList} \calls{transDocList}{sayBrightly} \calls{transDocList}{transDoc} @@ -19423,6 +19715,8 @@ deleting entries from u assumes that the first element is useless \end{chunk} +\section{Comment Checking Layer 2} + \defun{transDoc}{transDoc} \calls{transDoc}{checkDocError1} \calls{transDoc}{checkTrim} @@ -19475,8 +19769,12 @@ deleting entries from u assumes that the first element is useless \end{chunk} +\section{Comment Checking Layer 3} + \defun{transformAndRecheckComments}{transformAndRecheckComments} \calls{transformAndRecheckComments}{sayBrightly} +\calls{transformAndRecheckComments}{checkComments} +\calls{transformAndRecheckComments}{checkRewrite} \refsdollar{transformAndRecheckComments}{exposeFlagHeading} \defsdollar{transformAndRecheckComments}{checkingXmptex?} \defsdollar{transformAndRecheckComments}{x} @@ -19504,429 +19802,7 @@ deleting entries from u assumes that the first element is useless \end{chunk} -\defun{checkRewrite}{checkRewrite} -\calls{checkRewrite}{checkRemoveComments} -\calls{checkRewrite}{checkAddIndented} -\calls{checkRewrite}{checkGetArgs} -\calls{checkRewrite}{newString2Words} -\calls{checkRewrite}{checkAddSpaces} -\calls{checkRewrite}{checkSplit2Words} -\calls{checkRewrite}{checkAddMacros} -\calls{checkRewrite}{checkTexht} -\calls{checkRewrite}{checkArguments} -\calls{checkRewrite}{checkFixCommonProblem} -\calls{checkRewrite}{checkRecordHash} -\calls{checkRewrite}{checkDecorateForHt} -\refsdollar{checkRewrite}{checkErrorFlag} -\refsdollar{checkRewrite}{argl} -\refsdollar{checkRewrite}{checkingXmptex?} -\begin{chunk}{defun checkRewrite} -(defun |checkRewrite| (name lines) - (declare (ignore name)) - (prog (|$checkErrorFlag| margin w verbatim u2 okBefore u) - (declare (special |$checkErrorFlag| |$argl| |$checkingXmptex?|)) - (setq |$checkErrorFlag| t) - (setq margin 0) - (setq lines (|checkRemoveComments| lines)) - (setq u lines) - (when |$checkingXmptex?| - (setq u - (loop for x in u - collect (|checkAddIndented| x margin)))) - (setq |$argl| (|checkGetArgs| (car u))) - (setq u2 nil) - (setq verbatim nil) - (loop for x in u - do - (setq w (|newString2Words| x)) - (cond - (verbatim - (cond - ((and w (equal (car w) "\\end{verbatim}")) - (setq verbatim nil) - (setq u2 (append u2 w))) - (t - (setq u2 (append u2 (list x)))))) - ((and w (equal (car w) "\\begin{verbatim}")) - (setq verbatim t) - (setq u2 (append u2 w))) - (t (setq u2 (append u2 w))))) - (setq u u2) - (setq u (|checkAddSpaces| u)) - (setq u (|checkSplit2Words| u)) - (setq u (|checkAddMacros| u)) - (setq u (|checkTexht| u)) - (setq okBefore (null |$checkErrorFlag|)) - (|checkArguments| u) - (when |$checkErrorFlag| (setq u (|checkFixCommonProblem| u))) - (|checkRecordHash| u) - (|checkDecorateForHt| u))) - -\end{chunk} - -\defun{checkAddIndented}{checkAddIndented} -\calls{checkAddIndented}{firstNonBlankPosition} -\calls{checkAddIndented}{strconc} -\calls{checkAddIndented}{stringimage} -\calls{checkAddIndented}{checkAddSpaceSegments} -\tpdhere{Note that this function was missing without error, so may be junk} -\begin{chunk}{defun checkAddIndented} -(defun |checkAddIndented| (x margin) - (let (k) - (setq k (|firstNonBlankPosition| x)) - (cond - ((eql k -1) "\\blankline ") - ((eql margin k) x) - (t - (strconc "\\indented{" (stringimage (- k margin)) "}{" - (|checkAddSpaceSegments| (substring x k nil) 0) "}"))))) - -\end{chunk} - -\defun{checkRecordHash}{checkRecordHash} -\calls{checkRecordHash}{member} -\calls{checkRecordHash}{checkLookForLeftBrace} -\calls{checkRecordHash}{checkLookForRightBrace} -\calls{checkRecordHash}{ifcdr} -\calls{checkRecordHash}{intern} -\calls{checkRecordHash}{hget} -\calls{checkRecordHash}{hput} -\calls{checkRecordHash}{checkGetLispFunctionName} -\calls{checkRecordHash}{checkGetStringBeforeRightBrace} -\calls{checkRecordHash}{checkGetParse} -\calls{checkRecordHash}{checkDocError} -\calls{checkRecordHash}{opOf} -\calls{checkRecordHash}{spadSysChoose} -\calls{checkRecordHash}{checkNumOfArgs} -\calls{checkRecordHash}{checkIsValidType} -\calls{checkRecordHash}{form2HtString} -\calls{checkRecordHash}{getl} -\refsdollar{checkRecordHash}{charBack} -\refsdollar{checkRecordHash}{HTlinks} -\refsdollar{checkRecordHash}{htHash} -\refsdollar{checkRecordHash}{HTlisplinks} -\refsdollar{checkRecordHash}{lispHash} -\refsdollar{checkRecordHash}{glossHash} -\refsdollar{checkRecordHash}{currentSysList} -\refsdollar{checkRecordHash}{setOptions} -\refsdollar{checkRecordHash}{sysHash} -\refsdollar{checkRecordHash}{name} -\refsdollar{checkRecordHash}{origin} -\defsdollar{checkRecordHash}{sysHash} -\defsdollar{checkRecordHash}{glossHash} -\defsdollar{checkRecordHash}{lispHash} -\defsdollar{checkRecordHash}{htHash} -\begin{chunk}{defun checkRecordHash} -(defun |checkRecordHash| (u) - (let (p q htname entry s parse n key x) - (declare (special |$origin| |$name| |$sysHash| |$setOptions| |$glossHash| - |$currentSysList| |$lispHash| |$HTlisplinks| |$htHash| - |$HTlinks| |$charBack|)) - (loop while u - do - (setq x (car u)) - (when (and (stringp x) (equal (elt x 0) |$charBack|)) - (cond - ((and (|member| x |$HTlinks|) - (setq u (|checkLookForLeftBrace| (ifcdr u))) - (setq u (|checkLookForRightBrace| (ifcdr u))) - (setq u (|checkLookForLeftBrace| (ifcdr u))) - (setq u (ifcdr u))) - (setq htname (|intern| (ifcar u))) - (setq entry (or (hget |$htHash| htname) (list nil))) - (hput |$htHash| htname - (cons (car entry) (cons (cons |$name| |$origin|) (cdr entry))))) - ((and (|member| x |$HTlisplinks|) - (setq u (|checkLookForLeftBrace| (ifcdr u))) - (setq u (|checkLookForRightBrace| (ifcdr u))) - (setq u (|checkLookForLeftBrace| (ifcdr u))) - (setq u (ifcdr u))) - (setq htname - (|intern| - (|checkGetLispFunctionName| - (|checkGetStringBeforeRightBrace| u)))) - (setq entry (or (hget |$lispHash| htname) (list nil))) - (hput |$lispHash| htname - (cons (car entry) (cons (cons |$name| |$origin|) (cdr entry))))) - ((and (or (setq p (|member| x '("\\gloss" "\\spadglos"))) - (setq q (|member| x '("\\glossSee" "\\spadglosSee")))) - (setq u (|checkLookForLeftBrace| (ifcdr u))) - (setq u (ifcdr u))) - (when q - (setq u (|checkLookForRightBrace| u)) - (setq u (|checkLookForLeftBrace| (ifcdr u))) - (setq u (ifcdr u))) - (setq htname (|intern| (|checkGetStringBeforeRightBrace| u))) - (setq entry - (or (hget |$glossHash| htname) (list nil))) - (hput |$glossHash| htname - (cons (car entry) (cons (cons |$name| |$origin|) (cdr entry))))) - ((and (boot-equal x "\\spadsys") - (setq u (|checkLookForLeftBrace| (ifcdr u))) - (setq u (ifcdr u))) - (setq s (|checkGetStringBeforeRightBrace| u)) - (when (char= (elt s 0) #\)) (setq s (substring s 1 nil))) - (setq parse (|checkGetParse| s)) - (cond - ((null parse) - (|checkDocError| (list "Unparseable \\spadtype: " s))) - ((null (|member| (|opOf| parse) |$currentSysList|)) - (|checkDocError| (list "Bad system command: " s))) - ((or (atom parse) - (null (and (consp parse) (eq (qcar parse) '|set|) - (consp (qcdr parse)) - (eq (qcddr parse) nil)))) - '|ok|) - ((null (|spadSysChoose| |$setOptions| (qcadr parse))) - (progn - (|checkDocError| (list "Incorrect \\spadsys: " s)) - (setq entry (or (hget |$sysHash| htname) (list nil))) - (hput |$sysHash| htname - (cons (car entry) (cons (cons |$name| |$origin|) (cdr entry)))))))) - ((and (boot-equal x "\\spadtype") - (setq u (|checkLookForLeftBrace| (ifcdr u))) - (setq u (ifcdr u))) - (setq s (|checkGetStringBeforeRightBrace| u)) - (setq parse (|checkGetParse| s)) - (cond - ((null parse) - (|checkDocError| (list "Unparseable \\spadtype: " s))) - (t - (setq n (|checkNumOfArgs| parse)) - (cond - ((null n) - (|checkDocError| (list "Unknown \\spadtype: " s))) - ((and (atom parse) (> n 0)) - '|skip|) - ((null (setq key (|checkIsValidType| parse))) - (|checkDocError| (list "Unknown \\spadtype: " s))) - ((atom key) '|ok|) - (t - (|checkDocError| - (list "Wrong number of arguments: " (|form2HtString| key)))))))) - ((and (|member| x '("\\spadop" "\\keyword")) - (setq u (|checkLookForLeftBrace| (ifcdr u))) - (setq u (ifcdr u))) - (setq x (|intern| (|checkGetStringBeforeRightBrace| u))) - (when (null (or (getl x '|Led|) (getl x '|Nud|))) - (|checkDocError| (list "Unknown \\spadop: " x)))))) - (pop u)) - '|done|)) - -\end{chunk} - -\defun{checkGetParse}{checkGetParse} -\calls{checkGetParse}{ncParseFromString} -\calls{checkGetParse}{removeBackslashes} -\begin{chunk}{defun checkGetParse} -(defun |checkGetParse| (s) - (|ncParseFromString| (|removeBackslashes| s))) - -\end{chunk} - -\defun{removeBackslashes}{removeBackslashes} -\calls{removeBackslashes}{charPosition} -\calls{removeBackslashes}{removeBackslashes} -\calls{removeBackslashes}{strconc} -\calls{removeBackslashes}{length} -\refsdollar{removeBackslashes}{charBack} -\begin{chunk}{defun removeBackslashes} -(defun |removeBackslashes| (s) - (let (k) - (declare (special |$charBack|)) - (cond - ((string= s "") "") - ((> (|#| s) (setq k (|charPosition| |$charBack| s 0))) - (if (eql k 0) - (|removeBackslashes| (substring s 1 nil)) - (strconc (substring s 0 k) - (|removeBackslashes| (substring s (1+ k) nil))))) - (t s)))) - -\end{chunk} - -\defun{checkTexht}{checkTexht} -\calls{checkTexht}{ifcar} -\calls{checkTexht}{checkDocError} -\calls{checkTexht}{nequal} -\refsdollar{checkTexht}{charRbrace} -\refsdollar{checkTexht}{charLbrace} -\begin{chunk}{defun checkTexht} -(defun |checkTexht| (u) - (let (count y x acc) - (declare (special |$charRbrace| |$charLbrace|)) - (setq count 0) - (loop while u - do - (setq x (car u)) - (when (and (string= x "\\texht") (setq u (ifcdr u))) - (when (null (equal (ifcar u) |$charLbrace|)) - (|checkDocError| "First left brace after \\texht missing")) - ; drop first argument including braces of texht - (setq count 1) - (do () - ((null (or (nequal (setq y (ifcar (setq u (cdr u)))) |$charRbrace|) - (> count 1))) - nil) - (when (equal y |$charLbrace|) (setq count (1+ count))) - (when (equal y |$charRbrace|) (setq count (1- count)))) - ; drop first right brace of 1st arg - (setq x (ifcar (setq u (cdr u))))) - (when (and (string= x "\\httex") (setq u (ifcdr u)) - (equal (ifcar u) |$charLbrace|)) - (setq acc (cons (ifcar u) acc)) - (do () - ((null (nequal (setq y (ifcar (setq u (cdr u)))) |$charRbrace|)) - nil) - (setq acc (cons y acc))) - (setq acc (cons (ifcar u) acc)) ; left brace: add it - (setq x (ifcar (setq u (cdr u)))) ; left brace: forget it - (do () - ((null (nequal (ifcar (setq u (cdr u))) |$charRbrace|)) - nil) - '|skip|) - ; forget right brace; move to next character - (setq x (ifcar (setq u (cdr u))))) - (setq acc (cons x acc)) - (pop u)) - (nreverse acc))) - -\end{chunk} - -\defun{checkDecorateForHt}{checkDecorateForHt} -\calls{checkDecorateForHt}{checkDocError} -\calls{checkDecorateForHt}{member} -\refsdollar{checkDecorateForHt}{checkingXmptex?} -\refsdollar{checkDecorateForHt}{charRbrace} -\refsdollar{checkDecorateForHt}{charLbrace} -\begin{chunk}{defun checkDecorateForHt} -(defun |checkDecorateForHt| (u) - (let (x count spadflag) - (declare (special |$checkingXmptex?| |$charRbrace| |$charLbrace|)) - (setq count 0) - (setq spadflag nil) - (loop while u - do - (setq x (car u)) - (when (equal x "\\em") - (if (> count 0) - (setq spadflag (1- count)) - (|checkDocError| (list "\\em must be enclosed in braces")))) - (cond - ((|member| x '("\\s" "\\spadop" "\\spadtype" "\\spad" "\\spadpaste" - "\\spadcommand" "\\footnote")) - (setq spadflag count)) - ((equal x |$charLbrace|) - (setq count (1+ count))) - ((equal x |$charRbrace|) - (setq count (1- count)) - (when (equal spadflag count) (setq spadflag nil))) - ((and (null spadflag) (|member| x '("+" "*" "=" "==" "->"))) - (when |$checkingXmptex?| - (|checkDocError| (list '|Symbol | x " appearing outside \\spad{}")))) - (t nil)) - (when (or (equal x "$") (equal x "%")) - (|checkDocError| (list "Unescaped " x))) - (pop u)) - u)) - -\end{chunk} - -\defun{checkDocError1}{checkDocError1} -\calls{checkDocError1}{checkDocError} -\refsdollar{checkDocError1}{compileDocumentation} -\begin{chunk}{defun checkDocError1} -(defun |checkDocError1| (u) - (declare (special |$compileDocumentation|)) - (if (and (boundp '|$compileDocumentation|) |$compileDocumentation|) - nil - (|checkDocError| u))) - -\end{chunk} - -\defun{checkDocError}{checkDocError} -\calls{checkDocError}{checkDocMessage} -\calls{checkDocError}{concat} -\calls{checkDocError}{saybrightly1} -\calls{checkDocError}{sayBrightly} -\refsdollar{checkDocError}{checkErrorFlag} -\refsdollar{checkDocError}{recheckingFlag} -\refsdollar{checkDocError}{constructorName} -\refsdollar{checkDocError}{exposeFlag} -\refsdollar{checkDocError}{exposeFlagHeading} -\refsdollar{checkDocError}{outStream} -\defsdollar{checkDocError}{checkErrorFlag} -\defsdollar{checkDocError}{exposeFlagHeading} -\begin{chunk}{defun checkDocError} -(defun |checkDocError| (u) - (let (msg) - (declare (special |$outStream| |$exposeFlag| |$exposeFlagHeading| - |$constructorName| |$recheckingFlag| |$checkErrorFlag|)) - (setq |$checkErrorFlag| t) - (setq msg - (cond - (|$recheckingFlag| - (if |$constructorName| - (|checkDocMessage| u) - (|concat| "> " u))) - (|$constructorName| (|checkDocMessage| u)) - (t u))) - (when (and |$exposeFlag| |$exposeFlagHeading|) - (saybrightly1 |$exposeFlagHeading| |$outStream|) - (|sayBrightly| |$exposeFlagHeading|) - (setq |$exposeFlagHeading| nil)) - (|sayBrightly| msg) - (when |$exposeFlag| (saybrightly1 msg |$outStream|)))) - -\end{chunk} - -\defun{checkDocMessage}{checkDocMessage} -\calls{checkDocMessage}{getdatabase} -\calls{checkDocMessage}{whoOwns} -\calls{checkDocMessage}{concat} -\refsdollar{checkDocMessage}{x} -\refsdollar{checkDocMessage}{constructorName} -\begin{chunk}{defun checkDocMessage} -(defun |checkDocMessage| (u) - (let (sourcefile person middle) - (declare (special |$constructorName| |$x|)) - (setq sourcefile (getdatabase |$constructorName| 'sourcefile)) - (setq person (or (|whoOwns| |$constructorName|) "---")) - (setq middle - (if (boundp '|$x|) - (list "(" |$x| "): ") - (list ": "))) - (|concat| person ">" sourcefile "-->" |$constructorName| middle u))) - -\end{chunk} - -\defun{whoOwns}{whoOwns} -This function always returns nil in the current system. -Since it has no side effects we define it to return nil. -\calls{whoOwns}{getdatabase} -\calls{whoOwns}{strconc} -\calls{whoOwns}{awk} -\calls{whoOwns}{shut} -\refsdollar{whoOwns}{exposeFlag} -\begin{chunk}{defun whoOwns} -(defun |whoOwns| (con) - (declare (ignore con)) - nil) -; (let (filename quoteChar instream value) -; (declare (special |$exposeFlag|)) -; (cond -; ((null |$exposeFlag|) nil) -; (t -; (setq filename (getdatabase con 'sourcefile)) -; (setq quoteChar #\") -; (obey (strconc "awk '$2 == " quoteChar filename quoteChar -; " {print $1}' whofiles > /tmp/temp")) -; (setq instream (make-instream "/tmp/temp")) -; (setq value (unless (eofp instream) (readline instream))) -; (shut instream) -; value)))) - -\end{chunk} +\section{Comment Checking Layer 4} \defun{checkComments}{checkComments} \calls{checkComments}{checkGetMargin} @@ -20000,57 +19876,96 @@ Since it has no side effects we define it to return nil. \end{chunk} -\defun{checkSplit2Words}{checkSplit2Words} -\calls{checkSplit2Words}{checkSplitBrace} -\begin{chunk}{defun checkSplit2Words} -(defun |checkSplit2Words| (u) - (let (x verbatim z acc) - (setq acc nil) - (loop while u +\defun{checkRewrite}{checkRewrite} +\calls{checkRewrite}{checkRemoveComments} +\calls{checkRewrite}{checkAddIndented} +\calls{checkRewrite}{checkGetArgs} +\calls{checkRewrite}{newString2Words} +\calls{checkRewrite}{checkAddSpaces} +\calls{checkRewrite}{checkSplit2Words} +\calls{checkRewrite}{checkAddMacros} +\calls{checkRewrite}{checkTexht} +\calls{checkRewrite}{checkArguments} +\calls{checkRewrite}{checkFixCommonProblem} +\calls{checkRewrite}{checkRecordHash} +\calls{checkRewrite}{checkDecorateForHt} +\refsdollar{checkRewrite}{checkErrorFlag} +\refsdollar{checkRewrite}{argl} +\refsdollar{checkRewrite}{checkingXmptex?} +\begin{chunk}{defun checkRewrite} +(defun |checkRewrite| (name lines) + (declare (ignore name)) + (prog (|$checkErrorFlag| margin w verbatim u2 okBefore u) + (declare (special |$checkErrorFlag| |$argl| |$checkingXmptex?|)) + (setq |$checkErrorFlag| t) + (setq margin 0) + (setq lines (|checkRemoveComments| lines)) + (setq u lines) + (when |$checkingXmptex?| + (setq u + (loop for x in u + collect (|checkAddIndented| x margin)))) + (setq |$argl| (|checkGetArgs| (car u))) + (setq u2 nil) + (setq verbatim nil) + (loop for x in u do - (setq x (car u)) - (setq acc - (cond - ((string= x "\\end{verbatim}") - (setq verbatim nil) - (cons x acc)) - (verbatim (cons x acc)) - ((string= x "\\begin{verbatim}") - (setq verbatim t) - (cons x acc)) - ((setq z (|checkSplitBrace| x)) - (append (nreverse z) acc)) - (t (cons x acc)))) - (pop u)) - (nreverse acc))) + (setq w (|newString2Words| x)) + (cond + (verbatim + (cond + ((and w (equal (car w) "\\end{verbatim}")) + (setq verbatim nil) + (setq u2 (append u2 w))) + (t + (setq u2 (append u2 (list x)))))) + ((and w (equal (car w) "\\begin{verbatim}")) + (setq verbatim t) + (setq u2 (append u2 w))) + (t (setq u2 (append u2 w))))) + (setq u u2) + (setq u (|checkAddSpaces| u)) + (setq u (|checkSplit2Words| u)) + (setq u (|checkAddMacros| u)) + (setq u (|checkTexht| u)) + (setq okBefore (null |$checkErrorFlag|)) + (|checkArguments| u) + (when |$checkErrorFlag| (setq u (|checkFixCommonProblem| u))) + (|checkRecordHash| u) + (|checkDecorateForHt| u))) \end{chunk} -\defun{checkAddPeriod}{checkAddPeriod} -\calls{checkAddPeriod}{setelt} -\calls{checkAddPeriod}{maxindex} -\begin{chunk}{defun checkAddPeriod} -(defun |checkAddPeriod| (s) - (let (m lastChar) - (setq m (maxindex s)) - (setq lastChar (elt s m)) - (cond - ((or (char= lastChar #\!) (char= lastChar #\?) (char= lastChar #\.)) s) - ((or (char= lastChar #\,) (char= lastChar #\;)) - (setelt s m #\.) - s) - (t s)))) +\section{Comment Checking Layer 5} + +\defun{checkArguments}{checkArguments} +\calls{checkArguments}{hget} +\calls{checkArguments}{checkHTargs} +\refsdollar{checkArguments}{htMacroTable} +\begin{chunk}{defun checkArguments} +(defun |checkArguments| (u) + (let (x k) + (declare (special |$htMacroTable|)) + (loop while u + do (setq x (car u)) + (cond + ((null (setq k (hget |$htMacroTable| x))) '|skip|) + ((eql k 0) '|skip|) + ((> k 0) (|checkHTargs| x (cdr u) k nil)) + (t (|checkHTargs| x (cdr u) (- k) t))) + (pop u)) + u)) \end{chunk} \defun{checkBalance}{checkBalance} -\calls{checkPrenAlist}{checkBeginEnd} -\calls{checkPrenAlist}{assoc} -\calls{checkPrenAlist}{rassoc} -\calls{checkPrenAlist}{nequal} -\calls{checkPrenAlist}{checkDocError} -\calls{checkPrenAlist}{checkSayBracket} -\calls{checkPrenAlist}{nreverse} +\calls{checkBalance}{checkBeginEnd} +\calls{checkBalance}{assoc} +\calls{checkBalance}{rassoc} +\calls{checkBalance}{nequal} +\calls{checkBalance}{checkDocError} +\calls{checkBalance}{checkSayBracket} +\calls{checkBalance}{nreverse} \refsdollar{checkBalance}{checkPrenAlist} \begin{chunk}{defun checkBalance} (defun |checkBalance| (u) @@ -20086,6 +20001,8 @@ Since it has no side effects we define it to return nil. \end{chunk} +\section{Comment Checking Layer 6} + \defun{checkBeginEnd}{checkBeginEnd} \calls{checkBeginEnd}{length} \calls{checkBeginEnd}{hget} @@ -20159,36 +20076,226 @@ Since it has no side effects we define it to return nil. \end{chunk} -\defun{checkSayBracket}{checkSayBracket} -\begin{chunk}{defun checkSayBracket} -(defun |checkSayBracket| (x) - (cond - ((or (char= x #\() (char= x #\))) "pren") - ((or (char= x #\{) (char= x #\})) "brace") - (t "bracket"))) +\defun{checkDecorate}{checkDecorate} +\calls{checkDecorate}{checkDocError} +\calls{checkDecorate}{member} +\calls{checkDecorate}{checkAddBackSlashes} +\calls{checkDecorate}{hasNoVowels} +\refsdollar{checkDecorate}{checkingXmptex?} +\refsdollar{checkDecorate}{charExclusions} +\refsdollar{checkDecorate}{argl} +\refsdollar{checkDecorate}{charBack} +\refsdollar{checkDecorate}{charRbrace} +\refsdollar{checkDecorate}{charLbrace} +\begin{chunk}{defun checkDecorate} +(defun |checkDecorate| (u) + (let (x count mathSymbolsOk spadflag verbatim v xcount acc) + (declare (special |$charLbrace| |$charRbrace| |$charBack| |$argl| + |$charExclusions| |$checkingXmptex?|)) + (setq count 0) + (loop while u + do + (setq x (car u)) + (cond + ((null verbatim) + (cond + ((string= x "\\em") + (cond + ((> count 0) + (setq mathSymbolsOk (1- count)) + (setq spadflag (1- count))) + (t + (|checkDocError| (list "\\em must be enclosed in braces")))))) + (when (|member| x '("\\spadpaste" "\\spad" "\\spadop")) + (setq mathSymbolsOk count)) + (cond + ((|member| x '("\\s" "\\spadtype" "\\spadsys" "\\example" "\\andexample" + "\\spadop" "\\spad" "\\spadignore" "\\spadpaste" + "\\spadcommand" "\\footnote")) + (setq spadflag count)) + ((equal x |$charLbrace|) + (setq count (1+ count))) + ((equal x |$charRbrace|) + (setq count (1- count)) + (when (eql mathSymbolsOk count) (setq mathSymbolsOk nil)) + (when (eql spadflag count) (setq spadflag nil))) + ((and (null mathSymbolsOk) + (|member| x '("+" "*" "=" "==" "->"))) + (when |$checkingXmptex?| + (|checkDocError| + (list '|Symbol | x " appearing outside \\spad{}"))))))) + (setq acc + (cond + ((string= x "\\end{verbatim}") + (setq verbatim nil) + (cons x acc)) + (verbatim (cons x acc)) + ((string= x "\\begin{verbatim}") + (setq verbatim t) + (cons x acc)) + ((and (string= x "\\begin") + (equal (car (setq v (ifcdr u))) |$charLbrace|) + (string= (car (setq v (ifcdr v))) "detail") + (equal (car (setq v (ifcdr v))) |$charRbrace|)) + (setq u v) + (cons "\\blankline " acc)) + ((and (string= x "\\end") + (equal (car (setq v (ifcdr u))) |$charLbrace|) + (string= (car (setq v (ifcdr v))) "detail") + (equal (car (setq v (ifcdr v))) |$charRbrace|)) + (setq u v) + acc) + ((or (char= x #\$) (string= x "$")) + (cons "\\$" acc)) + ((or (char= x #\%) (string= x "%")) + (cons "\\%" acc)) + ((or (char= x #\,) (string= x ",")) + (cons ",{}" acc)) + ((string= x "\\spad") + (cons "\\spad" acc)) + ((and (stringp x) (digitp (elt x 0))) + (cons x acc)) + ((and (null spadflag) + (or (and (charp x) + (alpha-char-p x) + (null (member x |$charExclusions|))) + (|member| x |$argl|))) + (cons |$charRbrace| (cons x (cons |$charLbrace| (cons "\\spad" acc))))) + ((and (null spadflag) + (or (and (stringp x) + (null (equal (elt x 0) |$charBack|)) + (digitp (elt x (maxindex x)))) + (|member| x '("true" "false")))) + (cons |$charRbrace| (cons x (cons |$charLbrace| (cons "\\spad" acc))))) + (t + (setq xcount (|#| x)) + (cond + ((and (eql xcount 3) + (char= (elt x 1) #\t) + (char= (elt x 2) #\h)) + (cons "th" (cons |$charRbrace| + (cons (elt x 0) (cons |$charLbrace| (cons "\\spad" acc)))))) + ((and (eql xcount 4) + (char= (elt x 1) #\-) + (char= (elt x 2) #\t) + (char= (elt x 3) #\h)) + (cons "-th" (cons |$charRbrace| + (cons (elt x 0) (cons |$charLbrace| (cons "\\spad" acc)))))) + ((or (and (eql xcount 2) + (char= (elt x 1) #\i)) + (and (null spadflag) + (> xcount 0) + (> 4 xcount) + (null (|member| x '("th" "rd" "st"))) + (|hasNoVowels| x))) + (cons |$charRbrace| + (cons x (cons |$charLbrace| (cons "\\spad" acc))))) + (t + (cons (|checkAddBackSlashes| x) acc)))))) + (setq u (cdr u))) + (nreverse acc))) \end{chunk} -\defun{checkArguments}{checkArguments} -\calls{checkArguments}{hget} -\calls{checkArguments}{checkHTargs} -\refsdollar{checkArguments}{htMacroTable} -\begin{chunk}{defun checkArguments} -(defun |checkArguments| (u) - (let (x k) - (declare (special |$htMacroTable|)) +\defun{checkDecorateForHt}{checkDecorateForHt} +\calls{checkDecorateForHt}{checkDocError} +\calls{checkDecorateForHt}{member} +\refsdollar{checkDecorateForHt}{checkingXmptex?} +\refsdollar{checkDecorateForHt}{charRbrace} +\refsdollar{checkDecorateForHt}{charLbrace} +\begin{chunk}{defun checkDecorateForHt} +(defun |checkDecorateForHt| (u) + (let (x count spadflag) + (declare (special |$checkingXmptex?| |$charRbrace| |$charLbrace|)) + (setq count 0) + (setq spadflag nil) (loop while u - do (setq x (car u)) - (cond - ((null (setq k (hget |$htMacroTable| x))) '|skip|) - ((eql k 0) '|skip|) - ((> k 0) (|checkHTargs| x (cdr u) k nil)) - (t (|checkHTargs| x (cdr u) (- k) t))) - (pop u)) + do + (setq x (car u)) + (when (equal x "\\em") + (if (> count 0) + (setq spadflag (1- count)) + (|checkDocError| (list "\\em must be enclosed in braces")))) + (cond + ((|member| x '("\\s" "\\spadop" "\\spadtype" "\\spad" "\\spadpaste" + "\\spadcommand" "\\footnote")) + (setq spadflag count)) + ((equal x |$charLbrace|) + (setq count (1+ count))) + ((equal x |$charRbrace|) + (setq count (1- count)) + (when (equal spadflag count) (setq spadflag nil))) + ((and (null spadflag) (|member| x '("+" "*" "=" "==" "->"))) + (when |$checkingXmptex?| + (|checkDocError| (list '|Symbol | x " appearing outside \\spad{}")))) + (t nil)) + (when (or (equal x "$") (equal x "%")) + (|checkDocError| (list "Unescaped " x))) + (pop u)) u)) \end{chunk} +\defun{checkDocError1}{checkDocError1} +\calls{checkDocError1}{checkDocError} +\refsdollar{checkDocError1}{compileDocumentation} +\begin{chunk}{defun checkDocError1} +(defun |checkDocError1| (u) + (declare (special |$compileDocumentation|)) + (if (and (boundp '|$compileDocumentation|) |$compileDocumentation|) + nil + (|checkDocError| u))) + +\end{chunk} + +\defun{checkFixCommonProblem}{checkFixCommonProblem} +\calls{checkFixCommonProblem}{member} +\calls{checkFixCommonProblem}{ifcar} +\calls{checkFixCommonProblem}{ifcdr} +\calls{checkFixCommonProblem}{nequal} +\calls{checkFixCommonProblem}{checkDocError} +\refsdollar{checkFixCommonProblem}{charLbrace} +\refsdollar{checkFixCommonProblem}{HTspadmacros} +\begin{chunk}{defun checkFixCommonProblem} +(defun |checkFixCommonProblem| (u) + (let (x next acc) + (declare (special |$charLbrace| |$HTspadmacros|)) + (loop while u + do + (setq x (car u)) + (cond + ((and (equal x |$charLbrace|) + (|member| (setq next (ifcar (cdr u))) |$HTspadmacros|) + (nequal (ifcar (ifcdr (cdr u))) |$charLbrace|)) + (|checkDocError| (list "Reversing " next " and left brace")) + (setq acc (cons |$charLbrace| (cons next acc))) + (setq u (cddr u))) + (t + (setq acc (cons x acc)) + (setq u (cdr u))))) + (nreverse acc))) + +\end{chunk} + +\defun{checkGetLispFunctionName}{checkGetLispFunctionName} +\calls{checkGetLispFunctionName}{charPosition} +\calls{checkGetLispFunctionName}{checkDocError} +\begin{chunk}{defun checkGetLispFunctionName} +(defun |checkGetLispFunctionName| (s) + (let (n k j) + (setq n (|#| s)) + (cond + ((and (setq k (|charPosition| #\| s 1)) + (> n k) + (setq j (|charPosition| #\| s (1+ k))) + (> n j)) + (substring s (1+ k) (1- (- j k)))) + (t + (|checkDocError| (cons "Ill-formed lisp expression : " (list s))) + '|illformed|)))) + +\end{chunk} + \defun{checkHTargs}{checkHTargs} Note that {\tt u} should start with an open brace. \calls{checkHTargs}{checkLookForLeftBrace} @@ -20209,43 +20316,183 @@ Note that {\tt u} should start with an open brace. \end{chunk} -\defun{checkLookForLeftBrace}{checkLookForLeftBrace} -\calls{checkLookForLeftBrace}{nequal} -\refsdollar{checkLookForLeftBrace}{charBlank} -\refsdollar{checkLookForLeftBrace}{charLbrace} -\begin{chunk}{defun checkLookForLeftBrace} -(defun |checkLookForLeftBrace| (u) - (declare (special |$charBlank| |$charLbrace|)) +\defun{checkRecordHash}{checkRecordHash} +\calls{checkRecordHash}{member} +\calls{checkRecordHash}{checkLookForLeftBrace} +\calls{checkRecordHash}{checkLookForRightBrace} +\calls{checkRecordHash}{ifcdr} +\calls{checkRecordHash}{intern} +\calls{checkRecordHash}{hget} +\calls{checkRecordHash}{hput} +\calls{checkRecordHash}{checkGetLispFunctionName} +\calls{checkRecordHash}{checkGetStringBeforeRightBrace} +\calls{checkRecordHash}{checkGetParse} +\calls{checkRecordHash}{checkDocError} +\calls{checkRecordHash}{opOf} +\calls{checkRecordHash}{spadSysChoose} +\calls{checkRecordHash}{checkNumOfArgs} +\calls{checkRecordHash}{checkIsValidType} +\calls{checkRecordHash}{form2HtString} +\calls{checkRecordHash}{getl} +\refsdollar{checkRecordHash}{charBack} +\refsdollar{checkRecordHash}{HTlinks} +\refsdollar{checkRecordHash}{htHash} +\refsdollar{checkRecordHash}{HTlisplinks} +\refsdollar{checkRecordHash}{lispHash} +\refsdollar{checkRecordHash}{glossHash} +\refsdollar{checkRecordHash}{currentSysList} +\refsdollar{checkRecordHash}{setOptions} +\refsdollar{checkRecordHash}{sysHash} +\refsdollar{checkRecordHash}{name} +\refsdollar{checkRecordHash}{origin} +\defsdollar{checkRecordHash}{sysHash} +\defsdollar{checkRecordHash}{glossHash} +\defsdollar{checkRecordHash}{lispHash} +\defsdollar{checkRecordHash}{htHash} +\begin{chunk}{defun checkRecordHash} +(defun |checkRecordHash| (u) + (let (p q htname entry s parse n key x) + (declare (special |$origin| |$name| |$sysHash| |$setOptions| |$glossHash| + |$currentSysList| |$lispHash| |$HTlisplinks| |$htHash| + |$HTlinks| |$charBack|)) (loop while u do + (setq x (car u)) + (when (and (stringp x) (equal (elt x 0) |$charBack|)) (cond - ((equal (car u) |$charLbrace|) (return (car u))) - ((nequal (car u) |$charBlank|) (return nil)) - (t (pop u)))) - u) + ((and (|member| x |$HTlinks|) + (setq u (|checkLookForLeftBrace| (ifcdr u))) + (setq u (|checkLookForRightBrace| (ifcdr u))) + (setq u (|checkLookForLeftBrace| (ifcdr u))) + (setq u (ifcdr u))) + (setq htname (|intern| (ifcar u))) + (setq entry (or (hget |$htHash| htname) (list nil))) + (hput |$htHash| htname + (cons (car entry) (cons (cons |$name| |$origin|) (cdr entry))))) + ((and (|member| x |$HTlisplinks|) + (setq u (|checkLookForLeftBrace| (ifcdr u))) + (setq u (|checkLookForRightBrace| (ifcdr u))) + (setq u (|checkLookForLeftBrace| (ifcdr u))) + (setq u (ifcdr u))) + (setq htname + (|intern| + (|checkGetLispFunctionName| + (|checkGetStringBeforeRightBrace| u)))) + (setq entry (or (hget |$lispHash| htname) (list nil))) + (hput |$lispHash| htname + (cons (car entry) (cons (cons |$name| |$origin|) (cdr entry))))) + ((and (or (setq p (|member| x '("\\gloss" "\\spadglos"))) + (setq q (|member| x '("\\glossSee" "\\spadglosSee")))) + (setq u (|checkLookForLeftBrace| (ifcdr u))) + (setq u (ifcdr u))) + (when q + (setq u (|checkLookForRightBrace| u)) + (setq u (|checkLookForLeftBrace| (ifcdr u))) + (setq u (ifcdr u))) + (setq htname (|intern| (|checkGetStringBeforeRightBrace| u))) + (setq entry + (or (hget |$glossHash| htname) (list nil))) + (hput |$glossHash| htname + (cons (car entry) (cons (cons |$name| |$origin|) (cdr entry))))) + ((and (boot-equal x "\\spadsys") + (setq u (|checkLookForLeftBrace| (ifcdr u))) + (setq u (ifcdr u))) + (setq s (|checkGetStringBeforeRightBrace| u)) + (when (char= (elt s 0) #\)) (setq s (substring s 1 nil))) + (setq parse (|checkGetParse| s)) + (cond + ((null parse) + (|checkDocError| (list "Unparseable \\spadtype: " s))) + ((null (|member| (|opOf| parse) |$currentSysList|)) + (|checkDocError| (list "Bad system command: " s))) + ((or (atom parse) + (null (and (consp parse) (eq (qcar parse) '|set|) + (consp (qcdr parse)) + (eq (qcddr parse) nil)))) + '|ok|) + ((null (|spadSysChoose| |$setOptions| (qcadr parse))) + (progn + (|checkDocError| (list "Incorrect \\spadsys: " s)) + (setq entry (or (hget |$sysHash| htname) (list nil))) + (hput |$sysHash| htname + (cons (car entry) (cons (cons |$name| |$origin|) (cdr entry)))))))) + ((and (boot-equal x "\\spadtype") + (setq u (|checkLookForLeftBrace| (ifcdr u))) + (setq u (ifcdr u))) + (setq s (|checkGetStringBeforeRightBrace| u)) + (setq parse (|checkGetParse| s)) + (cond + ((null parse) + (|checkDocError| (list "Unparseable \\spadtype: " s))) + (t + (setq n (|checkNumOfArgs| parse)) + (cond + ((null n) + (|checkDocError| (list "Unknown \\spadtype: " s))) + ((and (atom parse) (> n 0)) + '|skip|) + ((null (setq key (|checkIsValidType| parse))) + (|checkDocError| (list "Unknown \\spadtype: " s))) + ((atom key) '|ok|) + (t + (|checkDocError| + (list "Wrong number of arguments: " (|form2HtString| key)))))))) + ((and (|member| x '("\\spadop" "\\keyword")) + (setq u (|checkLookForLeftBrace| (ifcdr u))) + (setq u (ifcdr u))) + (setq x (|intern| (|checkGetStringBeforeRightBrace| u))) + (when (null (or (getl x '|Led|) (getl x '|Nud|))) + (|checkDocError| (list "Unknown \\spadop: " x)))))) + (pop u)) + '|done|)) \end{chunk} -\defun{checkLookForRightBrace}{checkLookForRightBrace} -This returns a line beginning with right brace -\refsdollar{checkLookForRightBrace}{charLbrace} -\refsdollar{checkLookForRightBrace}{charRbrace} -\begin{chunk}{defun checkLookForRightBrace} -(defun |checkLookForRightBrace| (u) - (let (found count) - (declare (special |$charLbrace| |$charRbrace|)) +\defun{checkTexht}{checkTexht} +\calls{checkTexht}{ifcdr} +\calls{checkTexht}{ifcar} +\calls{checkTexht}{checkDocError} +\calls{checkTexht}{nequal} +\refsdollar{checkTexht}{charRbrace} +\refsdollar{checkTexht}{charLbrace} +\begin{chunk}{defun checkTexht} +(defun |checkTexht| (u) + (let (count y x acc) + (declare (special |$charRbrace| |$charLbrace|)) (setq count 0) (loop while u do - (cond - ((equal (car u) |$charRbrace|) - (if (eql count 0) - (return (setq found u)) - (setq count (1- count)))) - ((equal (car u) |$charLbrace|) - (setq count (1+ count)))) - (pop u)) - found)) + (setq x (car u)) + (when (and (string= x "\\texht") (setq u (ifcdr u))) + (unless (equal (ifcar u) |$charLbrace|) + (|checkDocError| "First left brace after \\texht missing")) + ; drop first argument including braces of \texht + (setq count 1) + (loop while (or (nequal (setq y (ifcar (setq u (cdr u)))) |$charRbrace|) + (> count 1)) + do + (when (equal y |$charLbrace|) (setq count (1+ count))) + (when (equal y |$charRbrace|) (setq count (1- count)))) + ; drop first right brace of 1st arg + (setq x (ifcar (setq u (cdr u))))) + (when (and (string= x "\\httex") + (setq u (ifcdr u)) + (equal (ifcar u) |$charLbrace|)) + ; left brace: add it + (setq acc (cons (ifcar u) acc)) + (loop while (nequal (setq y (ifcar (setq u (cdr u)))) |$charRbrace|) + do (setq acc (cons y acc))) + ; right brace: add it + (setq acc (cons (ifcar u) acc)) + ; left brace: forget it + (setq x (ifcar (setq u (cdr u)))) + (loop while (nequal (ifcar (setq u (cdr u))) |$charRbrace|) + do '|skip|) + ; forget right brace: move to next char + (setq x (ifcar (setq u (cdr u))))) + (setq acc (cons x acc)) + (setq u (cdr u))) + (nreverse acc))) \end{chunk} @@ -20381,35 +20628,93 @@ This returns a line beginning with right brace \end{chunk} -\defun{checkSkipBlanks}{checkSkipBlanks} -\refsdollar{checkSkipBlanks}{charBlank} -\begin{chunk}{defun checkSkipBlanks} -(defun |checkSkipBlanks| (u i m) - (declare (special |$charBlank|)) - (do () - ((null (and (> m i) (equal (elt u i) |$charBlank|))) nil) - (setq i (1+ i))) - (unless (= i m) i)) +\defun{checkTrim}{checkTrim} +\calls{checkTrim}{charPosition} +\calls{checkTrim}{nequal} +\calls{checkTrim}{systemError} +\calls{checkTrim}{checkDocError} +\refsdollar{checkTrim}{charBlank} +\refsdollar{checkTrim}{x} +\refsdollar{checkTrim}{charPlus} +\begin{chunk}{defun checkTrim} +(defun |checkTrim| (|$x| lines) + (declare (special |$x|)) + (labels ( + (trim (s) + (let (k) + (declare (special |$charBlank|)) + (setq k (wherePP s)) + (substring s (+ k 2) nil))) + (wherePP (u) + (let (k) + (declare (special |$charPlus|)) + (setq k (|charPosition| |$charPlus| u 0)) + (if (or (eql k (|#| u)) + (nequal (|charPosition| |$charPlus| u (1+ k)) (1+ k))) + (|systemError| " Improper comment found") + k)))) + (let (j s) + (setq s (list (wherePP (car lines)))) + (loop for x in (rest lines) + do + (setq j (wherePP x)) + (unless (member j s) + (|checkDocError| (list |$x| " has varying indentation levels")) + (setq s (cons j s)))) + (loop for y in lines + collect (trim y))))) \end{chunk} -\defun{checkSkipIdentifierToken}{checkSkipIdentifierToken} -\calls{checkSkipIdentifierToken}{checkAlphabetic} -\begin{chunk}{defun checkSkipIdentifierToken} -(defun |checkSkipIdentifierToken| (u i m) - (do () - ((null (and (> m i) (|checkAlphabetic| (elt u i)))) nil) - (setq i (1+ i))) - (unless (= i m) i)) +\section{Comment Checking Layer 7} + +\defun{checkDocError}{checkDocError} +\calls{checkDocError}{checkDocMessage} +\calls{checkDocError}{concat} +\calls{checkDocError}{saybrightly1} +\calls{checkDocError}{sayBrightly} +\refsdollar{checkDocError}{checkErrorFlag} +\refsdollar{checkDocError}{recheckingFlag} +\refsdollar{checkDocError}{constructorName} +\refsdollar{checkDocError}{exposeFlag} +\refsdollar{checkDocError}{exposeFlagHeading} +\refsdollar{checkDocError}{outStream} +\defsdollar{checkDocError}{checkErrorFlag} +\defsdollar{checkDocError}{exposeFlagHeading} +\begin{chunk}{defun checkDocError} +(defun |checkDocError| (u) + (let (msg) + (declare (special |$outStream| |$exposeFlag| |$exposeFlagHeading| + |$constructorName| |$recheckingFlag| |$checkErrorFlag|)) + (setq |$checkErrorFlag| t) + (setq msg + (cond + (|$recheckingFlag| + (if |$constructorName| + (|checkDocMessage| u) + (|concat| "> " u))) + (|$constructorName| (|checkDocMessage| u)) + (t u))) + (when (and |$exposeFlag| |$exposeFlagHeading|) + (saybrightly1 |$exposeFlagHeading| |$outStream|) + (|sayBrightly| |$exposeFlagHeading|) + (setq |$exposeFlagHeading| nil)) + (|sayBrightly| msg) + (when |$exposeFlag| (saybrightly1 msg |$outStream|)))) \end{chunk} -\defun{checkAlphabetic}{checkAlphabetic} -\refsdollar{checkAlphabetic}{charIdentifierEndings} -\begin{chunk}{defun checkAlphabetic} -(defun |checkAlphabetic| (c) - (declare (special |$charIdentifierEndings|)) - (or (alpha-char-p c) (digitp c) (member c |$charIdentifierEndings|))) +\defun{checkRemoveComments}{checkRemoveComments} +\calls{checkRemoveComments}{checkTrimCommented} +\begin{chunk}{defun checkRemoveComments} +(defun |checkRemoveComments| (lines) + (let (line acc) + (loop while lines + do + (setq line (|checkTrimCommented| (car lines))) + (when (>= (|firstNonBlankPosition| line) 0) (push line acc)) + (pop lines)) + (nreverse acc))) \end{chunk} @@ -20424,41 +20729,151 @@ This returns a line beginning with right brace \end{chunk} -\defun{checkSkipOpToken}{checkSkipOpToken} -\calls{checkSkipOpToken}{checkAlphabetic} -\calls{checkSkipOpToken}{member} -\refsdollar{checkSkipOpToken}{charDelimiters} -\begin{chunk}{defun checkSkipOpToken} -(defun |checkSkipOpToken| (u i m) - (declare (special |$charDelimiters|)) - (do () - ((null (and (> m i) - (null (|checkAlphabetic| (elt u i))) - (null (|member| (elt u i) |$charDelimiters|)))) - nil) - (setq i (1+ i))) - (unless (= i m) i)) +\defun{checkSplit2Words}{checkSplit2Words} +\calls{checkSplit2Words}{checkSplitBrace} +\begin{chunk}{defun checkSplit2Words} +(defun |checkSplit2Words| (u) + (let (x verbatim z acc) + (setq acc nil) + (loop while u + do + (setq x (car u)) + (setq acc + (cond + ((string= x "\\end{verbatim}") + (setq verbatim nil) + (cons x acc)) + (verbatim (cons x acc)) + ((string= x "\\begin{verbatim}") + (setq verbatim t) + (cons x acc)) + ((setq z (|checkSplitBrace| x)) + (append (nreverse z) acc)) + (t (cons x acc)))) + (pop u)) + (nreverse acc))) \end{chunk} -\defun{getMatchingRightPren}{getMatchingRightPren} -\calls{getMatchingRightPren}{maxindex} -\begin{chunk}{defun getMatchingRightPren} -(defun |getMatchingRightPren| (u j open close) - (let (m c found count) - (setq count 0) - (setq m (maxindex u)) - (loop for i from j to m +\section{Comment Checking Layer 8} + +\defun{checkAddIndented}{checkAddIndented} +\calls{checkAddIndented}{firstNonBlankPosition} +\calls{checkAddIndented}{strconc} +\calls{checkAddIndented}{stringimage} +\calls{checkAddIndented}{checkAddSpaceSegments} +\tpdhere{Note that this function was missing without error, so may be junk} +\begin{chunk}{defun checkAddIndented} +(defun |checkAddIndented| (x margin) + (let (k) + (setq k (|firstNonBlankPosition| x)) + (cond + ((eql k -1) "\\blankline ") + ((eql margin k) x) + (t + (strconc "\\indented{" (stringimage (- k margin)) "}{" + (|checkAddSpaceSegments| (substring x k nil) 0) "}"))))) + +\end{chunk} + +\defun{checkDocMessage}{checkDocMessage} +\calls{checkDocMessage}{getdatabase} +\calls{checkDocMessage}{whoOwns} +\calls{checkDocMessage}{concat} +\refsdollar{checkDocMessage}{x} +\refsdollar{checkDocMessage}{constructorName} +\begin{chunk}{defun checkDocMessage} +(defun |checkDocMessage| (u) + (let (sourcefile person middle) + (declare (special |$constructorName| |$x|)) + (setq sourcefile (getdatabase |$constructorName| 'sourcefile)) + (setq person (or (|whoOwns| |$constructorName|) "---")) + (setq middle + (if (boundp '|$x|) + (list "(" |$x| "): ") + (list ": "))) + (|concat| person ">" sourcefile "-->" |$constructorName| middle u))) + +\end{chunk} + +\defun{checkExtract}{checkExtract} +\calls{checkExtract}{firstNonBlankPosition} +\calls{checkExtract}{substring?} +\calls{checkExtract}{charPosition} +\calls{checkExtract}{length} +\begin{chunk}{defun checkExtract} +(defun |checkExtract| (header lines) + (let (line u margin firstLines m k j i acc) + (loop while lines do - (setq c (elt u i)) + (setq line (car lines)) + (setq k (|firstNonBlankPosition| line)) ; gives margin of description + (if (|substring?| header line k) + (return nil) + (setq lines (cdr lines)))) + (cond + ((null lines) nil) + (t + (setq u (car lines)) + (setq j (|charPosition| #\: u k)) + (setq margin k) + (setq firstLines + (if (nequal (setq k (|firstNonBlankPosition| u (1+ j))) -1) + (cons (substring u (1+ j) nil) (cdr lines)) + (cdr lines))) + ; now look for another header; if found skip all rest of these lines + (setq acc nil) + (loop for line in firstLines + do + (setq m (|#| line)) + (cond + ((eql (setq k (|firstNonBlankPosition| line)) -1) '|skip|) + ((> k margin) '|skip|) + ((null (upper-case-p (elt line k))) '|skip|) + ((equal (setq j (|charPosition| #\: line k)) m) '|skip|) + ((> j (setq i (|charPosition| #\space line (1+ k)))) '|skip|) + (t (return nil))) + (setq acc (cons line acc))) + (nreverse acc))))) + +\end{chunk} + +\defun{checkGetArgs}{checkGetArgs} +\calls{checkGetArgs}{maxindex} +\calls{checkGetArgs}{firstNonBlankPosition} +\calls{checkGetArgs}{checkGetArgs} +\calls{checkGetArgs}{stringPrefix?} +\calls{checkGetArgs}{getMatchingRightPren} +\calls{checkGetArgs}{charPosition} +\calls{checkGetArgs}{nequal} +\calls{checkGetArgs}{trimString} +\refsdollar{checkGetArgs}{charComma} +\begin{chunk}{defun checkGetArgs} +(defun |checkGetArgs| (u) + (let (m k acc i) + (declare (special |$charComma|)) + (cond + ((null (stringp u)) nil) + (t + (setq m (maxindex u)) + (setq k (|firstNonBlankPosition| u)) (cond - ((equal c close) - (if (eql count 0) - (return (setq found i)) - (setq count (1- count)))) - ((equal c open) - (setq count (1+ count))))) - found)) + ((> k 0) + (|checkGetArgs| (substring u k nil))) + ((|stringPrefix?| "\\spad{" u) + (setq k (or (|getMatchingRightPren| u 6 #\{ #\}) m)) + (|checkGetArgs| (substring u 6 (- k 6)))) + ((> (setq i (|charPosition| #\( u 0)) m) + nil) + ((nequal (elt u m) #\)) + nil) + (t + (do () + ((null (> m (setq k (|charPosition| |$charComma| u (1+ i))))) nil) + (setq acc + (cons (|trimString| (substring u (1+ i) (1- (- k i)))) acc)) + (setq i k)) + (nreverse (cons (substring u (1+ i) (1- (- m i))) acc)))))))) \end{chunk} @@ -20477,18 +20892,32 @@ This returns a line beginning with right brace \end{chunk} -\defun{firstNonBlankPosition}{firstNonBlankPosition} -\calls{firstNonBlankPosition}{nequal} -\calls{firstNonBlankPosition}{maxindex} -\begin{chunk}{defun firstNonBlankPosition} -(defun |firstNonBlankPosition| (&rest therest) - (let ((x (car therest)) (options (cdr therest)) start k) - (declare (special |$charBlank|)) - (setq start (or (ifcar options) 0)) - (setq k -1) - (loop for i from start to (maxindex x) - do (when (nequal (elt x i) |$charBlank|) (return (setq k i)))) - k)) +\defun{checkGetParse}{checkGetParse} +\calls{checkGetParse}{ncParseFromString} +\calls{checkGetParse}{removeBackslashes} +\begin{chunk}{defun checkGetParse} +(defun |checkGetParse| (s) + (|ncParseFromString| (|removeBackslashes| s))) + +\end{chunk} + +\defun{checkGetStringBeforeRightBrace}{checkGetStringBeforeRightBrace} +\begin{chunk}{defun checkGetStringBeforeRightBrace} +(defun |checkGetStringBeforeRightBrace| (u) + (prog (x acc) + (return + (loop while u + do + (setq x (car u)) + (cond + ((equal x |$charRbrace|) + (let ((result "")) + (loop for item in acc + do (setq result (concatenate 'string item result))) + (return result))) + (t + (setq acc (cons x acc)) + (setq u (cdr u)))))))) \end{chunk} @@ -20520,6 +20949,299 @@ This returns a line beginning with right brace \end{chunk} +\defun{checkIndentedLines}{checkIndentedLines} +\calls{checkIndentedLines}{firstNonBlankPosition} +\calls{checkIndentedLines}{strconc} +\calls{checkIndentedLines}{checkAddSpaceSegments} +\refsdollar{checkIndentedLines}{charFauxNewline} +\begin{chunk}{defun checkIndentedLines} +(defun |checkIndentedLines| (u margin) + (let (k s verbatim u2) + (declare (special |$charFauxNewline|)) + (loop for x in u + do + (setq k (|firstNonBlankPosition| x)) + (cond + ((eql k -1) + (if verbatim + (setq u2 (append u2 (list |$charFauxNewline|))) + (setq u2 (append u2 (list "\\blankline "))))) + (t + (setq s (substring x k nil)) + (cond + ((string= s "\\begin{verbatim}") + (setq verbatim t) + (setq u2 (append u2 (list s)))) + ((string= s "\\end{verbatim}") + (setq verbatim nil) + (setq u2 (append u2 (list s)))) + (verbatim + (setq u2 (append u2 (list (substring x margin nil))))) + ((eql margin k) + (setq u2 (append u2 (list s)))) + (t + (setq u2 + (append u2 + (list (strconc "\\indented{" (stringimage (- k margin)) + "}{" (|checkAddSpaceSegments| s 0) "}"))))))))) + u2)) + +\end{chunk} + +\defun{checkSkipIdentifierToken}{checkSkipIdentifierToken} +\calls{checkSkipIdentifierToken}{checkAlphabetic} +\begin{chunk}{defun checkSkipIdentifierToken} +(defun |checkSkipIdentifierToken| (u i m) + (do () + ((null (and (> m i) (|checkAlphabetic| (elt u i)))) nil) + (setq i (1+ i))) + (unless (= i m) i)) + +\end{chunk} + +\defun{checkSkipOpToken}{checkSkipOpToken} +\calls{checkSkipOpToken}{checkAlphabetic} +\calls{checkSkipOpToken}{member} +\refsdollar{checkSkipOpToken}{charDelimiters} +\begin{chunk}{defun checkSkipOpToken} +(defun |checkSkipOpToken| (u i m) + (declare (special |$charDelimiters|)) + (do () + ((null (and (> m i) + (null (|checkAlphabetic| (elt u i))) + (null (|member| (elt u i) |$charDelimiters|)))) + nil) + (setq i (1+ i))) + (unless (= i m) i)) + +\end{chunk} + +\defun{checkSplitBrace}{checkSplitBrace} +\calls{checkSplitBrace}{charp} +\calls{checkSplitBrace}{length} +\calls{checkSplitBrace}{checkSplitBackslash} +\calls{checkSplitBrace}{checkSplitBrace} +\calls{checkSplitBrace}{checkSplitOn} +\calls{checkSplitBrace}{checkSplitPunctuation} +\begin{chunk}{defun checkSplitBrace} +(defun |checkSplitBrace| (x) + (let (m u) + (cond + ((charp x) (list x)) + ((eql (|#| x) 1) (list (elt x 0))) + ((and (setq u (|checkSplitBackslash| x)) (cdr u)) + (let (result) + (loop for y in u do (append result (|checkSplitBrace| y))) + result)) + (t + (setq m (maxindex x)) + (cond + ((and (setq u (|checkSplitOn| x)) (cdr u)) + (let (result) + (loop for y in u do (append result (|checkSplitBrace| y))) + result)) + ((and (setq u (|checkSplitPunctuation| x)) (cdr u)) + (let (result) + (loop for y in u do (append result (|checkSplitBrace| y))) + result)) + (t (list x))))))) + +\end{chunk} + +\defun{checkTrimCommented}{checkTrimCommented} +\calls{checkTrimCommented}{length} +\calls{checkTrimCommented}{htcharPosition} +\calls{checkTrimCommented}{nequal} +\begin{chunk}{defun checkTrimCommented} +(defun |checkTrimCommented| (line) + (let (n k) + (setq n (|#| line)) + (setq k (|htcharPosition| (|char| '%) line 0)) + (cond + ((eql k 0) "") + ((or (>= k (1- n)) (nequal (elt line (1+ k)) #\%)) line) + ((> (|#| line) k) (substring line 0 k)) + (t line)))) + +\end{chunk} + +\defun{newString2Words}{newString2Words} +\calls{newString2Words}{newWordFrom} +\calls{newString2Words}{nreverse0} +\begin{chunk}{defun newString2Words} +(defun |newString2Words| (z) + (let (m tmp1 w i result) + (cond + ((null (stringp z)) (list z)) + (t + (setq m (maxindex z)) + (cond + ((eql m -1) nil) + (t + (setq i 0) + (do () ; [w while newWordFrom(l,i,m) is [w,i]] + ((null (progn + (setq tmp1 (|newWordFrom| z i m)) + (and (consp tmp1) + (progn + (setq w (qcar tmp1)) + (and (consp (qcdr tmp1)) + (eq (qcddr tmp1) nil) + (progn + (setq i (qcadr tmp1)) + t)))))) + (nreverse0 result)) + (setq result (cons (qcar tmp1) result))))))))) + +\end{chunk} + +\section{Comment Checking Layer 9} + +\defun{checkAddBackSlashes}{checkAddBackSlashes} +\calls{checkAddBackSlashes}{strconc} +\calls{checkAddBackSlashes}{maxindex} +\calls{checkAddBackSlashes}{checkAddBackSlashes} +\refsdollar{checkAddBackSlashes}{charBack} +\refsdollar{checkAddBackSlashes}{charEscapeList} +\begin{chunk}{defun checkAddBackSlashes} +(defun |checkAddBackSlashes| (s) + (let (c m char insertIndex k) + (declare (special |$charBack| |$charEscapeList|)) + (cond + ((or (and (charp s) (setq c s)) + (and (eql (|#| s) 1) (setq c (elt s 0)))) + (if (member s |$charEscapeList|) + (strconc |$charBack| c) + s)) + (t + (setq k 0) + (setq m (maxindex s)) + (setq insertIndex nil) + (loop while (< k m) + do + (setq char (elt s k)) + (cond + ((char= char |$charBack|) (setq k (+ k 2))) + ((member char |$charEscapeList|) (return (setq insertIndex k)))) + (setq k (1+ k))) + (cond + (insertIndex + (|checkAddBackSlashes| + (strconc (substring s 0 insertIndex) |$charBack| (elt s k) + (substring s (1+ insertIndex) nil)))) + (T s)))))) + +\end{chunk} + +\defun{checkAddMacros}{checkAddMacros} +\calls{checkAddMacros}{lassoc} +\calls{checkAddMacros}{nreverse} +\refsdollar{checkAddMacros}{HTmacs} +\begin{chunk}{defun checkAddMacros} +(defun |checkAddMacros| (u) + (let (x verbatim y acc) + (declare (special |$HTmacs|)) + (loop while u + do + (setq x (car u)) + (setq acc + (cond + ((string= x "\\end{verbatim}") + (setq verbatim nil) + (cons x acc)) + (verbatim + (cons x acc)) + ((string= x "\\begin{verbatim}") + (setq verbatim t) + (cons x acc)) + ((setq y (lassoc x |$HTmacs|)) + (append y acc)) + (t (cons x acc)))) + (pop u)) + (nreverse acc))) + +\end{chunk} + +\defun{checkAddPeriod}{checkAddPeriod} +\calls{checkAddPeriod}{setelt} +\calls{checkAddPeriod}{maxindex} +\begin{chunk}{defun checkAddPeriod} +(defun |checkAddPeriod| (s) + (let (m lastChar) + (setq m (maxindex s)) + (setq lastChar (elt s m)) + (cond + ((or (char= lastChar #\!) (char= lastChar #\?) (char= lastChar #\.)) s) + ((or (char= lastChar #\,) (char= lastChar #\;)) + (setelt s m #\.) + s) + (t s)))) + +\end{chunk} + +\defun{checkAddSpaceSegments}{checkAddSpaceSegments} +\calls{checkAddSpaceSegments}{checkAddSpaceSegments} +\calls{checkAddSpaceSegments}{maxindex} +\calls{checkAddSpaceSegments}{charPosition} +\calls{checkAddSpaceSegments}{strconc} +\refsdollar{checkAddSpaceSegments}{charBlank} +\begin{chunk}{defun checkAddSpaceSegments} +(defun |checkAddSpaceSegments| (u k) + (let (m i j n) + (declare (special |$charBlank|)) + (setq m (maxindex u)) + (setq i (|charPosition| |$charBlank| u k)) + (cond + ((> i m) u) + (t + (setq j i) + (loop while (and (incf j) (char= (elt u j) #\space))) + (setq n (- j i)) ; number of blanks + (if (> n 1) + (strconc (substring u 0 i) "\\space{" (stringimage n) "}" + (|checkAddSpaceSegments| (substring u (+ i n) nil) 0)) + (|checkAddSpaceSegments| u j)))))) + +\end{chunk} + +\defun{checkAddSpaces}{checkAddSpaces} +\refsdollar{checkAddSpaces}{charBlank} +\refsdollar{checkAddSpaces}{charFauxNewline} +\begin{chunk}{defun checkAddSpaces} +(defun |checkAddSpaces| (u) + (let (u2 space i) + (declare (special |$charBlank| |$charFauxNewline|)) + (cond + ((null u) nil) + ((null (cdr u)) u) + (t + (setq space |$charBlank|) + (setq i 0) + (loop for f in u + do + (incf i) + (when (string= f "\\begin{verbatim}") + (setq space |$charFauxNewline|) + (unless u2 (setq u2 (list space)))) + (if (> i 1) + (setq u2 (append u2 (list space f))) + (setq u2 (append u2 (list f)))) + (when (string= f "\\end{verbatim}") + (setq u2 (append u2 (list space))) + (setq space |$charBlank|))) + u2)))) + +\end{chunk} + +\defun{checkAlphabetic}{checkAlphabetic} +\refsdollar{checkAlphabetic}{charIdentifierEndings} +\begin{chunk}{defun checkAlphabetic} +(defun |checkAlphabetic| (c) + (declare (special |$charIdentifierEndings|)) + (or (alpha-char-p c) (digitp c) (member c |$charIdentifierEndings|))) + +\end{chunk} + \defun{checkIeEgfun}{checkIeEgfun} \calls{checkIeEgfun}{maxindex} \calls{checkIeEgfun}{checkIeEgFun} @@ -20560,35 +21282,116 @@ This returns a line beginning with right brace \end{chunk} -\defun{checkSplitBrace}{checkSplitBrace} -\calls{checkSplitBrace}{charp} -\calls{checkSplitBrace}{length} -\calls{checkSplitBrace}{checkSplitBackslash} -\calls{checkSplitBrace}{checkSplitBrace} -\calls{checkSplitBrace}{checkSplitOn} -\calls{checkSplitBrace}{checkSplitPunctuation} -\begin{chunk}{defun checkSplitBrace} -(defun |checkSplitBrace| (x) - (let (m u) +\defun{checkIsValidType}{checkIsValidType} +This function returns ok if correct, +form is wrong number of arguments, nil if unknown +\calls{checkIsValidType}{nequal} +\calls{checkIsValidType}{length} +\calls{checkIsValidType}{checkIsValidType} +\calls{checkIsValidType}{constructor?} +\calls{checkIsValidType}{abbreviation?} +\calls{checkIsValidType}{getdatabase} +\begin{chunk}{defun checkIsValidType} +(defun |checkIsValidType| (form) + (labels ( + (fn (form coSig) + (cond + ((nequal (|#| form) (|#| coSig)) form) + ((let (result) + (loop for x in (rest form) + for flag in (rest coSig) + do (when flag (setq result (or result (null (|checkIsValidType| x)))))) + result) + nil) + (t '|ok|)))) + (let (op args conname) (cond - ((charp x) (list x)) - ((eql (|#| x) 1) (list (elt x 0))) - ((and (setq u (|checkSplitBackslash| x)) (cdr u)) - (let (result) - (loop for y in u do (append result (|checkSplitBrace| y))) - result)) - (t - (setq m (maxindex x)) - (cond - ((and (setq u (|checkSplitOn| x)) (cdr u)) - (let (result) - (loop for y in u do (append result (|checkSplitBrace| y))) - result)) - ((and (setq u (|checkSplitPunctuation| x)) (cdr u)) - (let (result) - (loop for y in u do (append result (|checkSplitBrace| y))) - result)) - (t (list x))))))) + ((atom form) '|ok|) + (t + (setq op (car form)) + (setq args (cdr form)) + (setq conname + (if (|constructor?| op) + op + (|abbreviation?| op))) + (when conname (fn form (getdatabase conname 'cosig)))))))) + +\end{chunk} + +\defun{checkLookForLeftBrace}{checkLookForLeftBrace} +\calls{checkLookForLeftBrace}{nequal} +\refsdollar{checkLookForLeftBrace}{charBlank} +\refsdollar{checkLookForLeftBrace}{charLbrace} +\begin{chunk}{defun checkLookForLeftBrace} +(defun |checkLookForLeftBrace| (u) + (declare (special |$charBlank| |$charLbrace|)) + (loop while u + do + (cond + ((equal (car u) |$charLbrace|) (return (car u))) + ((nequal (car u) |$charBlank|) (return nil)) + (t (pop u)))) + u) + +\end{chunk} + +\defun{checkLookForRightBrace}{checkLookForRightBrace} +This returns a line beginning with right brace +\refsdollar{checkLookForRightBrace}{charLbrace} +\refsdollar{checkLookForRightBrace}{charRbrace} +\begin{chunk}{defun checkLookForRightBrace} +(defun |checkLookForRightBrace| (u) + (let (found count) + (declare (special |$charLbrace| |$charRbrace|)) + (setq count 0) + (loop while u + do + (cond + ((equal (car u) |$charRbrace|) + (if (eql count 0) + (return (setq found u)) + (setq count (1- count)))) + ((equal (car u) |$charLbrace|) + (setq count (1+ count)))) + (pop u)) + found)) + +\end{chunk} + +\defun{checkNumOfArgs}{checkNumOfArgs} +A nil return implies that the argument list length does not match +\calls{checkNumOfArgs}{opOf} +\calls{checkNumOfArgs}{constructor?} +\calls{checkNumOfArgs}{abbreviation?} +\calls{checkNumOfArgs}{getdatabase} +\begin{chunk}{defun checkNumOfArgs} +(defun |checkNumOfArgs| (conform) + (let (conname) + (setq conname (|opOf| conform)) + (when (or (|constructor?| conname) (setq conname (|abbreviation?| conname))) + (|#| (getdatabase conname 'constructorargs))))) + +\end{chunk} + +\defun{checkSayBracket}{checkSayBracket} +\begin{chunk}{defun checkSayBracket} +(defun |checkSayBracket| (x) + (cond + ((or (char= x #\() (char= x #\))) "pren") + ((or (char= x #\{) (char= x #\})) "brace") + (t "bracket"))) + +\end{chunk} + +\defun{checkSkipBlanks}{checkSkipBlanks} +\refsdollar{checkSkipBlanks}{charBlank} +\begin{chunk}{defun checkSkipBlanks} +(defun |checkSkipBlanks| (u i m) + (declare (special |$charBlank|)) + (do () + ((null (and (> m i) (equal (elt u i) |$charBlank|))) nil) + (setq i (1+ i))) + (unless (= i m) i)) \end{chunk} @@ -20631,6 +21434,45 @@ This returns a line beginning with right brace \end{chunk} +\defun{checkSplitOn}{checkSplitOn} +\calls{checkSplitOn}{checkSplitOn} +\calls{checkSplitOn}{charp} +\calls{checkSplitOn}{maxindex} +\calls{checkSplitOn}{charPosition} +\refsdollar{checkSplitOn}{charBack} +\refsdollar{checkSplitOn}{charSplitList} +\begin{chunk}{defun checkSplitOn} +(defun |checkSplitOn| (x) + (let (m char k z) + (declare (special |$charBack| |$charSplitList|)) + (cond + ((charp x) (list x)) + (t + (setq z |$charSplitList|) + (setq m (maxindex x)) + (loop while z + do + (setq char (car z)) + (cond + ((and (eql m 0) (equal (elt x 0) char)) + (return (setq k -1))) + (t + (setq k (|charPosition| char x 0)) + (cond + ((and (> k 0) (equal (elt x (1- k)) |$charBack|)) (list x)) + ((<= k m) (return k))))) + (pop z)) + (cond + ((null z) (list x)) + ((eql k -1) (list char)) + ((eql k 0) (list char (substring x 1 nil))) + ((eql k (maxindex x)) (list (substring x 0 k) char)) + (t + (cons (substring x 0 k) + (cons char (|checkSplitOn| (substring x (1+ k) nil)))))))))) + +\end{chunk} + \defun{checkSplitPunctuation}{checkSplitPunctuation} \calls{checkSplitPunctuation}{charp} \calls{checkSplitPunctuation}{maxindex} @@ -20697,88 +21539,59 @@ This returns a line beginning with right brace \end{chunk} -\defun{checkSplitOn}{checkSplitOn} -\calls{checkSplitOn}{checkSplitOn} -\calls{checkSplitOn}{charp} -\calls{checkSplitOn}{maxindex} -\calls{checkSplitOn}{charPosition} -\refsdollar{checkSplitOn}{charBack} -\refsdollar{checkSplitOn}{charSplitList} -\begin{chunk}{defun checkSplitOn} -(defun |checkSplitOn| (x) - (let (m char k z) - (declare (special |$charBack| |$charSplitList|)) - (cond - ((charp x) (list x)) - (t - (setq z |$charSplitList|) - (setq m (maxindex x)) - (loop while z - do - (setq char (car z)) - (cond - ((and (eql m 0) (equal (elt x 0) char)) - (return (setq k -1))) - (t - (setq k (|charPosition| char x 0)) - (cond - ((and (> k 0) (equal (elt x (1- k)) |$charBack|)) (list x)) - ((<= k m) (return k))))) - (pop z)) - (cond - ((null z) (list x)) - ((eql k -1) (list char)) - ((eql k 0) (list char (substring x 1 nil))) - ((eql k (maxindex x)) (list (substring x 0 k) char)) - (t - (cons (substring x 0 k) - (cons char (|checkSplitOn| (substring x (1+ k) nil)))))))))) - -\end{chunk} - -\defun{checkNumOfArgs}{checkNumOfArgs} -A nil return implies that the argument list length does not match -\calls{checkNumOfArgs}{opOf} -\calls{checkNumOfArgs}{constructor?} -\calls{checkNumOfArgs}{abbreviation?} -\calls{checkNumOfArgs}{getdatabase} -\begin{chunk}{defun checkNumOfArgs} -(defun |checkNumOfArgs| (conform) - (let (conname) - (setq conname (|opOf| conform)) - (when (or (|constructor?| conname) (setq conname (|abbreviation?| conname))) - (|#| (getdatabase conname 'constructorargs))))) +\defun{firstNonBlankPosition}{firstNonBlankPosition} +\calls{firstNonBlankPosition}{nequal} +\calls{firstNonBlankPosition}{maxindex} +\begin{chunk}{defun firstNonBlankPosition} +(defun |firstNonBlankPosition| (&rest therest) + (let ((x (car therest)) (options (cdr therest)) start k) + (declare (special |$charBlank|)) + (setq start (or (ifcar options) 0)) + (setq k -1) + (loop for i from start to (maxindex x) + do (when (nequal (elt x i) |$charBlank|) (return (setq k i)))) + k)) \end{chunk} -\defun{checkRemoveComments}{checkRemoveComments} -\calls{checkRemoveComments}{checkTrimCommented} -\begin{chunk}{defun checkRemoveComments} -(defun |checkRemoveComments| (lines) - (let (line acc) - (loop while lines +\defun{getMatchingRightPren}{getMatchingRightPren} +\calls{getMatchingRightPren}{maxindex} +\begin{chunk}{defun getMatchingRightPren} +(defun |getMatchingRightPren| (u j open close) + (let (m c found count) + (setq count 0) + (setq m (maxindex u)) + (loop for i from j to m do - (setq line (|checkTrimCommented| (car lines))) - (when (>= (|firstNonBlankPosition| line) 0) (push line acc)) - (pop lines)) - (nreverse acc))) + (setq c (elt u i)) + (cond + ((equal c close) + (if (eql count 0) + (return (setq found i)) + (setq count (1- count)))) + ((equal c open) + (setq count (1+ count))))) + found)) \end{chunk} -\defun{checkTrimCommented}{checkTrimCommented} -\calls{checkTrimCommented}{length} -\calls{checkTrimCommented}{htcharPosition} -\calls{checkTrimCommented}{nequal} -\begin{chunk}{defun checkTrimCommented} -(defun |checkTrimCommented| (line) - (let (n k) - (setq n (|#| line)) - (setq k (|htcharPosition| (|char| '%) line 0)) +\defun{hasNoVowels}{hasNoVowels} +\calls{hasNoVowels}{maxindex} +\begin{chunk}{defun hasNoVowels} +(defun |hasNoVowels| (x) + (labels ( + (isVowel (c) + (or (eq c #\a) (eq c #\e) (eq c #\i) (eq c #\o) (eq c #\u) + (eq c #\A) (eq c #\E) (eq c #\I) (eq c #\O) (eq c #\U)))) + (let (max) + (setq max (maxindex x)) (cond - ((eql k 0) "") - ((or (>= k (1- n)) (nequal (elt line (1+ k)) #\%)) line) - ((> (|#| line) k) (substring line 0 k)) - (t line)))) + ((char= (elt x max) #\y) nil) + (t + (let ((result t)) + (loop for i from 0 to max + do (setq result (and result (null (isVowel (elt x i)))))) + result)))))) \end{chunk} @@ -20804,104 +21617,6 @@ A nil return implies that the argument list length does not match \end{chunk} -\defun{checkAddMacros}{checkAddMacros} -\calls{checkAddMacros}{lassoc} -\calls{checkAddMacros}{nreverse} -\refsdollar{checkAddMacros}{HTmacs} -\begin{chunk}{defun checkAddMacros} -(defun |checkAddMacros| (u) - (let (x verbatim y acc) - (declare (special |$HTmacs|)) - (loop while u - do - (setq x (car u)) - (setq acc - (cond - ((string= x "\\end{verbatim}") - (setq verbatim nil) - (cons x acc)) - (verbatim - (cons x acc)) - ((string= x "\\begin{verbatim}") - (setq verbatim t) - (cons x acc)) - ((setq y (lassoc x |$HTmacs|)) - (append y acc)) - (t (cons x acc)))) - (pop u)) - (nreverse acc))) - -\end{chunk} - -\defun{checkIndentedLines}{checkIndentedLines} -\calls{checkIndentedLines}{firstNonBlankPosition} -\calls{checkIndentedLines}{strconc} -\calls{checkIndentedLines}{checkAddSpaceSegments} -\refsdollar{checkIndentedLines}{charFauxNewline} -\begin{chunk}{defun checkIndentedLines} -(defun |checkIndentedLines| (u margin) - (let (k s verbatim u2) - (declare (special |$charFauxNewline|)) - (loop for x in u - do - (setq k (|firstNonBlankPosition| x)) - (cond - ((eql k -1) - (if verbatim - (setq u2 (append u2 (list |$charFauxNewline|))) - (setq u2 (append u2 (list "\\blankline "))))) - (t - (setq s (substring x k nil)) - (cond - ((string= s "\\begin{verbatim}") - (setq verbatim t) - (setq u2 (append u2 (list s)))) - ((string= s "\\end{verbatim}") - (setq verbatim nil) - (setq u2 (append u2 (list s)))) - (verbatim - (setq u2 (append u2 (list (substring x margin nil))))) - ((eql margin k) - (setq u2 (append u2 (list s)))) - (t - (setq u2 - (append u2 - (list (strconc "\\indented{" (stringimage (- k margin)) - "}{" (|checkAddSpaceSegments| s 0) "}"))))))))) - u2)) - -\end{chunk} - -\defun{newString2Words}{newString2Words} -\calls{newString2Words}{newWordFrom} -\calls{newString2Words}{nreverse0} -\begin{chunk}{defun newString2Words} -(defun |newString2Words| (z) - (let (m tmp1 w i result) - (cond - ((null (stringp z)) (list z)) - (t - (setq m (maxindex z)) - (cond - ((eql m -1) nil) - (t - (setq i 0) - (do () ; [w while newWordFrom(l,i,m) is [w,i]] - ((null (progn - (setq tmp1 (|newWordFrom| z i m)) - (and (consp tmp1) - (progn - (setq w (qcar tmp1)) - (and (consp (qcdr tmp1)) - (eq (qcddr tmp1) nil) - (progn - (setq i (qcadr tmp1)) - t)))))) - (nreverse0 result)) - (setq result (cons (qcar tmp1) result))))))))) - -\end{chunk} - \defun{newWordFrom}{newWordFrom} \refsdollar{newWordFrom}{stringFauxNewline} \refsdollar{newWordFrom}{charBlank} @@ -20934,382 +21649,52 @@ A nil return implies that the argument list length does not match \end{chunk} -\defun{checkGetArgs}{checkGetArgs} -\calls{checkGetArgs}{maxindex} -\calls{checkGetArgs}{firstNonBlankPosition} -\calls{checkGetArgs}{checkGetArgs} -\calls{checkGetArgs}{stringPrefix?} -\calls{checkGetArgs}{getMatchingRightPren} -\calls{checkGetArgs}{charPosition} -\calls{checkGetArgs}{nequal} -\calls{checkGetArgs}{trimString} -\refsdollar{checkGetArgs}{charComma} -\begin{chunk}{defun checkGetArgs} -(defun |checkGetArgs| (u) - (let (m k acc i) - (declare (special |$charComma|)) - (cond - ((null (stringp u)) nil) - (t - (setq m (maxindex u)) - (setq k (|firstNonBlankPosition| u)) - (cond - ((> k 0) - (|checkGetArgs| (substring u k nil))) - ((|stringPrefix?| "\\spad{" u) - (setq k (or (|getMatchingRightPren| u 6 #\{ #\}) m)) - (|checkGetArgs| (substring u 6 (- k 6)))) - ((> (setq i (|charPosition| #\( u 0)) m) - nil) - ((nequal (elt u m) #\)) - nil) - (t - (do () - ((null (> m (setq k (|charPosition| |$charComma| u (1+ i))))) nil) - (setq acc - (cons (|trimString| (substring u (1+ i) (1- (- k i)))) acc)) - (setq i k)) - (nreverse (cons (substring u (1+ i) (1- (- m i))) acc)))))))) - -\end{chunk} - -\defun{checkAddSpaceSegments}{checkAddSpaceSegments} -\calls{checkAddSpaceSegments}{checkAddSpaceSegments} -\calls{checkAddSpaceSegments}{maxindex} -\calls{checkAddSpaceSegments}{charPosition} -\calls{checkAddSpaceSegments}{strconc} -\refsdollar{checkAddSpaceSegments}{charBlank} -\begin{chunk}{defun checkAddSpaceSegments} -(defun |checkAddSpaceSegments| (u k) - (let (m i j n) - (declare (special |$charBlank|)) - (setq m (maxindex u)) - (setq i (|charPosition| |$charBlank| u k)) - (cond - ((> i m) u) - (t - (setq j i) - (loop while (and (incf j) (char= (elt u j) #\space))) - (setq n (- j i)) ; number of blanks - (if (> n 1) - (strconc (substring u 0 i) "\\space{" (stringimage n) "}" - (|checkAddSpaceSegments| (substring u (+ i n) nil) 0)) - (|checkAddSpaceSegments| u j)))))) - -\end{chunk} - -\defun{checkTrim}{checkTrim} -\calls{checkTrim}{charPosition} -\calls{checkTrim}{nequal} -\calls{checkTrim}{systemError} -\calls{checkTrim}{checkDocError} -\refsdollar{checkTrim}{charBlank} -\refsdollar{checkTrim}{x} -\refsdollar{checkTrim}{charPlus} -\begin{chunk}{defun checkTrim} -(defun |checkTrim| (|$x| lines) - (declare (special |$x|)) - (labels ( - (trim (s) - (let (k) - (declare (special |$charBlank|)) - (setq k (wherePP s)) - (substring s (+ k 2) nil))) - (wherePP (u) - (let (k) - (declare (special |$charPlus|)) - (setq k (|charPosition| |$charPlus| u 0)) - (if (or (eql k (|#| u)) - (nequal (|charPosition| |$charPlus| u (1+ k)) (1+ k))) - (|systemError| " Improper comment found") - k)))) - (let (j s) - (setq s (list (wherePP (car lines)))) - (loop for x in (rest lines) - do - (setq j (wherePP x)) - (unless (member j s) - (|checkDocError| (list |$x| " has varying indentation levels")) - (setq s (cons j s)))) - (loop for y in lines - collect (trim y))))) - -\end{chunk} - -\defun{checkExtract}{checkExtract} -\calls{checkExtract}{firstNonBlankPosition} -\calls{checkExtract}{substring?} -\calls{checkExtract}{charPosition} -\calls{checkExtract}{length} -\begin{chunk}{defun checkExtract} -(defun |checkExtract| (header lines) - (let (line u margin firstLines m k j i acc) - (loop while lines - do - (setq line (car lines)) - (setq k (|firstNonBlankPosition| line)) ; gives margin of description - (if (|substring?| header line k) - (return nil) - (setq lines (cdr lines)))) - (cond - ((null lines) nil) - (t - (setq u (car lines)) - (setq j (|charPosition| #\: u k)) - (setq margin k) - (setq firstLines - (if (nequal (setq k (|firstNonBlankPosition| u (1+ j))) -1) - (cons (substring u (1+ j) nil) (cdr lines)) - (cdr lines))) - ; now look for another header; if found skip all rest of these lines - (setq acc nil) - (loop for line in firstLines - do - (setq m (|#| line)) - (cond - ((eql (setq k (|firstNonBlankPosition| line)) -1) '|skip|) - ((> k margin) '|skip|) - ((null (upper-case-p (elt line k))) '|skip|) - ((equal (setq j (|charPosition| #\: line k)) m) '|skip|) - ((> j (setq i (|charPosition| #\space line (1+ k)))) '|skip|) - (t (return nil))) - (setq acc (cons line acc))) - (nreverse acc))))) - -\end{chunk} - -\defun{checkFixCommonProblem}{checkFixCommonProblem} -\calls{checkFixCommonProblem}{member} -\calls{checkFixCommonProblem}{ifcar} -\calls{checkFixCommonProblem}{ifcdr} -\calls{checkFixCommonProblem}{nequal} -\calls{checkFixCommonProblem}{checkDocError} -\refsdollar{checkFixCommonProblem}{charLbrace} -\refsdollar{checkFixCommonProblem}{HTspadmacros} -\begin{chunk}{defun checkFixCommonProblem} -(defun |checkFixCommonProblem| (u) - (let (x next acc) - (declare (special |$charLbrace| |$HTspadmacros|)) - (loop while u - do - (setq x (car u)) - (cond - ((and (equal x |$charLbrace|) - (|member| (setq next (ifcar (cdr u))) |$HTspadmacros|) - (nequal (ifcar (ifcdr (cdr u))) |$charLbrace|)) - (|checkDocError| (list "Reversing " next " and left brace")) - (setq acc (cons |$charLbrace| (cons next acc))) - (setq u (cddr u))) - (t - (setq acc (cons x acc)) - (setq u (cdr u))))) - (nreverse acc))) - -\end{chunk} - -\defun{checkDecorate}{checkDecorate} -\calls{checkDecorate}{checkDocError} -\calls{checkDecorate}{member} -\calls{checkDecorate}{checkAddBackSlashes} -\calls{checkDecorate}{hasNoVowels} -\refsdollar{checkDecorate}{checkingXmptex?} -\refsdollar{checkDecorate}{charExclusions} -\refsdollar{checkDecorate}{argl} -\refsdollar{checkDecorate}{charBack} -\refsdollar{checkDecorate}{charRbrace} -\refsdollar{checkDecorate}{charLbrace} -\begin{chunk}{defun checkDecorate} -(defun |checkDecorate| (u) - (let (x count mathSymbolsOk spadflag verbatim v xcount acc) - (declare (special |$charLbrace| |$charRbrace| |$charBack| |$argl| - |$charExclusions| |$checkingXmptex?|)) - (setq count 0) - (loop while u - do - (setq x (car u)) - (cond - ((null verbatim) - (cond - ((string= x "\\em") - (cond - ((> count 0) - (setq mathSymbolsOk (1- count)) - (setq spadflag (1- count))) - (t - (|checkDocError| (list "\\em must be enclosed in braces")))))) - (when (|member| x '("\\spadpaste" "\\spad" "\\spadop")) - (setq mathSymbolsOk count)) - (cond - ((|member| x '("\\s" "\\spadtype" "\\spadsys" "\\example" "\\andexample" - "\\spadop" "\\spad" "\\spadignore" "\\spadpaste" - "\\spadcommand" "\\footnote")) - (setq spadflag count)) - ((equal x |$charLbrace|) - (setq count (1+ count))) - ((equal x |$charRbrace|) - (setq count (1- count)) - (when (eql mathSymbolsOk count) (setq mathSymbolsOk nil)) - (when (eql spadflag count) (setq spadflag nil))) - ((and (null mathSymbolsOk) - (|member| x '("+" "*" "=" "==" "->"))) - (when |$checkingXmptex?| - (|checkDocError| - (list '|Symbol | x " appearing outside \\spad{}"))))))) - (setq acc - (cond - ((string= x "\\end{verbatim}") - (setq verbatim nil) - (cons x acc)) - (verbatim (cons x acc)) - ((string= x "\\begin{verbatim}") - (setq verbatim t) - (cons x acc)) - ((and (string= x "\\begin") - (equal (car (setq v (ifcdr u))) |$charLbrace|) - (string= (car (setq v (ifcdr v))) "detail") - (equal (car (setq v (ifcdr v))) |$charRbrace|)) - (setq u v) - (cons "\\blankline " acc)) - ((and (string= x "\\end") - (equal (car (setq v (ifcdr u))) |$charLbrace|) - (string= (car (setq v (ifcdr v))) "detail") - (equal (car (setq v (ifcdr v))) |$charRbrace|)) - (setq u v) - acc) - ((or (char= x #\$) (string= x "$")) - (cons "\\$" acc)) - ((or (char= x #\%) (string= x "%")) - (cons "\\%" acc)) - ((or (char= x #\,) (string= x ",")) - (cons ",{}" acc)) - ((string= x "\\spad") - (cons "\\spad" acc)) - ((and (stringp x) (digitp (elt x 0))) - (cons x acc)) - ((and (null spadflag) - (or (and (charp x) - (alpha-char-p x) - (null (member x |$charExclusions|))) - (|member| x |$argl|))) - (cons |$charRbrace| (cons x (cons |$charLbrace| (cons "\\spad" acc))))) - ((and (null spadflag) - (or (and (stringp x) - (null (equal (elt x 0) |$charBack|)) - (digitp (elt x (maxindex x)))) - (|member| x '("true" "false")))) - (cons |$charRbrace| (cons x (cons |$charLbrace| (cons "\\spad" acc))))) - (t - (setq xcount (|#| x)) - (cond - ((and (eql xcount 3) - (char= (elt x 1) #\t) - (char= (elt x 2) #\h)) - (cons "th" (cons |$charRbrace| - (cons (elt x 0) (cons |$charLbrace| (cons "\\spad" acc)))))) - ((and (eql xcount 4) - (char= (elt x 1) #\-) - (char= (elt x 2) #\t) - (char= (elt x 3) #\h)) - (cons "-th" (cons |$charRbrace| - (cons (elt x 0) (cons |$charLbrace| (cons "\\spad" acc)))))) - ((or (and (eql xcount 2) - (char= (elt x 1) #\i)) - (and (null spadflag) - (> xcount 0) - (> 4 xcount) - (null (|member| x '("th" "rd" "st"))) - (|hasNoVowels| x))) - (cons |$charRbrace| - (cons x (cons |$charLbrace| (cons "\\spad" acc))))) - (t - (cons (|checkAddBackSlashes| x) acc)))))) - (setq u (cdr u))) - (nreverse acc))) - -\end{chunk} - -\defun{hasNoVowels}{hasNoVowels} -\calls{hasNoVowels}{maxindex} -\begin{chunk}{defun hasNoVowels} -(defun |hasNoVowels| (x) - (labels ( - (isVowel (c) - (or (eq c #\a) (eq c #\e) (eq c #\i) (eq c #\o) (eq c #\u) - (eq c #\A) (eq c #\E) (eq c #\I) (eq c #\O) (eq c #\U)))) - (let (max) - (setq max (maxindex x)) - (cond - ((char= (elt x max) #\y) nil) - (t - (let ((result t)) - (loop for i from 0 to max - do (setq result (and result (null (isVowel (elt x i)))))) - result)))))) - -\end{chunk} - -\defun{checkAddBackSlashes}{checkAddBackSlashes} -\calls{checkAddBackSlashes}{strconc} -\calls{checkAddBackSlashes}{maxindex} -\calls{checkAddBackSlashes}{checkAddBackSlashes} -\refsdollar{checkAddBackSlashes}{charBack} -\refsdollar{checkAddBackSlashes}{charEscapeList} -\begin{chunk}{defun checkAddBackSlashes} -(defun |checkAddBackSlashes| (s) - (let (c m char insertIndex k) - (declare (special |$charBack| |$charEscapeList|)) +\defun{removeBackslashes}{removeBackslashes} +\calls{removeBackslashes}{charPosition} +\calls{removeBackslashes}{removeBackslashes} +\calls{removeBackslashes}{strconc} +\calls{removeBackslashes}{length} +\refsdollar{removeBackslashes}{charBack} +\begin{chunk}{defun removeBackslashes} +(defun |removeBackslashes| (s) + (let (k) + (declare (special |$charBack|)) (cond - ((or (and (charp s) (setq c s)) - (and (eql (|#| s) 1) (setq c (elt s 0)))) - (if (member s |$charEscapeList|) - (strconc |$charBack| c) - s)) - (t - (setq k 0) - (setq m (maxindex s)) - (setq insertIndex nil) - (loop while (< k m) - do - (setq char (elt s k)) - (cond - ((char= char |$charBack|) (setq k (+ k 2))) - ((member char |$charEscapeList|) (return (setq insertIndex k)))) - (setq k (1+ k))) - (cond - (insertIndex - (|checkAddBackSlashes| - (strconc (substring s 0 insertIndex) |$charBack| (elt s k) - (substring s (1+ insertIndex) nil)))) - (T s)))))) + ((string= s "") "") + ((> (|#| s) (setq k (|charPosition| |$charBack| s 0))) + (if (eql k 0) + (|removeBackslashes| (substring s 1 nil)) + (strconc (substring s 0 k) + (|removeBackslashes| (substring s (1+ k) nil))))) + (t s)))) \end{chunk} -\defun{checkAddSpaces}{checkAddSpaces} -\refsdollar{checkAddSpaces}{charBlank} -\refsdollar{checkAddSpaces}{charFauxNewline} -\begin{chunk}{defun checkAddSpaces} -(defun |checkAddSpaces| (u) - (let (u2 space i) - (declare (special |$charBlank| |$charFauxNewline|)) - (cond - ((null u) nil) - ((null (cdr u)) u) - (t - (setq space |$charBlank|) - (setq i 0) - (loop for f in u - do - (incf i) - (when (string= f "\\begin{verbatim}") - (setq space |$charFauxNewline|) - (unless u2 (setq u2 (list space)))) - (if (> i 1) - (setq u2 (append u2 (list space f))) - (setq u2 (append u2 (list f)))) - (when (string= f "\\end{verbatim}") - (setq u2 (append u2 (list space))) - (setq space |$charBlank|))) - u2)))) +\defun{whoOwns}{whoOwns} +This function always returns nil in the current system. +Since it has no side effects we define it to return nil. +\calls{whoOwns}{getdatabase} +\calls{whoOwns}{strconc} +\calls{whoOwns}{awk} +\calls{whoOwns}{shut} +\refsdollar{whoOwns}{exposeFlag} +\begin{chunk}{defun whoOwns} +(defun |whoOwns| (con) + (declare (ignore con)) + nil) +; (let (filename quoteChar instream value) +; (declare (special |$exposeFlag|)) +; (cond +; ((null |$exposeFlag|) nil) +; (t +; (setq filename (getdatabase con 'sourcefile)) +; (setq quoteChar #\") +; (obey (strconc "awk '$2 == " quoteChar filename quoteChar +; " {print $1}' whofiles > /tmp/temp")) +; (setq instream (make-instream "/tmp/temp")) +; (setq value (unless (eofp instream) (readline instream))) +; (shut instream) +; value)))) \end{chunk} @@ -25225,8 +25610,10 @@ The current input line. \getchunk{defun char-eq} \getchunk{defun char-ne} \getchunk{defun checkAddBackSlashes} +\getchunk{defun checkAddIndented} \getchunk{defun checkAddMacros} \getchunk{defun checkAddPeriod} +\getchunk{defun checkAddSpaces} \getchunk{defun checkAddSpaceSegments} \getchunk{defun checkAlphabetic} \getchunk{defun checkAndDeclare} @@ -25242,12 +25629,15 @@ The current input line. \getchunk{defun checkExtract} \getchunk{defun checkFixCommonProblem} \getchunk{defun checkGetArgs} +\getchunk{defun checkGetLispFunctionName} \getchunk{defun checkGetMargin} \getchunk{defun checkGetParse} +\getchunk{defun checkGetStringBeforeRightBrace} \getchunk{defun checkHTargs} \getchunk{defun checkIeEg} \getchunk{defun checkIeEgfun} \getchunk{defun checkIndentedLines} +\getchunk{defun checkIsValidType} \getchunk{defun checkLookForLeftBrace} \getchunk{defun checkLookForRightBrace} \getchunk{defun checkNumOfArgs} @@ -25260,13 +25650,12 @@ The current input line. \getchunk{defun checkSkipIdentifierToken} \getchunk{defun checkSkipOpToken} \getchunk{defun checkSkipToken} -\getchunk{defun checkAddIndented} -\getchunk{defun checkAddSpaces} \getchunk{defun checkSplitBackslash} \getchunk{defun checkSplitBrace} \getchunk{defun checkSplitOn} \getchunk{defun checkSplitPunctuation} \getchunk{defun checkSplit2Words} +\getchunk{defun checkTexht} \getchunk{defun checkTransformFirsts} \getchunk{defun checkTrim} \getchunk{defun checkTrimCommented} diff --git a/books/ps/v9CommentRecording.eps b/books/ps/v9CommentRecording.eps new file mode 100644 index 0000000..a8518ad --- /dev/null +++ b/books/ps/v9CommentRecording.eps @@ -0,0 +1,516 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: Graphviz version 2.20.2 (Mon Mar 30 10:09:11 UTC 2009) +%%For: (root) root +%%Title: pic +%%Pages: 1 +%%BoundingBox: 36 36 555 368 +%%EndComments +save +%%BeginProlog +/DotDict 200 dict def +DotDict begin + +/setupLatin1 { +mark +/EncodingVector 256 array def + EncodingVector 0 + +ISOLatin1Encoding 0 255 getinterval putinterval +EncodingVector 45 /hyphen put + +% Set up ISO Latin 1 character encoding +/starnetISO { + dup dup findfont dup length dict begin + { 1 index /FID ne { def }{ pop pop } ifelse + } forall + /Encoding EncodingVector def + currentdict end definefont +} def +/Times-Roman starnetISO def +/Times-Italic starnetISO def +/Times-Bold starnetISO def +/Times-BoldItalic starnetISO def +/Helvetica starnetISO def +/Helvetica-Oblique starnetISO def +/Helvetica-Bold starnetISO def +/Helvetica-BoldOblique starnetISO def +/Courier starnetISO def +/Courier-Oblique starnetISO def +/Courier-Bold starnetISO def +/Courier-BoldOblique starnetISO def +cleartomark +} bind def + +%%BeginResource: procset graphviz 0 0 +/coord-font-family /Times-Roman def +/default-font-family /Times-Roman def +/coordfont coord-font-family findfont 8 scalefont def + +/InvScaleFactor 1.0 def +/set_scale { + dup 1 exch div /InvScaleFactor exch def + scale +} bind def + +% styles +/solid { [] 0 setdash } bind def +/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def +/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def +/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def +/bold { 2 setlinewidth } bind def +/filled { } bind def +/unfilled { } bind def +/rounded { } bind def +/diagonals { } bind def + +% hooks for setting color +/nodecolor { sethsbcolor } bind def +/edgecolor { sethsbcolor } bind def +/graphcolor { sethsbcolor } bind def +/nopcolor {pop pop pop} bind def + +/beginpage { % i j npages + /npages exch def + /j exch def + /i exch def + /str 10 string def + npages 1 gt { + gsave + coordfont setfont + 0 0 moveto + (\() show i str cvs show (,) show j str cvs show (\)) show + grestore + } if +} bind def + +/set_font { + findfont exch + scalefont setfont +} def + +% draw text fitted to its expected width +/alignedtext { % width text + /text exch def + /width exch def + gsave + width 0 gt { + [] 0 setdash + text stringwidth pop width exch sub text length div 0 text ashow + } if + grestore +} def + +/boxprim { % xcorner ycorner xsize ysize + 4 2 roll + moveto + 2 copy + exch 0 rlineto + 0 exch rlineto + pop neg 0 rlineto + closepath +} bind def + +/ellipse_path { + /ry exch def + /rx exch def + /y exch def + /x exch def + matrix currentmatrix + newpath + x y translate + rx ry scale + 0 0 1 0 360 arc + setmatrix +} bind def + +/endpage { showpage } bind def +/showpage { } def + +/layercolorseq + [ % layer color sequence - darkest to lightest + [0 0 0] + [.2 .8 .8] + [.4 .8 .8] + [.6 .8 .8] + [.8 .8 .8] + ] +def + +/layerlen layercolorseq length def + +/setlayer {/maxlayer exch def /curlayer exch def + layercolorseq curlayer 1 sub layerlen mod get + aload pop sethsbcolor + /nodecolor {nopcolor} def + /edgecolor {nopcolor} def + /graphcolor {nopcolor} def +} bind def + +/onlayer { curlayer ne {invis} if } def + +/onlayers { + /myupper exch def + /mylower exch def + curlayer mylower lt + curlayer myupper gt + or + {invis} if +} def + +/curlayer 0 def + +%%EndResource +%%EndProlog +%%BeginSetup +14 default-font-family set_font +1 setmiterlimit +% /arrowlength 10 def +% /arrowwidth 5 def + +% make sure pdfmark is harmless for PS-interpreters other than Distiller +/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse +% make '<<' and '>>' safe on PS Level 1 devices +/languagelevel where {pop languagelevel}{1} ifelse +2 lt { + userdict (<<) cvn ([) cvn load put + userdict (>>) cvn ([) cvn load put +} if + +%%EndSetup +setupLatin1 +%%Page: 1 1 +%%PageBoundingBox: 36 36 555 368 +%%PageOrientation: Portrait +0 0 1 beginpage +gsave +36 36 519 332 boxprim clip newpath +1 1 set_scale 0 rotate 40 40 translate +% postDef +gsave +0.000 0.000 1.000 nodecolor +newpath 142 180 moveto +74 180 lineto +74 144 lineto +142 144 lineto +closepath fill +1 setlinewidth +filled +0.000 0.000 1.000 nodecolor +newpath 142 180 moveto +74 180 lineto +74 144 lineto +142 144 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +81.5 157.9 moveto 53 (postDef) alignedtext +grestore +% recordHeaderDocumentation +gsave +0.167 0.600 1.000 nodecolor +newpath 216 108 moveto +0 108 lineto +0 72 lineto +216 72 lineto +closepath fill +1 setlinewidth +filled +0.167 0.600 1.000 nodecolor +newpath 216 108 moveto +0 108 lineto +0 72 lineto +216 72 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +8 85.9 moveto 200 (recordHeaderDocumentation) alignedtext +grestore +% postDef->recordHeaderDocumentation +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 108 144 moveto +108 136 108 127 108 118 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 111.5 118 moveto +108 108 lineto +104.5 118 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 111.5 118 moveto +108 108 lineto +104.5 118 lineto +closepath stroke +grestore +% PARSE-Category +gsave +0.000 0.000 1.000 nodecolor +newpath 334 324 moveto +204 324 lineto +204 288 lineto +334 288 lineto +closepath fill +1 setlinewidth +filled +0.000 0.000 1.000 nodecolor +newpath 334 324 moveto +204 324 lineto +204 288 lineto +334 288 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +212 301.9 moveto 114 (PARSE-Category) alignedtext +grestore +% recordAttributeDocumentation +gsave +0.067 1.000 1.000 nodecolor +newpath 259 252 moveto +31 252 lineto +31 216 lineto +259 216 lineto +closepath fill +1 setlinewidth +filled +0.067 1.000 1.000 nodecolor +newpath 259 252 moveto +31 252 lineto +31 216 lineto +259 216 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +38.5 229.9 moveto 213 (recordAttributeDocumentation) alignedtext +grestore +% PARSE-Category->recordAttributeDocumentation +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 238 288 moveto +222 279 202 267 185 257 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 186.44 253.8 moveto +176 252 lineto +183.04 259.92 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 186.44 253.8 moveto +176 252 lineto +183.04 259.92 lineto +closepath stroke +grestore +% recordSignatureDocumentation +gsave +0.067 1.000 1.000 nodecolor +newpath 511 252 moveto +277 252 lineto +277 216 lineto +511 216 lineto +closepath fill +1 setlinewidth +filled +0.067 1.000 1.000 nodecolor +newpath 511 252 moveto +277 252 lineto +277 216 lineto +511 216 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +285 229.9 moveto 218 (recordSignatureDocumentation) alignedtext +grestore +% PARSE-Category->recordSignatureDocumentation +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 301 288 moveto +317 279 337 267 354 257 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 355.96 259.92 moveto +363 252 lineto +352.56 253.8 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 355.96 259.92 moveto +363 252 lineto +352.56 253.8 lineto +closepath stroke +grestore +% recordDocumentation +gsave +0.667 0.846 0.867 nodecolor +newpath 353 180 moveto +187 180 lineto +187 144 lineto +353 144 lineto +closepath fill +1 setlinewidth +filled +0.667 0.846 0.867 nodecolor +newpath 353 180 moveto +187 180 lineto +187 144 lineto +353 144 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +195 157.9 moveto 150 (recordDocumentation) alignedtext +grestore +% recordAttributeDocumentation->recordDocumentation +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 177 216 moveto +193 207 213 195 230 185 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 231.96 187.92 moveto +239 180 lineto +228.56 181.8 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 231.96 187.92 moveto +239 180 lineto +228.56 181.8 lineto +closepath stroke +grestore +% recordSignatureDocumentation->recordDocumentation +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 363 216 moveto +347 207 327 195 310 185 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 311.44 181.8 moveto +301 180 lineto +308.04 187.92 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 311.44 181.8 moveto +301 180 lineto +308.04 187.92 lineto +closepath stroke +grestore +% collectComBlock +gsave +0.333 0.857 0.933 nodecolor +newpath 360 108 moveto +234 108 lineto +234 72 lineto +360 72 lineto +closepath fill +1 setlinewidth +filled +0.333 0.857 0.933 nodecolor +newpath 360 108 moveto +234 108 lineto +234 72 lineto +360 72 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +241.5 85.9 moveto 111 (collectComBlock) alignedtext +grestore +% recordDocumentation->collectComBlock +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 277 144 moveto +280 136 283 126 287 118 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 290.48 118.58 moveto +290 108 lineto +283.77 116.57 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 290.48 118.58 moveto +290 108 lineto +283.77 116.57 lineto +closepath stroke +grestore +% recordDocumentation->recordHeaderDocumentation +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 229 144 moveto +207 134 180 122 157 112 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 158.56 108.86 moveto +148 108 lineto +155.72 115.26 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 158.56 108.86 moveto +148 108 lineto +155.72 115.26 lineto +closepath stroke +grestore +% collectAndDeleteAssoc +gsave +0.167 0.600 1.000 nodecolor +newpath 382 36 moveto +212 36 lineto +212 0 lineto +382 0 lineto +closepath fill +1 setlinewidth +filled +0.167 0.600 1.000 nodecolor +newpath 382 36 moveto +212 36 lineto +212 0 lineto +382 0 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +219.5 13.9 moveto 155 (collectAndDeleteAssoc) alignedtext +grestore +% collectComBlock->collectAndDeleteAssoc +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 297 72 moveto +297 64 297 55 297 46 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 300.5 46 moveto +297 36 lineto +293.5 46 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 300.5 46 moveto +297 36 lineto +293.5 46 lineto +closepath stroke +grestore +endpage +showpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +end +restore +%%EOF diff --git a/books/ps/v9CommentSyntaxChecking.eps b/books/ps/v9CommentSyntaxChecking.eps new file mode 100644 index 0000000..9d5c8c7 --- /dev/null +++ b/books/ps/v9CommentSyntaxChecking.eps @@ -0,0 +1,3283 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: Graphviz version 2.20.2 (Mon Mar 30 10:09:11 UTC 2009) +%%For: (root) root +%%Title: hierarchy +%%Pages: 1 +%%BoundingBox: 36 36 3662 800 +%%EndComments +save +%%BeginProlog +/DotDict 200 dict def +DotDict begin + +/setupLatin1 { +mark +/EncodingVector 256 array def + EncodingVector 0 + +ISOLatin1Encoding 0 255 getinterval putinterval +EncodingVector 45 /hyphen put + +% Set up ISO Latin 1 character encoding +/starnetISO { + dup dup findfont dup length dict begin + { 1 index /FID ne { def }{ pop pop } ifelse + } forall + /Encoding EncodingVector def + currentdict end definefont +} def +/Times-Roman starnetISO def +/Times-Italic starnetISO def +/Times-Bold starnetISO def +/Times-BoldItalic starnetISO def +/Helvetica starnetISO def +/Helvetica-Oblique starnetISO def +/Helvetica-Bold starnetISO def +/Helvetica-BoldOblique starnetISO def +/Courier starnetISO def +/Courier-Oblique starnetISO def +/Courier-Bold starnetISO def +/Courier-BoldOblique starnetISO def +cleartomark +} bind def + +%%BeginResource: procset graphviz 0 0 +/coord-font-family /Times-Roman def +/default-font-family /Times-Roman def +/coordfont coord-font-family findfont 8 scalefont def + +/InvScaleFactor 1.0 def +/set_scale { + dup 1 exch div /InvScaleFactor exch def + scale +} bind def + +% styles +/solid { [] 0 setdash } bind def +/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def +/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def +/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def +/bold { 2 setlinewidth } bind def +/filled { } bind def +/unfilled { } bind def +/rounded { } bind def +/diagonals { } bind def + +% hooks for setting color +/nodecolor { sethsbcolor } bind def +/edgecolor { sethsbcolor } bind def +/graphcolor { sethsbcolor } bind def +/nopcolor {pop pop pop} bind def + +/beginpage { % i j npages + /npages exch def + /j exch def + /i exch def + /str 10 string def + npages 1 gt { + gsave + coordfont setfont + 0 0 moveto + (\() show i str cvs show (,) show j str cvs show (\)) show + grestore + } if +} bind def + +/set_font { + findfont exch + scalefont setfont +} def + +% draw text fitted to its expected width +/alignedtext { % width text + /text exch def + /width exch def + gsave + width 0 gt { + [] 0 setdash + text stringwidth pop width exch sub text length div 0 text ashow + } if + grestore +} def + +/boxprim { % xcorner ycorner xsize ysize + 4 2 roll + moveto + 2 copy + exch 0 rlineto + 0 exch rlineto + pop neg 0 rlineto + closepath +} bind def + +/ellipse_path { + /ry exch def + /rx exch def + /y exch def + /x exch def + matrix currentmatrix + newpath + x y translate + rx ry scale + 0 0 1 0 360 arc + setmatrix +} bind def + +/endpage { showpage } bind def +/showpage { } def + +/layercolorseq + [ % layer color sequence - darkest to lightest + [0 0 0] + [.2 .8 .8] + [.4 .8 .8] + [.6 .8 .8] + [.8 .8 .8] + ] +def + +/layerlen layercolorseq length def + +/setlayer {/maxlayer exch def /curlayer exch def + layercolorseq curlayer 1 sub layerlen mod get + aload pop sethsbcolor + /nodecolor {nopcolor} def + /edgecolor {nopcolor} def + /graphcolor {nopcolor} def +} bind def + +/onlayer { curlayer ne {invis} if } def + +/onlayers { + /myupper exch def + /mylower exch def + curlayer mylower lt + curlayer myupper gt + or + {invis} if +} def + +/curlayer 0 def + +%%EndResource +%%EndProlog +%%BeginSetup +14 default-font-family set_font +1 setmiterlimit +% /arrowlength 10 def +% /arrowwidth 5 def + +% make sure pdfmark is harmless for PS-interpreters other than Distiller +/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse +% make '<<' and '>>' safe on PS Level 1 devices +/languagelevel where {pop languagelevel}{1} ifelse +2 lt { + userdict (<<) cvn ([) cvn load put + userdict (>>) cvn ([) cvn load put +} if + +%%EndSetup +setupLatin1 +%%Page: 1 1 +%%PageBoundingBox: 36 36 3662 800 +%%PageOrientation: Portrait +0 0 1 beginpage +gsave +36 36 3626 764 boxprim clip newpath +1 1 set_scale 0 rotate 40 40 translate +% compileDocumentation +gsave +0.000 0.000 1.000 nodecolor +newpath 864 756 moveto +690 756 lineto +690 720 lineto +864 720 lineto +closepath fill +1 setlinewidth +filled +0.000 0.000 1.000 nodecolor +newpath 864 756 moveto +690 756 lineto +690 720 lineto +864 720 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +698 733.9 moveto 158 (compileDocumentation) alignedtext +grestore +% finalizeDocumentation +gsave +0.278 0.750 0.533 nodecolor +newpath 942 684 moveto +770 684 lineto +770 648 lineto +942 648 lineto +closepath fill +1 setlinewidth +filled +0.278 0.750 0.533 nodecolor +newpath 942 684 moveto +770 684 lineto +770 648 lineto +942 648 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +778 661.9 moveto 156 (finalizeDocumentation) alignedtext +grestore +% compileDocumentation->finalizeDocumentation +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 797 720 moveto +807 711 818 701 828 691 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 830.78 693.22 moveto +836 684 lineto +826.17 687.95 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 830.78 693.22 moveto +836 684 lineto +826.17 687.95 lineto +closepath stroke +grestore +% finalizeLisplib +gsave +0.000 0.000 1.000 nodecolor +newpath 990 756 moveto +882 756 lineto +882 720 lineto +990 720 lineto +closepath fill +1 setlinewidth +filled +0.000 0.000 1.000 nodecolor +newpath 990 756 moveto +882 756 lineto +882 720 lineto +990 720 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +890 733.9 moveto 92 (finalizeLisplib) alignedtext +grestore +% finalizeLisplib->finalizeDocumentation +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 916 720 moveto +906 711 894 700 883 691 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 885.55 688.6 moveto +876 684 lineto +880.6 693.55 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 885.55 688.6 moveto +876 684 lineto +880.6 693.55 lineto +closepath stroke +grestore +% checkAddBackSlashes +gsave +0.167 0.600 1.000 nodecolor +newpath 2455 36 moveto +2289 36 lineto +2289 0 lineto +2455 0 lineto +closepath fill +1 setlinewidth +filled +0.167 0.600 1.000 nodecolor +newpath 2455 36 moveto +2289 36 lineto +2289 0 lineto +2455 0 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +2297 13.9 moveto 150 (checkAddBackSlashes) alignedtext +grestore +% checkAddMacros +gsave +0.167 0.600 1.000 nodecolor +newpath 1869 36 moveto +1741 36 lineto +1741 0 lineto +1869 0 lineto +closepath fill +1 setlinewidth +filled +0.167 0.600 1.000 nodecolor +newpath 1869 36 moveto +1741 36 lineto +1741 0 lineto +1869 0 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +1748.5 13.9 moveto 113 (checkAddMacros) alignedtext +grestore +% checkAddPeriod +gsave +0.167 0.600 1.000 nodecolor +newpath 3077 36 moveto +2953 36 lineto +2953 0 lineto +3077 0 lineto +closepath fill +1 setlinewidth +filled +0.167 0.600 1.000 nodecolor +newpath 3077 36 moveto +2953 36 lineto +2953 0 lineto +3077 0 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +2961 13.9 moveto 108 (checkAddPeriod) alignedtext +grestore +% checkAddSpaceSegments +gsave +0.167 0.600 1.000 nodecolor +newpath 3285 36 moveto +3095 36 lineto +3095 0 lineto +3285 0 lineto +closepath fill +1 setlinewidth +filled +0.167 0.600 1.000 nodecolor +newpath 3285 36 moveto +3095 36 lineto +3095 0 lineto +3285 0 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +3103 13.9 moveto 174 (checkAddSpaceSegments) alignedtext +grestore +% checkAddSpaces +gsave +0.167 0.600 1.000 nodecolor +newpath 3618 36 moveto +3490 36 lineto +3490 0 lineto +3618 0 lineto +closepath fill +1 setlinewidth +filled +0.167 0.600 1.000 nodecolor +newpath 3618 36 moveto +3490 36 lineto +3490 0 lineto +3618 0 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +3497.5 13.9 moveto 113 (checkAddSpaces) alignedtext +grestore +% checkAlphabetic +gsave +0.167 0.600 1.000 nodecolor +newpath 2599 36 moveto +2473 36 lineto +2473 0 lineto +2599 0 lineto +closepath fill +1 setlinewidth +filled +0.167 0.600 1.000 nodecolor +newpath 2599 36 moveto +2473 36 lineto +2473 0 lineto +2599 0 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +2480.5 13.9 moveto 111 (checkAlphabetic) alignedtext +grestore +% checkIeEgfun +gsave +0.167 0.600 1.000 nodecolor +newpath 2145 36 moveto +2037 36 lineto +2037 0 lineto +2145 0 lineto +closepath fill +1 setlinewidth +filled +0.167 0.600 1.000 nodecolor +newpath 2145 36 moveto +2037 36 lineto +2037 0 lineto +2145 0 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +2045 13.9 moveto 92 (checkIeEgfun) alignedtext +grestore +% checkIsValidType +gsave +0.167 0.600 1.000 nodecolor +newpath 285 36 moveto +155 36 lineto +155 0 lineto +285 0 lineto +closepath fill +1 setlinewidth +filled +0.167 0.600 1.000 nodecolor +newpath 285 36 moveto +155 36 lineto +155 0 lineto +285 0 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +162.5 13.9 moveto 115 (checkIsValidType) alignedtext +grestore +% checkLookForLeftBrace +gsave +0.167 0.600 1.000 nodecolor +newpath 1003 36 moveto +827 36 lineto +827 0 lineto +1003 0 lineto +closepath fill +1 setlinewidth +filled +0.167 0.600 1.000 nodecolor +newpath 1003 36 moveto +827 36 lineto +827 0 lineto +1003 0 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +835 13.9 moveto 160 (checkLookForLeftBrace) alignedtext +grestore +% checkLookForRightBrace +gsave +0.167 0.600 1.000 nodecolor +newpath 641 36 moveto +455 36 lineto +455 0 lineto +641 0 lineto +closepath fill +1 setlinewidth +filled +0.167 0.600 1.000 nodecolor +newpath 641 36 moveto +455 36 lineto +455 0 lineto +641 0 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +463 13.9 moveto 170 (checkLookForRightBrace) alignedtext +grestore +% checkNumOfArgs +gsave +0.167 0.600 1.000 nodecolor +newpath 437 36 moveto +303 36 lineto +303 0 lineto +437 0 lineto +closepath fill +1 setlinewidth +filled +0.167 0.600 1.000 nodecolor +newpath 437 36 moveto +303 36 lineto +303 0 lineto +437 0 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +311 13.9 moveto 118 (checkNumOfArgs) alignedtext +grestore +% checkSayBracket +gsave +0.167 0.600 1.000 nodecolor +newpath 2019 36 moveto +1887 36 lineto +1887 0 lineto +2019 0 lineto +closepath fill +1 setlinewidth +filled +0.167 0.600 1.000 nodecolor +newpath 2019 36 moveto +1887 36 lineto +1887 0 lineto +2019 0 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +1894.5 13.9 moveto 117 (checkSayBracket) alignedtext +grestore +% checkSkipBlanks +gsave +0.167 0.600 1.000 nodecolor +newpath 2747 36 moveto +2617 36 lineto +2617 0 lineto +2747 0 lineto +closepath fill +1 setlinewidth +filled +0.167 0.600 1.000 nodecolor +newpath 2747 36 moveto +2617 36 lineto +2617 0 lineto +2747 0 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +2625 13.9 moveto 114 (checkSkipBlanks) alignedtext +grestore +% checkSplitBackslash +gsave +0.167 0.600 1.000 nodecolor +newpath 1599 36 moveto +1447 36 lineto +1447 0 lineto +1599 0 lineto +closepath fill +1 setlinewidth +filled +0.167 0.600 1.000 nodecolor +newpath 1599 36 moveto +1447 36 lineto +1447 0 lineto +1599 0 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +1454.5 13.9 moveto 137 (checkSplitBackslash) alignedtext +grestore +% checkSplitOn +gsave +0.167 0.600 1.000 nodecolor +newpath 1723 36 moveto +1617 36 lineto +1617 0 lineto +1723 0 lineto +closepath fill +1 setlinewidth +filled +0.167 0.600 1.000 nodecolor +newpath 1723 36 moveto +1617 36 lineto +1617 0 lineto +1723 0 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +1625 13.9 moveto 90 (checkSplitOn) alignedtext +grestore +% checkSplitPunctuation +gsave +0.167 0.600 1.000 nodecolor +newpath 1429 36 moveto +1259 36 lineto +1259 0 lineto +1429 0 lineto +closepath fill +1 setlinewidth +filled +0.167 0.600 1.000 nodecolor +newpath 1429 36 moveto +1259 36 lineto +1259 0 lineto +1429 0 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +1267 13.9 moveto 154 (checkSplitPunctuation) alignedtext +grestore +% firstNonBlankPosition +gsave +0.167 0.600 1.000 nodecolor +newpath 3467 36 moveto +3303 36 lineto +3303 0 lineto +3467 0 lineto +closepath fill +1 setlinewidth +filled +0.167 0.600 1.000 nodecolor +newpath 3467 36 moveto +3303 36 lineto +3303 0 lineto +3467 0 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +3311 13.9 moveto 148 (firstNonBlankPosition) alignedtext +grestore +% getMatchingRightPren +gsave +0.167 0.600 1.000 nodecolor +newpath 2935 36 moveto +2765 36 lineto +2765 0 lineto +2935 0 lineto +closepath fill +1 setlinewidth +filled +0.167 0.600 1.000 nodecolor +newpath 2935 36 moveto +2765 36 lineto +2765 0 lineto +2935 0 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +2772.5 13.9 moveto 155 (getMatchingRightPren) alignedtext +grestore +% hasNoVowels +gsave +0.167 0.600 1.000 nodecolor +newpath 2271 36 moveto +2163 36 lineto +2163 0 lineto +2271 0 lineto +closepath fill +1 setlinewidth +filled +0.167 0.600 1.000 nodecolor +newpath 2271 36 moveto +2163 36 lineto +2163 0 lineto +2271 0 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +2171 13.9 moveto 92 (hasNoVowels) alignedtext +grestore +% htcharPosition +gsave +0.167 0.600 1.000 nodecolor +newpath 137 36 moveto +23 36 lineto +23 0 lineto +137 0 lineto +closepath fill +1 setlinewidth +filled +0.167 0.600 1.000 nodecolor +newpath 137 36 moveto +23 36 lineto +23 0 lineto +137 0 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +30.5 13.9 moveto 99 (htcharPosition) alignedtext +grestore +% newWordFrom +gsave +0.167 0.600 1.000 nodecolor +newpath 1241 36 moveto +1125 36 lineto +1125 0 lineto +1241 0 lineto +closepath fill +1 setlinewidth +filled +0.167 0.600 1.000 nodecolor +newpath 1241 36 moveto +1125 36 lineto +1125 0 lineto +1241 0 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +1132.5 13.9 moveto 101 (newWordFrom) alignedtext +grestore +% removeBackslashes +gsave +0.167 0.600 1.000 nodecolor +newpath 809 36 moveto +659 36 lineto +659 0 lineto +809 0 lineto +closepath fill +1 setlinewidth +filled +0.167 0.600 1.000 nodecolor +newpath 809 36 moveto +659 36 lineto +659 0 lineto +809 0 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +667 13.9 moveto 134 (removeBackslashes) alignedtext +grestore +% whoOwns +gsave +0.167 0.600 1.000 nodecolor +newpath 1107 36 moveto +1021 36 lineto +1021 0 lineto +1107 0 lineto +closepath fill +1 setlinewidth +filled +0.167 0.600 1.000 nodecolor +newpath 1107 36 moveto +1021 36 lineto +1021 0 lineto +1107 0 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +1029 13.9 moveto 70 (whoOwns) alignedtext +grestore +% checkAddIndented +gsave +0.333 0.857 0.933 nodecolor +newpath 3056 108 moveto +2914 108 lineto +2914 72 lineto +3056 72 lineto +closepath fill +1 setlinewidth +filled +0.333 0.857 0.933 nodecolor +newpath 3056 108 moveto +2914 108 lineto +2914 72 lineto +3056 72 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +2921.5 85.9 moveto 127 (checkAddIndented) alignedtext +grestore +% checkAddIndented->checkAddSpaceSegments +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 3036 72 moveto +3064 62 3099 50 3129 39 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 3130.43 42.23 moveto +3139 36 lineto +3128.42 35.52 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 3130.43 42.23 moveto +3139 36 lineto +3128.42 35.52 lineto +closepath stroke +grestore +% checkAddIndented->firstNonBlankPosition +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 3056 74 moveto +3059 73 3062 72 3065 72 curveto +3163 53 3190 53 3293 36 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 3293.88 39.39 moveto +3303 34 lineto +3292.51 32.53 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 3293.88 39.39 moveto +3303 34 lineto +3292.51 32.53 lineto +closepath stroke +grestore +% checkDocMessage +gsave +0.333 0.857 0.933 nodecolor +newpath 1217 108 moveto +1077 108 lineto +1077 72 lineto +1217 72 lineto +closepath fill +1 setlinewidth +filled +0.333 0.857 0.933 nodecolor +newpath 1217 108 moveto +1077 108 lineto +1077 72 lineto +1217 72 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +1085 85.9 moveto 124 (checkDocMessage) alignedtext +grestore +% checkDocMessage->whoOwns +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 1126 72 moveto +1116 63 1103 52 1092 43 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 1093.83 39.95 moveto +1084 36 lineto +1089.22 45.22 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 1093.83 39.95 moveto +1084 36 lineto +1089.22 45.22 lineto +closepath stroke +grestore +% checkExtract +gsave +0.333 0.857 0.933 nodecolor +newpath 3532 108 moveto +3428 108 lineto +3428 72 lineto +3532 72 lineto +closepath fill +1 setlinewidth +filled +0.333 0.857 0.933 nodecolor +newpath 3532 108 moveto +3428 108 lineto +3428 72 lineto +3532 72 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +3435.5 85.9 moveto 89 (checkExtract) alignedtext +grestore +% checkExtract->firstNonBlankPosition +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 3456 72 moveto +3445 63 3430 52 3417 42 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 3419.1 39.2 moveto +3409 36 lineto +3414.9 44.8 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 3419.1 39.2 moveto +3409 36 lineto +3414.9 44.8 lineto +closepath stroke +grestore +% checkGetArgs +gsave +0.333 0.857 0.933 nodecolor +newpath 2858 108 moveto +2748 108 lineto +2748 72 lineto +2858 72 lineto +closepath fill +1 setlinewidth +filled +0.333 0.857 0.933 nodecolor +newpath 2858 108 moveto +2748 108 lineto +2748 72 lineto +2858 72 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +2755.5 85.9 moveto 95 (checkGetArgs) alignedtext +grestore +% checkGetArgs->firstNonBlankPosition +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 2858 79 moveto +2873 77 2890 74 2905 72 curveto +3074 48 3120 60 3293 36 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 3293.4 39.48 moveto +3303 35 lineto +3292.7 32.51 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 3293.4 39.48 moveto +3303 35 lineto +3292.7 32.51 lineto +closepath stroke +grestore +% checkGetArgs->getMatchingRightPren +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 2815 72 moveto +2820 64 2827 54 2833 44 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 2835.67 46.34 moveto +2838 36 lineto +2829.73 42.62 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 2835.67 46.34 moveto +2838 36 lineto +2829.73 42.62 lineto +closepath stroke +grestore +% checkGetMargin +gsave +0.333 0.857 0.933 nodecolor +newpath 3372 108 moveto +3244 108 lineto +3244 72 lineto +3372 72 lineto +closepath fill +1 setlinewidth +filled +0.333 0.857 0.933 nodecolor +newpath 3372 108 moveto +3244 108 lineto +3244 72 lineto +3372 72 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +3252 85.9 moveto 112 (checkGetMargin) alignedtext +grestore +% checkGetMargin->firstNonBlankPosition +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 3327 72 moveto +3337 63 3348 53 3358 43 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 3360.78 45.22 moveto +3366 36 lineto +3356.17 39.95 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 3360.78 45.22 moveto +3366 36 lineto +3356.17 39.95 lineto +closepath stroke +grestore +% checkGetParse +gsave +0.333 0.857 0.933 nodecolor +newpath 706 108 moveto +588 108 lineto +588 72 lineto +706 72 lineto +closepath fill +1 setlinewidth +filled +0.333 0.857 0.933 nodecolor +newpath 706 108 moveto +588 108 lineto +588 72 lineto +706 72 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +596 85.9 moveto 102 (checkGetParse) alignedtext +grestore +% checkGetParse->removeBackslashes +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 669 72 moveto +680 63 693 52 704 42 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 706.1 44.8 moveto +712 36 lineto +701.9 39.2 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 706.1 44.8 moveto +712 36 lineto +701.9 39.2 lineto +closepath stroke +grestore +% checkGetStringBeforeRightBrace +gsave +0.333 0.857 0.933 nodecolor +newpath 532 108 moveto +290 108 lineto +290 72 lineto +532 72 lineto +closepath fill +1 setlinewidth +filled +0.333 0.857 0.933 nodecolor +newpath 532 108 moveto +290 108 lineto +290 72 lineto +532 72 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +297.5 85.9 moveto 227 (checkGetStringBeforeRightBrace) alignedtext +grestore +% checkIeEg +gsave +0.333 0.857 0.933 nodecolor +newpath 2212 108 moveto +2128 108 lineto +2128 72 lineto +2212 72 lineto +closepath fill +1 setlinewidth +filled +0.333 0.857 0.933 nodecolor +newpath 2212 108 moveto +2128 108 lineto +2128 72 lineto +2212 72 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +2135.5 85.9 moveto 69 (checkIeEg) alignedtext +grestore +% checkIeEg->checkIeEgfun +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 2150 72 moveto +2140 63 2129 53 2119 43 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 2120.83 39.95 moveto +2111 36 lineto +2116.22 45.22 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 2120.83 39.95 moveto +2111 36 lineto +2116.22 45.22 lineto +closepath stroke +grestore +% checkIndentedLines +gsave +0.333 0.857 0.933 nodecolor +newpath 3226 108 moveto +3074 108 lineto +3074 72 lineto +3226 72 lineto +closepath fill +1 setlinewidth +filled +0.333 0.857 0.933 nodecolor +newpath 3226 108 moveto +3074 108 lineto +3074 72 lineto +3226 72 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +3081.5 85.9 moveto 137 (checkIndentedLines) alignedtext +grestore +% checkIndentedLines->checkAddSpaceSegments +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 3160 72 moveto +3164 64 3170 54 3175 45 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 3178.2 46.44 moveto +3180 36 lineto +3172.08 43.04 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 3178.2 46.44 moveto +3180 36 lineto +3172.08 43.04 lineto +closepath stroke +grestore +% checkIndentedLines->firstNonBlankPosition +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 3209 72 moveto +3242 62 3283 49 3317 39 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 3318.43 42.23 moveto +3327 36 lineto +3316.42 35.52 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 3318.43 42.23 moveto +3327 36 lineto +3316.42 35.52 lineto +closepath stroke +grestore +% checkSkipIdentifierToken +gsave +0.333 0.857 0.933 nodecolor +newpath 2654 108 moveto +2468 108 lineto +2468 72 lineto +2654 72 lineto +closepath fill +1 setlinewidth +filled +0.333 0.857 0.933 nodecolor +newpath 2654 108 moveto +2468 108 lineto +2468 72 lineto +2654 72 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +2476 85.9 moveto 170 (checkSkipIdentifierToken) alignedtext +grestore +% checkSkipIdentifierToken->checkAlphabetic +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 2555 72 moveto +2552 64 2549 54 2545 46 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 2548.23 44.57 moveto +2542 36 lineto +2541.52 46.58 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 2548.23 44.57 moveto +2542 36 lineto +2541.52 46.58 lineto +closepath stroke +grestore +% checkSkipOpToken +gsave +0.333 0.857 0.933 nodecolor +newpath 2450 108 moveto +2306 108 lineto +2306 72 lineto +2450 72 lineto +closepath fill +1 setlinewidth +filled +0.333 0.857 0.933 nodecolor +newpath 2450 108 moveto +2306 108 lineto +2306 72 lineto +2450 72 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +2314 85.9 moveto 128 (checkSkipOpToken) alignedtext +grestore +% checkSkipOpToken->checkAlphabetic +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 2418 72 moveto +2439 62 2465 50 2488 40 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 2489.28 43.26 moveto +2497 36 lineto +2486.44 36.86 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 2489.28 43.26 moveto +2497 36 lineto +2486.44 36.86 lineto +closepath stroke +grestore +% checkSplitBrace +gsave +0.333 0.857 0.933 nodecolor +newpath 1732 108 moveto +1608 108 lineto +1608 72 lineto +1732 72 lineto +closepath fill +1 setlinewidth +filled +0.333 0.857 0.933 nodecolor +newpath 1732 108 moveto +1608 108 lineto +1608 72 lineto +1732 72 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +1615.5 85.9 moveto 109 (checkSplitBrace) alignedtext +grestore +% checkSplitBrace->checkSplitBackslash +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 1633 72 moveto +1613 62 1589 51 1568 40 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 1569.56 36.86 moveto +1559 36 lineto +1566.72 43.26 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 1569.56 36.86 moveto +1559 36 lineto +1566.72 43.26 lineto +closepath stroke +grestore +% checkSplitBrace->checkSplitOn +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 1670 72 moveto +1670 64 1670 55 1670 46 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 1673.5 46 moveto +1670 36 lineto +1666.5 46 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 1673.5 46 moveto +1670 36 lineto +1666.5 46 lineto +closepath stroke +grestore +% checkSplitBrace->checkSplitPunctuation +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 1608 74 moveto +1605 73 1602 73 1599 72 curveto +1547 60 1487 47 1439 37 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 1439.49 33.53 moveto +1429 35 lineto +1438.12 40.39 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 1439.49 33.53 moveto +1429 35 lineto +1438.12 40.39 lineto +closepath stroke +grestore +% checkTrimCommented +gsave +0.333 0.857 0.933 nodecolor +newpath 170 108 moveto +2 108 lineto +2 72 lineto +170 72 lineto +closepath fill +1 setlinewidth +filled +0.333 0.857 0.933 nodecolor +newpath 170 108 moveto +2 108 lineto +2 72 lineto +170 72 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +10 85.9 moveto 152 (checkTrimCommented) alignedtext +grestore +% checkTrimCommented->htcharPosition +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 84 72 moveto +83 64 83 55 82 46 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 85.5 46 moveto +82 36 lineto +78.5 46 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 85.5 46 moveto +82 36 lineto +78.5 46 lineto +closepath stroke +grestore +% newString2Words +gsave +0.333 0.857 0.933 nodecolor +newpath 1590 108 moveto +1450 108 lineto +1450 72 lineto +1590 72 lineto +closepath fill +1 setlinewidth +filled +0.333 0.857 0.933 nodecolor +newpath 1590 108 moveto +1450 108 lineto +1450 72 lineto +1590 72 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +1457.5 85.9 moveto 125 (newString2Words) alignedtext +grestore +% newString2Words->newWordFrom +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 1450 77 moveto +1397 67 1324 52 1251 36 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 1251.49 32.53 moveto +1241 34 lineto +1250.12 39.39 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 1251.49 32.53 moveto +1241 34 lineto +1250.12 39.39 lineto +closepath stroke +grestore +% checkDocError +gsave +0.667 0.846 0.867 nodecolor +newpath 1259 180 moveto +1143 180 lineto +1143 144 lineto +1259 144 lineto +closepath fill +1 setlinewidth +filled +0.667 0.846 0.867 nodecolor +newpath 1259 180 moveto +1143 180 lineto +1143 144 lineto +1259 144 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +1150.5 157.9 moveto 101 (checkDocError) alignedtext +grestore +% checkDocError->checkDocMessage +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 1187 144 moveto +1181 136 1173 125 1166 116 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 1168.8 113.9 moveto +1160 108 lineto +1163.2 118.1 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 1168.8 113.9 moveto +1160 108 lineto +1163.2 118.1 lineto +closepath stroke +grestore +% checkRemoveComments +gsave +0.667 0.846 0.867 nodecolor +newpath 182 180 moveto +0 180 lineto +0 144 lineto +182 144 lineto +closepath fill +1 setlinewidth +filled +0.667 0.846 0.867 nodecolor +newpath 182 180 moveto +0 180 lineto +0 144 lineto +182 144 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +7.5 157.9 moveto 167 (checkRemoveComments) alignedtext +grestore +% checkRemoveComments->checkTrimCommented +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 90 144 moveto +89 136 89 127 88 118 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 91.48 117.6 moveto +87 108 lineto +84.51 118.3 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 91.48 117.6 moveto +87 108 lineto +84.51 118.3 lineto +closepath stroke +grestore +% checkSkipToken +gsave +0.667 0.846 0.867 nodecolor +newpath 2566 180 moveto +2442 180 lineto +2442 144 lineto +2566 144 lineto +closepath fill +1 setlinewidth +filled +0.667 0.846 0.867 nodecolor +newpath 2566 180 moveto +2442 180 lineto +2442 144 lineto +2566 144 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +2450 157.9 moveto 108 (checkSkipToken) alignedtext +grestore +% checkSkipToken->checkSkipIdentifierToken +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 2518 144 moveto +2525 135 2533 125 2541 116 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 2543.8 118.1 moveto +2547 108 lineto +2538.2 113.9 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 2543.8 118.1 moveto +2547 108 lineto +2538.2 113.9 lineto +closepath stroke +grestore +% checkSkipToken->checkSkipOpToken +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 2472 144 moveto +2456 135 2436 123 2418 113 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 2419.44 109.8 moveto +2409 108 lineto +2416.04 115.92 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 2419.44 109.8 moveto +2409 108 lineto +2416.04 115.92 lineto +closepath stroke +grestore +% checkSplit2Words +gsave +0.667 0.846 0.867 nodecolor +newpath 1957 180 moveto +1819 180 lineto +1819 144 lineto +1957 144 lineto +closepath fill +1 setlinewidth +filled +0.667 0.846 0.867 nodecolor +newpath 1957 180 moveto +1819 180 lineto +1819 144 lineto +1957 144 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +1827 157.9 moveto 122 (checkSplit2Words) alignedtext +grestore +% checkSplit2Words->checkSplitBrace +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 1833 144 moveto +1803 134 1766 122 1734 111 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 1734.58 107.52 moveto +1724 108 lineto +1732.57 114.23 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 1734.58 107.52 moveto +1724 108 lineto +1732.57 114.23 lineto +closepath stroke +grestore +% checkBeginEnd +gsave +0.067 1.000 1.000 nodecolor +newpath 2074 252 moveto +1954 252 lineto +1954 216 lineto +2074 216 lineto +closepath fill +1 setlinewidth +filled +0.067 1.000 1.000 nodecolor +newpath 2074 252 moveto +1954 252 lineto +1954 216 lineto +2074 216 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +1962 229.9 moveto 104 (checkBeginEnd) alignedtext +grestore +% checkBeginEnd->checkDocError +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 1954 226 moveto +1926 223 1893 219 1864 216 curveto +1646 194 1389 175 1269 167 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 1269.3 163.51 moveto +1259 166 lineto +1268.6 170.48 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 1269.3 163.51 moveto +1259 166 lineto +1268.6 170.48 lineto +closepath stroke +grestore +% checkDecorate +gsave +0.067 1.000 1.000 nodecolor +newpath 2377 252 moveto +2259 252 lineto +2259 216 lineto +2377 216 lineto +closepath fill +1 setlinewidth +filled +0.067 1.000 1.000 nodecolor +newpath 2377 252 moveto +2259 252 lineto +2259 216 lineto +2377 216 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +2267 229.9 moveto 102 (checkDecorate) alignedtext +grestore +% checkDecorate->checkAddBackSlashes +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 2309 216 moveto +2295 184 2272 119 2297 72 curveto +2303 60 2313 50 2324 42 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 2326.62 44.46 moveto +2333 36 lineto +2322.74 38.63 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 2326.62 44.46 moveto +2333 36 lineto +2322.74 38.63 lineto +closepath stroke +grestore +% checkDecorate->hasNoVowels +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 2305 216 moveto +2297 206 2288 192 2282 180 curveto +2258 135 2237 79 2226 46 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 2229.23 44.57 moveto +2223 36 lineto +2222.52 46.58 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 2229.23 44.57 moveto +2223 36 lineto +2222.52 46.58 lineto +closepath stroke +grestore +% checkDecorate->checkDocError +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 2259 229 moveto +2211 225 2143 220 2083 216 curveto +1779 195 1417 174 1269 166 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 1269.3 162.51 moveto +1259 165 lineto +1268.6 169.48 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 1269.3 162.51 moveto +1259 165 lineto +1268.6 169.48 lineto +closepath stroke +grestore +% checkDecorateForHt +gsave +0.067 1.000 1.000 nodecolor +newpath 1350 252 moveto +1194 252 lineto +1194 216 lineto +1350 216 lineto +closepath fill +1 setlinewidth +filled +0.067 1.000 1.000 nodecolor +newpath 1350 252 moveto +1194 252 lineto +1194 216 lineto +1350 216 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +1202 229.9 moveto 140 (checkDecorateForHt) alignedtext +grestore +% checkDecorateForHt->checkDocError +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 1254 216 moveto +1245 207 1235 197 1226 188 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 1228.22 185.22 moveto +1219 180 lineto +1222.95 189.83 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 1228.22 185.22 moveto +1219 180 lineto +1222.95 189.83 lineto +closepath stroke +grestore +% checkDocError1 +gsave +0.067 1.000 1.000 nodecolor +newpath 964 252 moveto +838 252 lineto +838 216 lineto +964 216 lineto +closepath fill +1 setlinewidth +filled +0.067 1.000 1.000 nodecolor +newpath 964 252 moveto +838 252 lineto +838 216 lineto +964 216 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +846 229.9 moveto 110 (checkDocError1) alignedtext +grestore +% checkDocError1->checkDocError +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 964 218 moveto +967 217 970 217 973 216 curveto +1027 203 1088 188 1133 177 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 1133.88 180.39 moveto +1143 175 lineto +1132.51 173.53 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 1133.88 180.39 moveto +1143 175 lineto +1132.51 173.53 lineto +closepath stroke +grestore +% checkFixCommonProblem +gsave +0.067 1.000 1.000 nodecolor +newpath 1784 252 moveto +1592 252 lineto +1592 216 lineto +1784 216 lineto +closepath fill +1 setlinewidth +filled +0.067 1.000 1.000 nodecolor +newpath 1784 252 moveto +1592 252 lineto +1592 216 lineto +1784 216 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +1600 229.9 moveto 176 (checkFixCommonProblem) alignedtext +grestore +% checkFixCommonProblem->checkDocError +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 1592 217 moveto +1589 217 1586 216 1583 216 curveto +1473 199 1345 182 1269 171 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 1269.3 167.51 moveto +1259 170 lineto +1268.6 174.48 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 1269.3 167.51 moveto +1259 170 lineto +1268.6 174.48 lineto +closepath stroke +grestore +% checkGetLispFunctionName +gsave +0.067 1.000 1.000 nodecolor +newpath 1574 252 moveto +1368 252 lineto +1368 216 lineto +1574 216 lineto +closepath fill +1 setlinewidth +filled +0.067 1.000 1.000 nodecolor +newpath 1574 252 moveto +1368 252 lineto +1368 216 lineto +1574 216 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +1375.5 229.9 moveto 191 (checkGetLispFunctionName) alignedtext +grestore +% checkGetLispFunctionName->checkDocError +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 1403 216 moveto +1362 205 1310 191 1269 181 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 1269.58 177.52 moveto +1259 178 lineto +1267.57 184.23 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 1269.58 177.52 moveto +1259 178 lineto +1267.57 184.23 lineto +closepath stroke +grestore +% checkHTargs +gsave +0.067 1.000 1.000 nodecolor +newpath 782 252 moveto +680 252 lineto +680 216 lineto +782 216 lineto +closepath fill +1 setlinewidth +filled +0.067 1.000 1.000 nodecolor +newpath 782 252 moveto +680 252 lineto +680 216 lineto +782 216 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +688 229.9 moveto 86 (checkHTargs) alignedtext +grestore +% checkHTargs->checkLookForLeftBrace +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 746 216 moveto +779 177 855 88 893 44 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 896.05 45.83 moveto +900 36 lineto +890.78 41.22 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 896.05 45.83 moveto +900 36 lineto +890.78 41.22 lineto +closepath stroke +grestore +% checkHTargs->checkLookForRightBrace +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 735 216 moveto +741 183 749 114 715 72 curveto +705 59 675 47 643 39 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 643.58 35.52 moveto +633 36 lineto +641.57 42.23 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 643.58 35.52 moveto +633 36 lineto +641.57 42.23 lineto +closepath stroke +grestore +% checkHTargs->checkDocError +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 782 219 moveto +787 218 791 217 796 216 curveto +913 192 1051 176 1133 168 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 1133.4 171.48 moveto +1143 167 lineto +1132.7 164.51 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 1133.4 171.48 moveto +1143 167 lineto +1132.7 164.51 lineto +closepath stroke +grestore +% checkRecordHash +gsave +0.067 1.000 1.000 nodecolor +newpath 662 252 moveto +526 252 lineto +526 216 lineto +662 216 lineto +closepath fill +1 setlinewidth +filled +0.067 1.000 1.000 nodecolor +newpath 662 252 moveto +526 252 lineto +526 216 lineto +662 216 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +534 229.9 moveto 120 (checkRecordHash) alignedtext +grestore +% checkRecordHash->checkIsValidType +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 526 219 moveto +521 218 516 217 512 216 curveto +430 199 399 223 327 180 curveto +277 148 245 83 230 46 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 232.96 43.98 moveto +226 36 lineto +226.46 46.58 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 232.96 43.98 moveto +226 36 lineto +226.46 46.58 lineto +closepath stroke +grestore +% checkRecordHash->checkLookForLeftBrace +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 621 216 moveto +678 177 815 85 880 42 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 882.1 44.8 moveto +888 36 lineto +877.9 39.2 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 882.1 44.8 moveto +888 36 lineto +877.9 39.2 lineto +closepath stroke +grestore +% checkRecordHash->checkLookForRightBrace +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 526 216 moveto +443 193 309 150 281 108 curveto +273 94 271 84 281 72 curveto +284 68 371 52 445 37 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 445.88 40.39 moveto +455 35 lineto +444.51 33.53 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 445.88 40.39 moveto +455 35 lineto +444.51 33.53 lineto +closepath stroke +grestore +% checkRecordHash->checkNumOfArgs +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 593 216 moveto +591 183 581 112 541 72 curveto +534 65 489 50 447 39 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 447.58 35.52 moveto +437 36 lineto +445.57 42.23 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 447.58 35.52 moveto +437 36 lineto +445.57 42.23 lineto +closepath stroke +grestore +% checkRecordHash->checkGetParse +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 601 216 moveto +610 191 626 147 637 118 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 640.48 118.58 moveto +640 108 lineto +633.77 116.57 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 640.48 118.58 moveto +640 108 lineto +633.77 116.57 lineto +closepath stroke +grestore +% checkRecordHash->checkGetStringBeforeRightBrace +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 571 216 moveto +538 190 478 143 442 114 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 444.1 111.2 moveto +434 108 lineto +439.9 116.8 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 444.1 111.2 moveto +434 108 lineto +439.9 116.8 lineto +closepath stroke +grestore +% checkRecordHash->checkDocError +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 662 217 moveto +665 217 668 216 671 216 curveto +835 188 1031 173 1133 166 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 1133.4 169.48 moveto +1143 165 lineto +1132.7 162.51 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 1133.4 169.48 moveto +1143 165 lineto +1132.7 162.51 lineto +closepath stroke +grestore +% checkRecordHash->checkGetLispFunctionName +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 630 252 moveto +645 259 663 266 680 270 curveto +753 284 1276 280 1350 270 curveto +1371 267 1392 261 1411 255 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 1412.43 258.23 moveto +1421 252 lineto +1410.42 251.52 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 1412.43 258.23 moveto +1421 252 lineto +1410.42 251.52 lineto +closepath stroke +grestore +% checkTexht +gsave +0.067 1.000 1.000 nodecolor +newpath 1176 252 moveto +1084 252 lineto +1084 216 lineto +1176 216 lineto +closepath fill +1 setlinewidth +filled +0.067 1.000 1.000 nodecolor +newpath 1176 252 moveto +1084 252 lineto +1084 216 lineto +1176 216 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +1091.5 229.9 moveto 77 (checkTexht) alignedtext +grestore +% checkTexht->checkDocError +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 1148 216 moveto +1157 207 1167 197 1176 188 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 1179.05 189.83 moveto +1183 180 lineto +1173.78 185.22 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 1179.05 189.83 moveto +1183 180 lineto +1173.78 185.22 lineto +closepath stroke +grestore +% checkTransformFirsts +gsave +0.067 1.000 1.000 nodecolor +newpath 2584 252 moveto +2424 252 lineto +2424 216 lineto +2584 216 lineto +closepath fill +1 setlinewidth +filled +0.067 1.000 1.000 nodecolor +newpath 2584 252 moveto +2424 252 lineto +2424 216 lineto +2584 216 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +2432 229.9 moveto 144 (checkTransformFirsts) alignedtext +grestore +% checkTransformFirsts->checkSkipBlanks +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 2539 216 moveto +2576 195 2633 157 2663 108 curveto +2674 90 2678 65 2681 46 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 2684.49 46.3 moveto +2682 36 lineto +2677.52 45.6 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 2684.49 46.3 moveto +2682 36 lineto +2677.52 45.6 lineto +closepath stroke +grestore +% checkTransformFirsts->getMatchingRightPren +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 2554 216 moveto +2577 207 2604 194 2626 180 curveto +2683 141 2681 111 2739 72 curveto +2756 60 2777 49 2795 40 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 2796.28 43.26 moveto +2804 36 lineto +2793.44 36.86 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 2796.28 43.26 moveto +2804 36 lineto +2793.44 36.86 lineto +closepath stroke +grestore +% checkTransformFirsts->checkDocError +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 2424 221 moveto +2411 219 2398 217 2386 216 curveto +2166 194 1488 171 1269 164 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 1269 160.5 moveto +1259 164 lineto +1269 167.5 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 1269 160.5 moveto +1259 164 lineto +1269 167.5 lineto +closepath stroke +grestore +% checkTransformFirsts->checkSkipToken +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 2504 216 moveto +2504 208 2504 199 2504 190 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 2507.5 190 moveto +2504 180 lineto +2500.5 190 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 2507.5 190 moveto +2504 180 lineto +2500.5 190 lineto +closepath stroke +grestore +% checkTrim +gsave +0.067 1.000 1.000 nodecolor +newpath 1066 252 moveto +982 252 lineto +982 216 lineto +1066 216 lineto +closepath fill +1 setlinewidth +filled +0.067 1.000 1.000 nodecolor +newpath 1066 252 moveto +982 252 lineto +982 216 lineto +1066 216 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +990 229.9 moveto 68 (checkTrim) alignedtext +grestore +% checkTrim->checkDocError +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 1066 217 moveto +1090 207 1121 194 1147 184 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 1148.28 187.26 moveto +1156 180 lineto +1145.44 180.86 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 1148.28 187.26 moveto +1156 180 lineto +1145.44 180.86 lineto +closepath stroke +grestore +% checkArguments +gsave +0.600 1.000 1.000 nodecolor +newpath 1670 324 moveto +1540 324 lineto +1540 288 lineto +1670 288 lineto +closepath fill +1 setlinewidth +filled +0.600 1.000 1.000 nodecolor +newpath 1670 324 moveto +1540 324 lineto +1540 288 lineto +1670 288 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +1547.5 301.9 moveto 115 (checkArguments) alignedtext +grestore +% checkArguments->checkHTargs +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 1540 304 moveto +1406 299 1091 285 829 252 curveto +817 250 804 248 792 246 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 792.49 242.53 moveto +782 244 lineto +791.12 249.39 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 792.49 242.53 moveto +782 244 lineto +791.12 249.39 lineto +closepath stroke +grestore +% checkBalance +gsave +0.600 1.000 1.000 nodecolor +newpath 2100 324 moveto +1992 324 lineto +1992 288 lineto +2100 288 lineto +closepath fill +1 setlinewidth +filled +0.600 1.000 1.000 nodecolor +newpath 2100 324 moveto +1992 324 lineto +1992 288 lineto +2100 288 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +1999.5 301.9 moveto 93 (checkBalance) alignedtext +grestore +% checkBalance->checkSayBracket +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 2062 288 moveto +2070 278 2079 265 2083 252 curveto +2087 236 2087 231 2083 216 curveto +2063 146 2009 79 1978 44 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 1980.22 41.22 moveto +1971 36 lineto +1974.95 45.83 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 1980.22 41.22 moveto +1971 36 lineto +1974.95 45.83 lineto +closepath stroke +grestore +% checkBalance->checkDocError +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 2006 288 moveto +1956 267 1870 233 1793 216 curveto +1694 194 1402 174 1269 166 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 1269.3 162.51 moveto +1259 165 lineto +1268.6 169.48 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 1269.3 162.51 moveto +1259 165 lineto +1268.6 169.48 lineto +closepath stroke +grestore +% checkBalance->checkBeginEnd +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 2038 288 moveto +2034 280 2030 270 2026 261 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 2029.26 259.72 moveto +2022 252 lineto +2022.86 262.56 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 2029.26 259.72 moveto +2022 252 lineto +2022.86 262.56 lineto +closepath stroke +grestore +% checkComments +gsave +0.333 1.000 0.400 nodecolor +newpath 2363 396 moveto +2235 396 lineto +2235 360 lineto +2363 360 lineto +closepath fill +1 setlinewidth +filled +0.333 1.000 0.400 nodecolor +newpath 2363 396 moveto +2235 396 lineto +2235 360 lineto +2363 360 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +2242.5 373.9 moveto 113 (checkComments) alignedtext +grestore +% checkComments->checkAddPeriod +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 2363 376 moveto +2503 371 2825 355 2862 324 curveto +2893 297 2886 275 2886 234 curveto +2886 234 2886 234 2886 162 curveto +2886 121 2879 104 2905 72 curveto +2915 59 2930 48 2945 40 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 2946.28 43.26 moveto +2954 36 lineto +2943.44 36.86 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 2946.28 43.26 moveto +2954 36 lineto +2943.44 36.86 lineto +closepath stroke +grestore +% checkComments->checkAddSpaces +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 2363 375 moveto +2510 369 2869 351 2987 324 curveto +3244 265 3376 314 3541 108 curveto +3555 90 3557 65 3557 46 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 3560.48 45.6 moveto +3556 36 lineto +3553.51 46.3 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 3560.48 45.6 moveto +3556 36 lineto +3553.51 46.3 lineto +closepath stroke +grestore +% checkComments->checkGetArgs +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 2363 369 moveto +2444 354 2586 321 2687 252 curveto +2737 217 2773 154 2791 117 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 2794.14 118.56 moveto +2795 108 lineto +2787.74 115.72 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 2794.14 118.56 moveto +2795 108 lineto +2787.74 115.72 lineto +closepath stroke +grestore +% checkComments->checkGetMargin +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 2363 376 moveto +2503 372 2832 359 2937 324 curveto +3077 276 3221 165 3279 115 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 3281.78 117.22 moveto +3287 108 lineto +3277.17 111.95 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 3281.78 117.22 moveto +3287 108 lineto +3277.17 111.95 lineto +closepath stroke +grestore +% checkComments->checkIeEg +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 2291 360 moveto +2269 311 2208 176 2182 117 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 2185.26 115.72 moveto +2178 108 lineto +2178.86 118.56 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 2185.26 115.72 moveto +2178 108 lineto +2178.86 118.56 lineto +closepath stroke +grestore +% checkComments->checkIndentedLines +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 2363 375 moveto +2508 366 2851 345 2900 324 curveto +3005 277 3094 167 3131 116 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 3133.8 118.1 moveto +3137 108 lineto +3128.2 113.9 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 3133.8 118.1 moveto +3137 108 lineto +3128.2 113.9 lineto +closepath stroke +grestore +% checkComments->newString2Words +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 2269 360 moveto +2252 350 2231 336 2213 324 curveto +2168 293 2155 287 2116 252 curveto +2099 237 2102 226 2083 216 curveto +1974 159 1928 212 1810 180 curveto +1770 169 1764 157 1726 144 curveto +1703 136 1647 121 1600 109 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 1600.49 105.53 moveto +1590 107 lineto +1599.12 112.39 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 1600.49 105.53 moveto +1590 107 lineto +1599.12 112.39 lineto +closepath stroke +grestore +% checkComments->checkSplit2Words +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 2284 360 moveto +2255 326 2188 254 2116 216 curveto +2070 192 2013 179 1967 171 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 1967.49 167.53 moveto +1957 169 lineto +1966.12 174.39 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 1967.49 167.53 moveto +1957 169 lineto +1966.12 174.39 lineto +closepath stroke +grestore +% checkComments->checkDecorate +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 2301 360 moveto +2305 335 2311 291 2315 262 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 2318.49 262.3 moveto +2316 252 lineto +2311.52 261.6 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 2318.49 262.3 moveto +2316 252 lineto +2311.52 261.6 lineto +closepath stroke +grestore +% checkComments->checkFixCommonProblem +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 2235 369 moveto +2170 360 2069 344 1983 324 curveto +1901 304 1808 275 1750 255 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 1750.58 251.52 moveto +1740 252 lineto +1748.57 258.23 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 1750.58 251.52 moveto +1740 252 lineto +1748.57 258.23 lineto +closepath stroke +grestore +% checkComments->checkTransformFirsts +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 2325 360 moveto +2361 334 2429 287 2470 258 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 2472.1 260.8 moveto +2478 252 lineto +2467.9 255.2 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 2472.1 260.8 moveto +2478 252 lineto +2467.9 255.2 lineto +closepath stroke +grestore +% checkComments->checkArguments +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 2235 371 moveto +2106 358 1818 329 1680 314 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 1680.3 310.51 moveto +1670 313 lineto +1679.6 317.48 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 1680.3 310.51 moveto +1670 313 lineto +1679.6 317.48 lineto +closepath stroke +grestore +% checkComments->checkBalance +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 2235 360 moveto +2197 349 2149 335 2110 325 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 2110.58 321.52 moveto +2100 322 lineto +2108.57 328.23 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 2110.58 321.52 moveto +2100 322 lineto +2108.57 328.23 lineto +closepath stroke +grestore +% checkRewrite +gsave +0.333 1.000 0.400 nodecolor +newpath 1847 396 moveto +1739 396 lineto +1739 360 lineto +1847 360 lineto +closepath fill +1 setlinewidth +filled +0.333 1.000 0.400 nodecolor +newpath 1847 396 moveto +1739 396 lineto +1739 360 lineto +1847 360 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +1746.5 373.9 moveto 93 (checkRewrite) alignedtext +grestore +% checkRewrite->checkAddMacros +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 1812 360 moveto +1853 319 1950 222 1966 180 curveto +1988 118 1913 68 1858 40 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 1859.56 36.86 moveto +1849 36 lineto +1856.72 43.26 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 1859.56 36.86 moveto +1849 36 lineto +1856.72 43.26 lineto +closepath stroke +grestore +% checkRewrite->checkAddSpaces +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 1847 376 moveto +1957 371 2211 357 2424 324 curveto +2854 257 2996 313 3381 108 curveto +3401 97 3399 84 3419 72 curveto +3439 59 3463 48 3486 40 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 3487.28 43.26 moveto +3495 36 lineto +3484.44 36.86 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 3487.28 43.26 moveto +3495 36 lineto +3484.44 36.86 lineto +closepath stroke +grestore +% checkRewrite->checkAddIndented +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 1847 376 moveto +1983 371 2346 347 2630 252 curveto +2727 219 2740 185 2834 144 curveto +2861 132 2892 121 2919 111 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 2919.62 114.48 moveto +2928 108 lineto +2917.41 107.84 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 2919.62 114.48 moveto +2928 108 lineto +2917.41 107.84 lineto +closepath stroke +grestore +% checkRewrite->checkGetArgs +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 1847 371 moveto +1910 362 2018 345 2109 324 curveto +2162 311 2173 298 2228 288 curveto +2387 256 2441 312 2593 252 curveto +2633 236 2727 156 2774 115 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 2776.78 117.22 moveto +2782 108 lineto +2772.17 111.95 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 2776.78 117.22 moveto +2782 108 lineto +2772.17 111.95 lineto +closepath stroke +grestore +% checkRewrite->newString2Words +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 1799 360 moveto +1808 328 1821 260 1793 216 curveto +1769 179 1659 136 1587 111 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 1587.58 107.52 moveto +1577 108 lineto +1585.57 114.23 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 1587.58 107.52 moveto +1577 108 lineto +1585.57 114.23 lineto +closepath stroke +grestore +% checkRewrite->checkRemoveComments +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 1739 376 moveto +1610 370 1273 354 993 324 curveto +781 300 728 290 517 252 curveto +400 231 266 201 180 182 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 180.49 178.53 moveto +170 180 lineto +179.12 185.39 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 180.49 178.53 moveto +170 180 lineto +179.12 185.39 lineto +closepath stroke +grestore +% checkRewrite->checkSplit2Words +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 1805 360 moveto +1812 350 1820 336 1826 324 curveto +1849 278 1868 223 1879 190 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 1882.48 190.58 moveto +1882 180 lineto +1875.77 188.57 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 1882.48 190.58 moveto +1882 180 lineto +1875.77 188.57 lineto +closepath stroke +grestore +% checkRewrite->checkDecorateForHt +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 1778 360 moveto +1756 335 1720 292 1712 288 curveto +1644 253 1451 263 1360 251 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 1360.3 247.51 moveto +1350 250 lineto +1359.6 254.48 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 1360.3 247.51 moveto +1350 250 lineto +1359.6 254.48 lineto +closepath stroke +grestore +% checkRewrite->checkFixCommonProblem +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 1787 360 moveto +1779 341 1767 310 1750 288 curveto +1741 277 1731 267 1721 259 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 1722.83 255.95 moveto +1713 252 lineto +1718.22 261.22 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 1722.83 255.95 moveto +1713 252 lineto +1718.22 261.22 lineto +closepath stroke +grestore +% checkRewrite->checkRecordHash +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 1739 372 moveto +1535 351 816 274 672 252 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 672.49 248.53 moveto +662 250 lineto +671.12 255.39 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 672.49 248.53 moveto +662 250 lineto +671.12 255.39 lineto +closepath stroke +grestore +% checkRewrite->checkTexht +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 1762 360 moveto +1746 350 1727 337 1712 324 curveto +1695 309 1698 297 1679 288 curveto +1582 241 1308 271 1186 252 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 1186.49 248.53 moveto +1176 250 lineto +1185.12 255.39 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 1186.49 248.53 moveto +1176 250 lineto +1185.12 255.39 lineto +closepath stroke +grestore +% checkRewrite->checkArguments +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 1746 360 moveto +1720 350 1689 338 1661 328 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 1662.56 324.86 moveto +1652 324 lineto +1659.72 331.26 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 1662.56 324.86 moveto +1652 324 lineto +1659.72 331.26 lineto +closepath stroke +grestore +% transformAndRecheckComments +gsave +0.278 0.750 0.533 nodecolor +newpath 1913 468 moveto +1673 468 lineto +1673 432 lineto +1913 432 lineto +closepath fill +1 setlinewidth +filled +0.278 0.750 0.533 nodecolor +newpath 1913 468 moveto +1673 468 lineto +1673 432 lineto +1913 432 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +1681 445.9 moveto 224 (transformAndRecheckComments) alignedtext +grestore +% transformAndRecheckComments->checkComments +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 1913 433 moveto +2010 420 2143 401 2225 388 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 2225.4 391.48 moveto +2235 387 lineto +2224.7 384.51 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 2225.4 391.48 moveto +2235 387 lineto +2224.7 384.51 lineto +closepath stroke +grestore +% transformAndRecheckComments->checkRewrite +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 1793 432 moveto +1793 424 1793 415 1793 406 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 1796.5 406 moveto +1793 396 lineto +1789.5 406 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 1796.5 406 moveto +1793 396 lineto +1789.5 406 lineto +closepath stroke +grestore +% transDoc +gsave +0.278 0.750 0.533 nodecolor +newpath 1063 540 moveto +985 540 lineto +985 504 lineto +1063 504 lineto +closepath fill +1 setlinewidth +filled +0.278 0.750 0.533 nodecolor +newpath 1063 540 moveto +985 540 lineto +985 504 lineto +1063 504 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +993 517.9 moveto 62 (transDoc) alignedtext +grestore +% transDoc->checkExtract +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 1063 522 moveto +1381 521 3522 507 3522 378 curveto +3522 378 3522 378 3522 234 curveto +3522 192 3505 146 3493 117 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 3496.26 115.72 moveto +3489 108 lineto +3489.86 118.56 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 3496.26 115.72 moveto +3489 108 lineto +3489.86 118.56 lineto +closepath stroke +grestore +% transDoc->checkDocError1 +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 1016 504 moveto +995 455 938 320 913 261 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 916.26 259.72 moveto +909 252 lineto +909.86 262.56 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 916.26 259.72 moveto +909 252 lineto +909.86 262.56 lineto +closepath stroke +grestore +% transDoc->checkTrim +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 1024 504 moveto +1024 455 1024 321 1024 262 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 1027.5 262 moveto +1024 252 lineto +1020.5 262 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 1027.5 262 moveto +1024 252 lineto +1020.5 262 lineto +closepath stroke +grestore +% transDoc->transformAndRecheckComments +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 1063 518 moveto +1173 508 1484 479 1663 462 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 1663.4 465.48 moveto +1673 461 lineto +1662.7 458.51 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 1663.4 465.48 moveto +1673 461 lineto +1662.7 458.51 lineto +closepath stroke +grestore +% transDocList +gsave +0.278 0.750 0.533 nodecolor +newpath 907 612 moveto +805 612 lineto +805 576 lineto +907 576 lineto +closepath fill +1 setlinewidth +filled +0.278 0.750 0.533 nodecolor +newpath 907 612 moveto +805 612 lineto +805 576 lineto +907 576 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +812.5 589.9 moveto 87 (transDocList) alignedtext +grestore +% transDocList->checkDocError +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 846 576 moveto +833 549 810 497 810 450 curveto +810 450 810 450 810 306 curveto +810 265 800 243 829 216 curveto +851 196 1031 176 1133 168 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 1133.4 171.48 moveto +1143 167 lineto +1132.7 164.51 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 1133.4 171.48 moveto +1143 167 lineto +1132.7 164.51 lineto +closepath stroke +grestore +% transDocList->checkDocError1 +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 856 576 moveto +856 548 857 495 856 450 curveto +856 450 856 450 856 378 curveto +857 335 874 290 887 261 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 890.14 262.56 moveto +891 252 lineto +883.74 259.72 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 890.14 262.56 moveto +891 252 lineto +883.74 259.72 lineto +closepath stroke +grestore +% transDocList->transDoc +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 898 576 moveto +922 566 951 553 976 543 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 977.28 546.26 moveto +985 539 lineto +974.44 539.86 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 977.28 546.26 moveto +985 539 lineto +974.44 539.86 lineto +closepath stroke +grestore +% finalizeDocumentation->transDocList +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 856 648 moveto +856 640 856 631 856 622 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 859.5 622 moveto +856 612 lineto +852.5 622 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 859.5 622 moveto +856 612 lineto +852.5 622 lineto +closepath stroke +grestore +endpage +showpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +end +restore +%%EOF diff --git a/changelog b/changelog index 6f213a0..a50041b 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,7 @@ +20111215 tpd src/axiom-website/patches.html 20111215.01.tpd.patch +20111215 tpd books/ps/v9CommentSyntaxChecking.eps comment syntax chapter +20111215 tpd books/ps/v9CommentRecording.eps comment recording chapter +20111215 tpd books/bookvol9 add comment graphs 20111208 tpd src/axiom-website/patches.html 20111208.05.tpd.patch 20111208 tpd books/bookvolbib add additional references 20111208 tpd src/axiom-website/patches.html 20111208.04.tpd.patch diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html index 851ed6f..0011e82 100644 --- a/src/axiom-website/patches.html +++ b/src/axiom-website/patches.html @@ -3735,5 +3735,7 @@ books/bookvol5 treeshake interpreter
books/bookvol9 code cleanup
20111208.05.tpd.patch books/bookvolbib add additional references
+20111215.01.tpd.patch +books/bookvol9 add comment graphs