<> <> <> <> DIRECTORY CrRPC, DictionaryP1313V1; DictionaryP1313V1ClientImpl: CEDAR PROGRAM IMPORTS CrRPC EXPORTS DictionaryP1313V1 ~ { OPEN DictionaryP1313V1; <> UseCourier: PUBLIC UseCourierType ~ CODE; RemoteError: PUBLIC RemoteErrorType ~ CODE; <> GetError: CrRPC.GetErrorProc ~ { SELECT errNum FROM 2 => ERROR UseCourier[]; 1 => { string: ROPE; string _ CrRPC.GetRope[s]; ERROR RemoteError[string] }; ENDCASE => { ERROR CrRPC.Error[h, remoteError, "Unexpected Remote Error"]; }; }; <> Pronunciation: PUBLIC PronunciationType ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutRope[s, word]; CrRPC.PutRope[s, dictionary]; }; GetResults: CrRPC.GetResultsProc ~ { string _ CrRPC.GetRope[s]; }; CrRPC.Call[h~h, remotePgm~1313, remotePgmVersion~1, remoteProc~12 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; Analyze: PUBLIC AnalyzeType ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutRope[s, word]; CrRPC.PutRope[s, language]; }; GetResults: CrRPC.GetResultsProc ~ { analyses _ CrRPC.GetRope[s]; }; CrRPC.Call[h~h, remotePgm~1313, remotePgmVersion~1, remoteProc~2 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; SearchForWord: PUBLIC SearchForWordType ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutRope[s, unparsedClasses]; CrRPC.PutInt16[s, minKeyWords]; CrRPC.PutInt16[s, minWord]; CrRPC.PutInt16[s, maxWord]; CrRPC.PutRope[s, dictionary]; }; GetResults: CrRPC.GetResultsProc ~ { intersectionResults _ UProc1[h, s]; }; CrRPC.Call[h~h, remotePgm~1313, remotePgmVersion~1, remoteProc~16 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; Synonyms: PUBLIC SynonymsType ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutRope[s, word]; CrRPC.PutRope[s, dictionary]; }; GetResults: CrRPC.GetResultsProc ~ { synonymClasses _ UProc2[h, s]; }; CrRPC.Call[h~h, remotePgm~1313, remotePgmVersion~1, remoteProc~17 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; GetDefinition: PUBLIC GetDefinitionType ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutRope[s, word]; CrRPC.PutRope[s, dictionary]; }; GetResults: CrRPC.GetResultsProc ~ { definition.definition _ CrRPC.GetRope[s]; definition.runs _ UProc3[h, s]; }; CrRPC.Call[h~h, remotePgm~1313, remotePgmVersion~1, remoteProc~11 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; GetLanguages: PUBLIC GetLanguagesType ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutRope[s, user]; }; GetResults: CrRPC.GetResultsProc ~ { languages _ UProc4[h, s]; }; CrRPC.Call[h~h, remotePgm~1313, remotePgmVersion~1, remoteProc~1 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; NewSearchForWord: PUBLIC NewSearchForWordType ~ { PutArgs: CrRPC.PutArgsProc ~ { MProc5[h, s, synonymClasses]; CrRPC.PutInt16[s, minKeyWords]; CrRPC.PutInt16[s, minWord]; CrRPC.PutInt16[s, maxWord]; CrRPC.PutRope[s, dictionary]; }; GetResults: CrRPC.GetResultsProc ~ { intersectionResults _ UProc1[h, s]; }; CrRPC.Call[h~h, remotePgm~1313, remotePgmVersion~1, remoteProc~18 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; Conjugate: PUBLIC ConjugateType ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutRope[s, word]; CrRPC.PutRope[s, form]; CrRPC.PutRope[s, alternates]; CrRPC.PutRope[s, language]; }; GetResults: CrRPC.GetResultsProc ~ { conjugations _ UProc6[h, s]; }; CrRPC.Call[h~h, remotePgm~1313, remotePgmVersion~1, remoteProc~8 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; ProofRead: PUBLIC ProofReadType ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutRope[s, paragraph]; CrRPC.PutRope[s, language]; }; GetResults: CrRPC.GetResultsProc ~ { selection.start _ CrRPC.GetInt16[s]; selection.length _ CrRPC.GetInt16[s]; }; CrRPC.Call[h~h, remotePgm~1313, remotePgmVersion~1, remoteProc~4 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; Enumerate: PUBLIC EnumerateType ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutInt32[s, wordNumber]; CrRPC.PutRope[s, dictionary]; }; GetResults: CrRPC.GetResultsProc ~ { definitions.definition _ CrRPC.GetRope[s]; definitions.runs _ UProc3[h, s]; }; CrRPC.Call[h~h, remotePgm~1313, remotePgmVersion~1, remoteProc~14 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; EnumerateRaw: PUBLIC EnumerateRawType ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutInt32[s, wordNumber]; MProc7[h, s, codes]; CrRPC.PutRope[s, dictionary]; }; GetResults: CrRPC.GetResultsProc ~ { rawDefinition _ UProc8[h, s]; }; CrRPC.Call[h~h, remotePgm~1313, remotePgmVersion~1, remoteProc~15 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; Dictionaries: PUBLIC DictionariesType ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutRope[s, user]; }; GetResults: CrRPC.GetResultsProc ~ { dictionariesAvailable _ UProc9[h, s]; }; CrRPC.Call[h~h, remotePgm~1313, remotePgmVersion~1, remoteProc~10 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; Corrections: PUBLIC CorrectionsType ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutRope[s, word]; CrRPC.PutRope[s, language]; }; GetResults: CrRPC.GetResultsProc ~ { words _ UProc10[h, s]; }; CrRPC.Call[h~h, remotePgm~1313, remotePgmVersion~1, remoteProc~5 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; RawSearchForWord: PUBLIC RawSearchForWordType ~ { PutArgs: CrRPC.PutArgsProc ~ { MProc5[h, s, synonymClasses]; CrRPC.PutInt16[s, minKeyWords]; CrRPC.PutInt16[s, minWord]; CrRPC.PutInt16[s, maxWord]; CrRPC.PutRope[s, dictionary]; }; GetResults: CrRPC.GetResultsProc ~ { rawIntersectionResults _ UProc11[h, s]; }; CrRPC.Call[h~h, remotePgm~1313, remotePgmVersion~1, remoteProc~19 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; CountWords: PUBLIC CountWordsType ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutRope[s, paragraph]; CrRPC.PutRope[s, language]; }; GetResults: CrRPC.GetResultsProc ~ { longInteger _ CrRPC.GetInt32[s]; }; CrRPC.Call[h~h, remotePgm~1313, remotePgmVersion~1, remoteProc~7 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; GetLooks: PUBLIC GetLooksType ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutRope[s, dictionary]; }; GetResults: CrRPC.GetResultsProc ~ { looks _ UProc12[h, s]; }; CrRPC.Call[h~h, remotePgm~1313, remotePgmVersion~1, remoteProc~13 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; ConvertWordNumber: PUBLIC ConvertWordNumberType ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutInt32[s, wordNumber]; CrRPC.PutRope[s, language]; }; GetResults: CrRPC.GetResultsProc ~ { word _ CrRPC.GetRope[s]; }; CrRPC.Call[h~h, remotePgm~1313, remotePgmVersion~1, remoteProc~3 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; Status: PUBLIC StatusType ~ { PutArgs: CrRPC.PutArgsProc ~ { }; GetResults: CrRPC.GetResultsProc ~ { string _ CrRPC.GetRope[s]; }; CrRPC.Call[h~h, remotePgm~1313, remotePgmVersion~1, remoteProc~6 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; <> UProc11: PROC [h: CrRPC.Handle, s: CrRPC.STREAM] RETURNS [res: RawIntersectionResults] ~ { { length14: CARDINAL ~ CrRPC.GetCard16[s]; res _ NEW[RawIntersectionResultsObject[length14]]; FOR i13: CARDINAL IN [0..length14) DO res.body[i13].keys _ UProc10[h, s]; res.body[i13].results _ UProc15[h, s]; ENDLOOP; }; }; UProc10: PROC [h: CrRPC.Handle, s: CrRPC.STREAM] RETURNS [res: Words] ~ { { length17: CARDINAL ~ CrRPC.GetCard16[s]; res _ NEW[WordsObject[length17]]; FOR i16: CARDINAL IN [0..length17) DO res.body[i16] _ CrRPC.GetRope[s]; ENDLOOP; }; }; UProc8: PROC [h: CrRPC.Handle, s: CrRPC.STREAM] RETURNS [res: RawDefinition] ~ { { length19: CARDINAL ~ CrRPC.GetCard16[s]; res _ NEW[RawDefinitionObject[length19]]; FOR i18: CARDINAL IN [0..length19) DO res.body[i18].type _ CrRPC.GetRope[s]; res.body[i18].text _ CrRPC.GetRope[s]; res.body[i18].defaultFont _ CrRPC.GetRope[s]; res.body[i18].runs _ UProc3[h, s]; ENDLOOP; }; }; UProc4: PROC [h: CrRPC.Handle, s: CrRPC.STREAM] RETURNS [res: Languages] ~ { { length21: CARDINAL ~ CrRPC.GetCard16[s]; res _ NEW[LanguagesObject[length21]]; FOR i20: CARDINAL IN [0..length21) DO res.body[i20] _ CrRPC.GetRope[s]; ENDLOOP; }; }; UProc12: PROC [h: CrRPC.Handle, s: CrRPC.STREAM] RETURNS [res: Looks] ~ { { length23: CARDINAL ~ CrRPC.GetCard16[s]; res _ NEW[LooksObject[length23]]; FOR i22: CARDINAL IN [0..length23) DO res.body[i22] _ UProc24[h, s]; ENDLOOP; }; }; UProc9: PROC [h: CrRPC.Handle, s: CrRPC.STREAM] RETURNS [res: DictionariesAvailable] ~ { { length26: CARDINAL ~ CrRPC.GetCard16[s]; res _ NEW[DictionariesAvailableObject[length26]]; FOR i25: CARDINAL IN [0..length26) DO res.body[i25] _ CrRPC.GetRope[s]; ENDLOOP; }; }; UProc24: PROC [h: CrRPC.Handle, s: CrRPC.STREAM] RETURNS [res: Looks2] ~ { { length28: CARDINAL ~ CrRPC.GetCard16[s]; res _ NEW[Looks2Object[length28]]; FOR i27: CARDINAL IN [0..length28) DO res.body[i27] _ CrRPC.GetRope[s]; ENDLOOP; }; }; MProc5: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, val: SynonymClasses] ~ { CrRPC.PutCard16[s, val.length]; FOR i29: CARDINAL IN [0..val.length) DO MProc30[h, s, val.body[i29]]; ENDLOOP; }; UProc2: PROC [h: CrRPC.Handle, s: CrRPC.STREAM] RETURNS [res: SynonymClasses] ~ { { length32: CARDINAL ~ CrRPC.GetCard16[s]; res _ NEW[SynonymClassesObject[length32]]; FOR i31: CARDINAL IN [0..length32) DO res.body[i31] _ UProc33[h, s]; ENDLOOP; }; }; UProc15: PROC [h: CrRPC.Handle, s: CrRPC.STREAM] RETURNS [res: Integers] ~ { { length35: CARDINAL ~ CrRPC.GetCard16[s]; res _ NEW[IntegersObject[length35]]; FOR i34: CARDINAL IN [0..length35) DO res.body[i34] _ CrRPC.GetInt32[s]; ENDLOOP; }; }; UProc3: PROC [h: CrRPC.Handle, s: CrRPC.STREAM] RETURNS [res: Runs] ~ { { length37: CARDINAL ~ CrRPC.GetCard16[s]; res _ NEW[RunsObject[length37]]; FOR i36: CARDINAL IN [0..length37) DO res.body[i36].start _ CrRPC.GetInt16[s]; res.body[i36].length _ CrRPC.GetInt16[s]; res.body[i36].font _ CrRPC.GetRope[s]; ENDLOOP; }; }; MProc7: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, val: Codes] ~ { CrRPC.PutCard16[s, val.length]; FOR i38: CARDINAL IN [0..val.length) DO CrRPC.PutRope[s, val.body[i38]]; ENDLOOP; }; UProc6: PROC [h: CrRPC.Handle, s: CrRPC.STREAM] RETURNS [res: Conjugations] ~ { { length40: CARDINAL ~ CrRPC.GetCard16[s]; res _ NEW[ConjugationsObject[length40]]; FOR i39: CARDINAL IN [0..length40) DO res.body[i39].partsOfSpeech _ CrRPC.GetRope[s]; res.body[i39].definition _ CrRPC.GetRope[s]; res.body[i39].status _ CrRPC.GetRope[s]; ENDLOOP; }; }; MProc30: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, val: SynonymClass] ~ { CrRPC.PutCard16[s, val.length]; FOR i41: CARDINAL IN [0..val.length) DO CrRPC.PutRope[s, val.body[i41]]; ENDLOOP; }; UProc1: PROC [h: CrRPC.Handle, s: CrRPC.STREAM] RETURNS [res: IntersectionResults] ~ { { length43: CARDINAL ~ CrRPC.GetCard16[s]; res _ NEW[IntersectionResultsObject[length43]]; FOR i42: CARDINAL IN [0..length43) DO res.body[i42].keys _ UProc10[h, s]; res.body[i42].results _ UProc10[h, s]; ENDLOOP; }; }; UProc33: PROC [h: CrRPC.Handle, s: CrRPC.STREAM] RETURNS [res: SynonymClass] ~ { { length45: CARDINAL ~ CrRPC.GetCard16[s]; res _ NEW[SynonymClassObject[length45]]; FOR i44: CARDINAL IN [0..length45) DO res.body[i44] _ CrRPC.GetRope[s]; ENDLOOP; }; }; }...