1 /*---------------------------------------------------------------------------* 2 * SR_SemanticProcessorImpl.h * 3 * * 4 * Copyright 2007, 2008 Nuance Communciations, Inc. * 5 * * 6 * Licensed under the Apache License, Version 2.0 (the 'License'); * 7 * you may not use this file except in compliance with the License. * 8 * * 9 * You may obtain a copy of the License at * 10 * http://www.apache.org/licenses/LICENSE-2.0 * 11 * * 12 * Unless required by applicable law or agreed to in writing, software * 13 * distributed under the License is distributed on an 'AS IS' BASIS, * 14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * 15 * See the License for the specific language governing permissions and * 16 * limitations under the License. * 17 * * 18 *---------------------------------------------------------------------------*/ 19 20 #ifndef __SR_SEMANTICPROCESSORIMPL_H 21 #define __SR_SEMANTICPROCESSORIMPL_H 22 23 24 25 #include "SR_SemanticGraph.h" 26 #include "SR_SemanticProcessor.h" 27 #include "SR_SemanticResult.h" 28 #include "ESR_ReturnCode.h" 29 30 31 /** 32 * eScript Semantic Processor stuff 33 */ 34 #include "SR_ExpressionParser.h" 35 #include "SR_ExpressionEvaluator.h" 36 #include "SR_LexicalAnalyzer.h" 37 #include "SR_SymbolTable.h" 38 39 /** 40 * SR_SemanticProcessor implementation. 41 */ 42 typedef struct SR_SemanticProcessorImpl_t 43 { 44 /** 45 * Interface functions that must be implemented. 46 */ 47 SR_SemanticProcessor Interface; 48 49 ExpressionParser* parser; 50 ExpressionEvaluator* eval; 51 SymbolTable* symtable; 52 LexicalAnalyzer* analyzer; 53 /* the accumulated scripts */ 54 LCHAR* acc_scripts; 55 } 56 SR_SemanticProcessorImpl; 57 58 59 /** 60 * Default implementation. 61 */ 62 SREC_SEMPROC_API ESR_ReturnCode SR_SemanticProcessor_Destroy(SR_SemanticProcessor* self); 63 /** 64 * Default implementation. 65 */ 66 SREC_SEMPROC_API ESR_ReturnCode SR_SemanticProcessor_CheckParse(SR_SemanticProcessor* self, SR_SemanticGraph* semgraph, const LCHAR* transcription, SR_SemanticResult** result, size_t* resultCount); 67 /** 68 * Default implementation. 69 */ 70 SREC_SEMPROC_API ESR_ReturnCode SR_SemanticProcessor_CheckParseByWordID(SR_SemanticProcessor* self, SR_SemanticGraph* semgraph, wordID* wordIDs, SR_SemanticResult** result, size_t* resultCount); 71 /** 72 * Default implementation. 73 */ 74 SREC_SEMPROC_API ESR_ReturnCode SR_SemanticProcessor_SetParam(SR_SemanticProcessor* self, const LCHAR* key, const LCHAR* value); 75 /** 76 * Default implementation. 77 */ 78 SREC_SEMPROC_API ESR_ReturnCode SR_SemanticProcessor_Flush(SR_SemanticProcessor* self); 79 /** 80 * Default implementation. 81 */ 82 SREC_SEMPROC_API PINLINE ESR_BOOL isnum(const LCHAR* str); 83 84 85 86 87 #endif /* __SR_SEMANTICPROCESSORIMPL_H */ 88