(FILECREATED " 1-Apr-86 17:19:30" ("compiled on " {QV}TOOLS>ANALYZER.;62) "12-Nov-85 14:59:23" recompiled exprs: nothing in "INTERLISP-D 7-Feb-86 ..." dated " 7-Feb-86 11:43:05") (FILECREATED " 1-Apr-86 17:18:46" {QV}TOOLS>ANALYZER.;62 46277 changes to: (MACROS Stream.NextChar) previous date: "19-Mar-86 11:13:31" {QV}TOOLS>ANALYZER.;61) Analyzer.DefaultCorrections D1 (P 31Q c P 27Q temp P 26Q tail P 22Q i P 4 periods P 3 caps P 2 wordList P 1 word P 0 form I 3 length I 2 start I 1 stream I 0 analyzer)  A A@ !H @ABh@ZBJiIYhHBHh(11Q FASSOC) (34Q Analyzer 23Q Analyzer 4 Analyzer) () STREAM.FETCHSTRING D1 (P 1 i I 3 buffer I 2 length I 1 start I 0 stream) 3CBC B b@A BkIHCI@ +IkYCkB (60Q SUBSTRING 24Q SETFILEPTR 14Q ALLOCSTRING 6 NCHARS) NIL () Analyzer.CorruptWord D1 (P 26Q c P 24Q temp P 23Q tail P 17Q i P 3 caps P 2 wordList P 1 word P 0 form I 3 length I 2 start I 1 stream I 0 analyzer F 27Q word) yW.W. c. Ck2OO$A _$O"O$h_"_ Ok_O$&_"O YdJn!IddnplAI2IlZ+I$n!IInplAIIlZggh[I!O$_&O&dJId@@IhdlMI JI!O$_&O&ddgIYKdg_(O&dO&O(KgO&dI@@IhdlLI JO&O&O&O(O&e_(O&d@@IhdlNI JO&O(O&hg=lZlAO,O*,IO,@_@IhddlOI O,k_,9lzlaO,O**IO,@_@IhdlOI JO,k_,IYddO&gO&Kg=lZlAO,O*,O&O,@_@IhdlOI JO,k_,;lzlaO,O*,O&O,@_@IhdlOI JO,k_,O&djI!O$_& J Zd_(KgKdgIO&IAlZlAO,O*2O&O,O(O,@_@IhdlOI JO,k_,K&O(l__lAOOlZKgLO&dIGlzlaO,O*5O&O,O(O, @_@IhdlOI JO,k_,O&O(O&'dOO OdJ(1547Q STREQUAL 1501Q CONCATCODES 1446Q CHARACTER 1330Q CONCATCODES 1207Q SORT 1134Q CONCATCODES 1041Q CONCATCODES 713Q CONCATCODES 624Q \Analyzer.NewCorruption 621Q \AnalyzerStringForm 520Q CONCATCODES 431Q CONCATCODES 273Q CONCATCODES 10Q CHCON) (1455Q Analyzer 1400Q FIRST 1304Q Analyzer 1233Q FIRST 1224Q ALL 1110Q Analyzer 1015Q Analyzer 761Q ALL 747Q A 667Q Analyzer 574Q Analyzer 542Q ALL 477Q Analyzer 410Q Analyzer 372Q FIRST 333Q FIRST 323Q A 250Q Analyzer 211Q FIRST 205Q ALL) () \Analyzer.NewCorruption D1 (P 1 i I 0 w F 2 wordList) %RH h@RcY@ IiHX(27Q STREQUAL) NIL () Analyzer.Establish D1 (I 0 analyzer F 3 Analyzer.List) 7@0g #S@HZIJJ@i@ScJ(10Q BOUNDP) (37Q Analyzer 17Q Analyzer 5 Analyzer.List) () AnalyzerForStream D1 (I 0 stream) @g @ (14Q TEdit.SetAnalyzer 6 STREAMPROP) (3 analyzer) () Analyzer.QuitFn D1 (P 0 analyzer I 2 textObj I 1 stream I 0 window) /A Hd$g oAoo A h(53Q TEdit.StoreWordList 45Q STREQUAL 42Q TEDIT.GETINPUT 20Q Analyzer.Prop 3 AnalyzerForStream) (15Q WordList) ( 37Q "yes" 33Q "Do you want to save the word list? " 26Q "yes") TEdit.ProofreadMenu D1 (P 2 analyzer P 1 menu P 0 menuWindow I 0 stream F 6 W) !`Vg Xd`ggg@h@gg@hhhohgg@g@hhohggg@hg@hih@hohhdKdi dg dgjdndhdL mdI lI l hdi IH VgH H H HVggg H @ Zd J@d khdlMh(424Q TEDIT.GETPOINT 404Q AnalyzerForStream 377Q OPENW 372Q ATTACHWINDOW 351Q OPENWP 344Q CLOSEW 337Q PUTWINDOWPROP 326Q ADDMENU 320Q CREATEW 312Q CREATEREGION 277Q CHECK/MENU/IMAGE 263Q CHECK/MENU/IMAGE 11Q GETWINDOWUSERPROP) (413Q Analyzer 366Q LOCALCLOSE 363Q TOP 360Q LEFT 333Q Proofreader.Menu 302Q BITMAP 266Q BITMAP 227Q DEFAULTMENUHELDFN 220Q CLRPROMPT 147Q TEDIT.SEL.AS.STRING 140Q AnalyzerForStream 135Q Analyzer.AddEntry 132Q Insert 107Q AnalyzerForStream 103Q TEdit.Correct 100Q Correct 51Q TEDIT.GETPOINT 46Q SUB1 36Q AnalyzerForStream 33Q Analyzer.Proofread 30Q Proofread 24Q MENUTYPE# 6 Proofreader.Menu) ( 171Q "inserts the selected word into the analyzer's word list." 123Q "generates a list of possible corrections for the current selection." 71Q "looks for the next spelling error starting from the caret.") TEdit.Correct D1 (P 3 length P 2 start P 1 correction P 0 selection I 1 analyzer I 0 stream) @ XdZH J[`AA@JkKlLo dMdi lddNdodg dgjdndh_dO YdgA_A@ ih@lOgI @ @I I(253Q TEDIT.INSERT 245Q TEDIT.DELETE 215Q TEDIT.SEL.AS.STRING 166Q MENU 64Q \APPEND2 6 TEDIT.GETSEL) (234Q *SKIP* 203Q Analyzer 173Q *INSERT* 134Q DEFAULTMENUHELDFN 125Q CLRPROMPT 37Q Analyzer 32Q MENUTYPE# 22Q SELECTION 13Q SELECTION) ( 116Q "corrections" 61Q (*INSERT* *SKIP*)) TEdit.SetAnalyzerA0002 D1 (I 1 arg I 0 type F 0 stream) c@dgP P oP ig:AggP P oP AP oP i(137Q PRIN1 134Q DictTool.PromptStream 123Q PRIN1 120Q DictTool.PromptStream 112Q PRIN1 107Q DictTool.PromptStream 76Q TERPRI 73Q DictTool.PromptStream 66Q DictTool.PromptStream 40Q PRIN1 35Q DictTool.PromptStream 24Q TERPRI 21Q DictTool.PromptStream 14Q DictTool.PromptStream) (61Q rebind 54Q unbound 45Q CallFailed 4 LispError) ( 130Q "***" 103Q "***Call failed: " 31Q "***Error in remote server***") TEdit.SetAnalyzerA0003 D1 (NAME ERRORSET F 0 i) P h(14Q RemoteDict.Analyzers 2 FULLUSERNAME) (6 Analyzer) () TEdit.SetAnalyzer D1 (P 23Q $Exit$ P 22Q result P 21Q $SignalArg$ P 20Q $SignalType$ P 17Q $SignalCatcher$ P 13Q i P 3 result P 2 subItems P 1 menuItems P 0 quitFn I 1 analyzer I 0 stream F 24Q Analyzer.List) A@ W(d_g OOOkLOOgOhog0gAo _$,O&dg%O@ #O O&ih/dOMJMgOMhh_O Oh_O&_OhOgOhh_O Oh_O&_OY kJW(LI kJ kJ:`dIdodi dg dgjdndhdN [5@g b@oAdoAdg o i d7bgK Ag &@oAoAg o b@oAdo i A*@gA @ Fg'XggHz_AkOH0@ F@ Fgg F@ gg2@ F@ FggH @ ggHhF@o A(1247Q TEDIT.PROMPTPRINT 1216Q TEXTOBJ 1210Q LISTPUT 1170Q TEXTOBJ 1155Q TEXTOBJ 1136Q TEXTOBJ 1130Q LISTPUT 1112Q TEXTOBJ 1077Q TEXTOBJ 1014Q TEXTOBJ 1007Q STREAMPROP 773Q TEDIT.PROMPTPRINT 767Q CONCAT 735Q CONCAT 725Q Analyzer.Prop 675Q Analyzer.Prop 665Q Analyzer.Prop 643Q TEDIT.PROMPTPRINT 637Q CONCAT 627Q Analyzer.Prop 572Q STREAMPROP 560Q MENU 461Q LENGTH 452Q LENGTH 434Q LENGTH 252Q SHOULDNT 237Q ERROR! 227Q RemoteDict.Analyzers 214Q FULLUSERNAME 207Q DictTool.RebindInterface 204Q DictTool.PromptStream 153Q TEdit.SetAnalyzerA0003 33Q Analyzer.Prop) (1227Q Analyzer.QuitFn 1224Q QUITFN 1221Q TEXTOBJ 1203Q Analyzer.QuitFn 1200Q QUITFN 1173Q TEXTOBJ 1160Q TEXTOBJ 1147Q Analyzer.QuitFn 1144Q QUITFN 1141Q TEXTOBJ 1125Q Analyzer.QuitFn 1122Q QUITFN 1115Q TEXTOBJ 1102Q TEXTOBJ 1052Q Analyzer 1041Q Analyzer.QuitFn 1031Q Analyzer.QuitFn 1024Q QUITFN 1017Q TEXTOBJ 1003Q analyzer 756Q Analyzer 722Q RemoteDict 710Q Analyzer 672Q RemoteDict 660Q RemoteDict 624Q RemoteDict 610Q Analyzer 567Q analyzer 531Q DEFAULTMENUHELDFN 522Q CLRPROMPT 473Q MENUTYPE# 361Q QUOTE 354Q Analyzer 273Q QUOTE 221Q Analyzer 176Q Analyzer 165Q rebind 141Q TEdit.SetAnalyzerA0002 133Q SUBITEMS 117Q QUOTE 112Q Analyzer 77Q Analyzer 55Q Analyzer 44Q Analyzer 30Q RemoteDict) ( 1244Q "done." 764Q "..." 750Q "Setting proofreader to " 731Q "..." 716Q ": " 704Q "Setting proofreader to " 633Q "." 616Q ": " 602Q "Proofreader is " 506Q "analyzers" 150Q (TEdit.SetAnalyzerA0003) 130Q "Calls the remote dictionary server") TEdit.LoadWordList D1 (P 1 file P 0 analyzer I 0 stream) L@ H@oi 7@o Y@oi "@oIo i HI @o h(110Q TEDIT.PROMPTPRINT 77Q Analyzer.DefaultLoadWordList 71Q TEDIT.PROMPTPRINT 65Q CONCAT 46Q TEDIT.PROMPTPRINT 33Q TEDIT.GETINPUT 21Q TEDIT.PROMPTPRINT 3 AnalyzerForStream) NIL ( 105Q "done." 62Q "..." 55Q "Reading " 42Q "Aborted." 30Q "Fetch word list on file: " 15Q "Please select a proofreader.") TEdit.StoreWordList D1 (P 1 file P 0 analyzer I 0 stream) g@ H @oi Qg @oi ?@oHg  Y@oi "@oIo i HI @o h(143Q TEDIT.PROMPTPRINT 132Q Analyzer.DefaultStoreWordList 124Q TEDIT.PROMPTPRINT 120Q CONCAT 101Q TEDIT.PROMPTPRINT 66Q TEDIT.GETINPUT 62Q Analyzer.Prop 44Q TEDIT.PROMPTPRINT 32Q Analyzer.Prop 22Q TEDIT.PROMPTPRINT 3 AnalyzerForStream) (57Q WordListFile 27Q WordList) ( 140Q "done." 115Q "..." 110Q "Storing word list on " 75Q "Aborted." 53Q "Store word list on file: " 40Q "No words to be stored." 16Q "Please select a proofreader.") Analyzer.GenerateFormsA0001 D1 (P 2 x P 1 tpl I 4 f I 3 toLoc I 2 fromLoc I 1 w I 0 dict F 3 usedTemplates F 4 entries F 5 Templates F 6 GFFeatures) 5U!HhYD IV ZISAJTcISchHX(30Q SimpleUnify 20Q SimpleUnify) NIL () Analyzer.GenerateForms D1 (P 1 usedTemplates P 0 entries I 3 trace I 2 genFn I 1 GFFeatures I 0 word F 2 entry F 3 DefaultDict)  So@o ghg C=Hdh k o#h H o o @ HHc!oRo gRhdBCj (177Q Gen 157Q CONCAT 130Q PRIN1 123Q PRIN1 113Q TERPRI 102Q PRIN1 77Q LENGTH 72Q TERPRI 55Q TAB 50Q TERPRI 32Q Analyze 17Q CONCAT) (162Q start 26Q Analyzer.GenerateFormsA0001 22Q start) ( 154Q "}" 146Q "{" 120Q "No analyses of " 107Q " stem." 62Q " stems." 14Q "}" 7 "{") OCR.CorrectA0011 D1 (I 0 w F 1 dict) QgQ@hddlHNIL (12Q NILL 3 Analyzer) () OCR.Correct D1 (P 23Q k P 21Q j P 17Q i P 4 string P 3 n P 2 item P 1 correction P 0 menuItems I 1 word I 0 dict F 24Q stream F 25Q STREAM F 26Q prevSpec F 27Q wordSpec) o W,gHAo Ao oHEA kOO3AOd dgMAkOk ooAOkA o @g@LhddlMLHglzlaO"O AkOk oO" AOkA o @g@LhddlNLHlzlaO&O$WAkOk oO" O& AOkA o @g_@LhddlOLHO&k_&O"k_"JOk_`dHdg dgjdndh_dO ZdgW(W,W,[kW.K gg6W(W.W.k[@ _@W(KW( hlOKk gJdgb`oAg _dOdi didodg dgjdndh_dO Yddg;ggJdg@_@AihlOhW* W*J g@_@AihlOIW* W*I I (1306Q NCHARS 1301Q TEDIT.INSERT 1272Q TEDIT.DELETE 1223Q TEDIT.INSERT 1214Q TEDIT.DELETE 1124Q MENU 1024Q \APPEND2 1021Q Analyzer.CorruptWord 765Q TEDIT.DELETE 745Q GETEOFPTR 673Q TEDIT.DELETE 633Q MENU 461Q CONCAT 450Q SUBSTRING 445Q NCHARS 434Q FCHARACTER 427Q FCHARACTER 414Q SUBSTRING 331Q CONCAT 320Q SUBSTRING 315Q NCHARS 304Q FCHARACTER 271Q SUBSTRING 166Q CONCAT 155Q SUBSTRING 152Q NCHARS 127Q SUBSTRING 106Q MKATOM 103Q SUBSTRING 57Q NCHARS 40Q STREQUAL 27Q STREQUAL) (1240Q Dict 1231Q *INSERT* 1164Q Dict 1154Q *INSERT* 1144Q *QUIT* 1140Q *QUIT* 1132Q *QUIT* 1072Q DEFAULTMENUHELDFN 1063Q CLRPROMPT 1016Q OCR.CorrectA0011 1005Q MENUTYPE# 776Q *CORRECT* 770Q *RETRY* 727Q Analyzer 702Q --> 676Q *RETRY* 640Q <-- 601Q DEFAULTMENUHELDFN 572Q CLRPROMPT 560Q MENUTYPE# 475Q NILL 466Q Analyzer 345Q NILL 336Q Analyzer 233Q ~ 202Q NILL 173Q Analyzer 112Q I 14Q <--) ( 1054Q "corrections" 1012Q (*QUIT* *INSERT*) 456Q "" 422Q "" 326Q "" 277Q "" 163Q "" 141Q "l" 135Q "" 45Q "of" 35Q "oE" 24Q "pE" 3 (--> *CORRECT* *QUIT* *INSERT*)) French.LCase D1 (P 5 i P 1 tail P 0 x I 0 w) @ Hlm oY@kd bHkd Hh@ dg)0odMI KJh\J&Ldg)0odMI KJh\J&Ldg)0odMI KJh\J&Ldg)0odMI KJh\J&Lg(0odMI KJh\J&LH(400Q CONCAT 324Q CONCAT 246Q CONCAT 170Q CONCAT 112Q CONCAT 57Q MKATOM 46Q STREQUAL 43Q SUBSTRING 33Q SUBSTRING 16Q SUBSTRING 3 L-CASE) (352Q U 275Q O 217Q I 141Q E 63Q A) ( 364Q (u ) 310Q (o ) 232Q (i ) 154Q (e ) 76Q (a ) 24Q "") SimpleStem.AddEntryA0001 D1 (L (2 stemForm 1 canonicalForm 0 entry) F 0 expo) B@dPNIL NIL () SimpleStem.AddEntry D1 (I 3 stemForm I 2 canonicalForm I 1 expo I 0 dict) @giBC (12Q SimpleStem.Analyze) (3 SimpleStem.AddEntryA0001) () SimpleStem.Analyze D1 (P 4 s P 2 entry P 1 cf I 4 stem I 3 canonicalForm I 2 createEntry I 1 fn I 0 dict F 5 contents F 6 of) U V@ !HBCeo CCIKIKB;D%o .DDLLCDlADK[IDhZIJCDlAC0HXDo U V@ CDhZh JCDlAh(234Q push 221Q fetch 214Q Analyzer 205Q ERROR 104Q ERROR 40Q ERROR 10Q fetch 3 Analyzer) NIL ( 202Q "No stem form given for new entry in SimpleStemLookup" 101Q "No stem form given for new entry in SimpleStemLookup" 35Q "No canonical form given for new entry in SimpleStemLookup") SimpleStem.New D1 (I 0 name F 0 Dict F 1 _ F 2 lookupFn F 3 addEntryFn) P@Q@gcgc (21Q create) (13Q SimpleStem.AddEntry 6 SimpleStem.Analyze) () (PRETTYCOMPRINT ANALYZERCOMS) (RPAQQ ANALYZERCOMS ((COMS (* * THE ANALYZER CLASS) (* MACROS that call apply the methods of the analyzer class.) (RECORDS Analyzer) (MACROS Analyzer.Open Analyzer.Close Analyzer.Corrections Analyzer.Proofread Analyzer.Analyze Analyzer.Lookup Analyzer.FindWord Analyzer.AddEntry) (* Functions implementing the default case for various methods of the analyzer class.) (FNS Analyzer.DefaultCorrections Analyzer.DefaultNextWord Analyzer.DefaultAddEntry Analyzer.DefaultAnalyze Analyzer.DefaultProofread Analyzer.DefaultLoadWordList Analyzer.DefaultStoreWordList) (FNS Analyzer.Prop Analyzer.PushProp) (* Service MACROS.) (MACROS Analyzer.AlphaCharP \Analyzer.TestCorruption Analyzer.Capitalization Analyzer.UCaseP) (FNS STREAM.FETCHSTRING) (MACROS Stream.Init Stream.NextChar) (FNS Analyzer.CorruptWord \Analyzer.NewCorruption)) (COMS (* * TEDIT interface.) (FNS Analyzer.Establish AnalyzerForStream Analyzer.QuitFn) (FNS TEdit.ProofreadMenu TEdit.Correct TEdit.SetAnalyzer TEdit.LoadWordList TEdit.StoreWordList) (INITVARS Analyzer.List Proofreader.AutoCorrect Analyzer.TimeProofreader) (P (TEDIT.ADD.MENUITEM TEDIT.DEFAULT.MENU (QUOTE ( Proofread (FUNCTION TEdit.ProofreadMenu) "Looks for the next spelling error after the caret." ( SUBITEMS (SetProofreader (FUNCTION TEdit.SetAnalyzer)) (LoadWordList (FUNCTION TEdit.LoadWordList) "Loads a file of words into the proofreader.") (StoreWordList (FUNCTION TEdit.StoreWordList) "Stores the words added to the proofreader by the user on a remote file.") (AutoCorrect (FUNCTION ( LAMBDA (stream) (SETQ Proofreader.AutoCorrect T) (TEDIT.PROMPTPRINT stream "AutoCorrection is ON." T)) ) "The proofreader automatically generates a menu of corrections for the user.") (ManualCorrect ( FUNCTION (LAMBDA (stream) (SETQ Proofreader.AutoCorrect) (TEDIT.PROMPTPRINT stream "AutoCorrection is OFF." T))) "The user must ask for a menu of corrections from the proofreader if he wants one."))))))) (COMS (* * some of Martin's functions for dealing with French.) (FNS Analyzer.GenerateForms OCR.Correct French.LCase) (FNS SimpleStem.AddEntry SimpleStem.Analyze SimpleStem.New) (RECORDS CanonicalForm Stem) ) (DECLARE: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS (ADDVARS (NLAMA) (NLAML) (LAMA Analyzer.Prop))))) (DATATYPE Analyzer (name grammar index props openFn closeFn proofreadFn analyzeFn lookupFn correctionsFn generateFn conjugateFn findWordFn addEntryFn) openFn _ (FUNCTION NILL) closeFn _ ( FUNCTION NILL) proofreadFn _ (FUNCTION Analyzer.DefaultProofread) analyzeFn _ (FUNCTION Analyzer.DefaultAnalyze) lookupFn _ (FUNCTION NILL) correctionsFn _ (FUNCTION Analyzer.DefaultCorrections) generateFn _ (FUNCTION NILL) conjugateFn _ (FUNCTION NILL) findWordFn _ ( FUNCTION NILL) addEntryFn _ (FUNCTION Analyzer.DefaultAddEntry)) (/DECLAREDATATYPE (QUOTE Analyzer) (QUOTE (POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER)) (QUOTE ((Analyzer 0 POINTER) (Analyzer 2 POINTER) (Analyzer 4 POINTER) (Analyzer 6 POINTER) (Analyzer 8 POINTER) (Analyzer 10 POINTER) ( Analyzer 12 POINTER) (Analyzer 14 POINTER) (Analyzer 16 POINTER) (Analyzer 18 POINTER) (Analyzer 20 POINTER) (Analyzer 22 POINTER) (Analyzer 24 POINTER) (Analyzer 26 POINTER))) 28) (PUTPROPS Analyzer.Open MACRO ((analyzer) (APPLY* (fetch (Analyzer openFn) of analyzer) analyzer))) (PUTPROPS Analyzer.Close MACRO ((analyzer) (APPLY* (fetch (Analyzer closeFn) of analyzer)))) (PUTPROPS Analyzer.Corrections MACRO ((analyzer stream loc len) (* * returns a list of possible corrections for the string starting at "loc" that is "len" characters long.) (APPLY* (fetch (Analyzer correctionsFn) of analyzer) analyzer stream loc len))) (PUTPROPS Analyzer.Proofread MACRO ((analyzer stream start length prFn) (* * The user interface to Analyzer.Analyze.) (APPLY* (fetch (Analyzer proofreadFn) of analyzer) analyzer stream start length prFn))) (PUTPROPS Analyzer.Analyze MACRO ((analyzer stream fromLoc toLoc analFn) (* * break up the stream into legal lexical items. call analFn (analyzer stream start len entries) on each item, where "entries" is the analysis of that item. If "entries" is NIL, then the item could not be analyzed.) (APPLY* (fetch (Analyzer analyzeFn) of analyzer) analyzer stream fromLoc toLoc analFn))) (PUTPROPS Analyzer.Lookup MACRO ((analyzer stream fromLoc toLoc) (* * Look up the substring of stream between fromLoc and toLoc in dict. "stream" can be a stream, a string, or a list of characters.) ( APPLY* (fetch (Analyzer lookupFn) of analyzer) analyzer stream fromLoc toLoc))) (PUTPROPS Analyzer.FindWord MACRO ((analyzer word stream start length) (APPLY* (fetch (Analyzer findWordFn) of analyzer) analyzer word stream start length))) (PUTPROPS Analyzer.AddEntry MACRO ((analyzer lemma entry dontRecord errorStream) (* * add lemma to the dictionary with entry "entry" %. If dontRecord is non-NIL, don't worry about keeping track of this word for the word list.) (APPLY* (fetch (Analyzer addEntryFn) of analyzer) analyzer lemma entry dontRecord errorStream))) (PUTPROPS Analyzer.AlphaCharP MACRO ((CHAR) (OR (EQ (LRSH CHAR 8) 241) ((LAMBDA (UCHAR) (DECLARE ( LOCALVARS UCHAR)) (OR (EQ (LRSH UCHAR 8) 241) (AND (IGEQ UCHAR (CHARCODE A)) (ILEQ UCHAR (CHARCODE Z)) ))) (LOGAND CHAR 95))))) (PUTPROPS \Analyzer.TestCorruption MACRO ((analyzer word wordList) (COND ((Analyzer.Lookup analyzer word) (push wordList (CONCATCODES word)))))) (PUTPROPS Analyzer.Capitalization MACRO ((word) (* * returns NIL, ALL or FIRST) (COND ((AND word ( Analyzer.UCaseP (CAR word))) (COND ((AND word (Analyzer.UCaseP (CADR word))) (QUOTE ALL)) (T (QUOTE FIRST))))))) (PUTPROPS Analyzer.UCaseP MACRO ((UCHAR) (OR (AND (IGEQ UCHAR (CHARCODE 361,041)) (ILEQ UCHAR ( CHARCODE 361,160))) (AND (IGEQ UCHAR (CHARCODE A)) (ILEQ UCHAR (CHARCODE Z)))))) (PUTPROPS Stream.Init MACRO ((stream start length) (COND ((STRINGP stream) NIL) ((NOT (LISTP stream)) (COND ((NULL start) (SETQ start 0))) (COND ((NULL length) (SETQ length (IDIFFERENCE (GETEOFPTR stream) start)))) (SETFILEPTR stream start))))) (PUTPROPS Stream.NextChar MACRO ((stream length index) (COND ((LISTP stream) (pop stream)) ((OR (NULL stream) (ILEQ length 0)) NIL) ((STRINGP stream) (add length -1) (add index 1) (NTHCHARCODE stream index)) (T (add length -1) (BIN stream))))) (RPAQ? Analyzer.List NIL) (RPAQ? Proofreader.AutoCorrect NIL) (RPAQ? Analyzer.TimeProofreader NIL) (TEDIT.ADD.MENUITEM TEDIT.DEFAULT.MENU (QUOTE (Proofread (FUNCTION TEdit.ProofreadMenu) "Looks for the next spelling error after the caret." (SUBITEMS (SetProofreader (FUNCTION TEdit.SetAnalyzer)) (LoadWordList (FUNCTION TEdit.LoadWordList) "Loads a file of words into the proofreader.") (StoreWordList (FUNCTION TEdit.StoreWordList) "Stores the words added to the proofreader by the user on a remote file.") (AutoCorrect (FUNCTION ( LAMBDA (stream) (SETQ Proofreader.AutoCorrect T) (TEDIT.PROMPTPRINT stream "AutoCorrection is ON." T)) ) "The proofreader automatically generates a menu of corrections for the user.") (ManualCorrect ( FUNCTION (LAMBDA (stream) (SETQ Proofreader.AutoCorrect) (TEDIT.PROMPTPRINT stream "AutoCorrection is OFF." T))) "The user must ask for a menu of corrections from the proofreader if he wants one."))))) (RECORD CanonicalForm (form . stems)) (RECORD Stem (form . expo)) (PUTPROPS ANALYZER COPYRIGHT ("Xerox Corporation" 1985 1986)) NIL