| /*---------------------------------------------------------------------------* |
| * SR_SemanticProcessorImpl.h * |
| * * |
| * Copyright 2007, 2008 Nuance Communciations, Inc. * |
| * * |
| * Licensed under the Apache License, Version 2.0 (the 'License'); * |
| * you may not use this file except in compliance with the License. * |
| * * |
| * You may obtain a copy of the License at * |
| * http://www.apache.org/licenses/LICENSE-2.0 * |
| * * |
| * Unless required by applicable law or agreed to in writing, software * |
| * distributed under the License is distributed on an 'AS IS' BASIS, * |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * |
| * See the License for the specific language governing permissions and * |
| * limitations under the License. * |
| * * |
| *---------------------------------------------------------------------------*/ |
| |
| #ifndef __SR_SEMANTICPROCESSORIMPL_H |
| #define __SR_SEMANTICPROCESSORIMPL_H |
| |
| |
| |
| #include "SR_SemanticGraph.h" |
| #include "SR_SemanticProcessor.h" |
| #include "SR_SemanticResult.h" |
| #include "ESR_ReturnCode.h" |
| |
| |
| /** |
| * eScript Semantic Processor stuff |
| */ |
| #include "SR_ExpressionParser.h" |
| #include "SR_ExpressionEvaluator.h" |
| #include "SR_LexicalAnalyzer.h" |
| #include "SR_SymbolTable.h" |
| |
| /** |
| * SR_SemanticProcessor implementation. |
| */ |
| typedef struct SR_SemanticProcessorImpl_t |
| { |
| /** |
| * Interface functions that must be implemented. |
| */ |
| SR_SemanticProcessor Interface; |
| |
| ExpressionParser* parser; |
| ExpressionEvaluator* eval; |
| SymbolTable* symtable; |
| LexicalAnalyzer* analyzer; |
| /* the accumulated scripts */ |
| LCHAR* acc_scripts; |
| } |
| SR_SemanticProcessorImpl; |
| |
| |
| /** |
| * Default implementation. |
| */ |
| SREC_SEMPROC_API ESR_ReturnCode SR_SemanticProcessor_Destroy(SR_SemanticProcessor* self); |
| /** |
| * Default implementation. |
| */ |
| SREC_SEMPROC_API ESR_ReturnCode SR_SemanticProcessor_CheckParse(SR_SemanticProcessor* self, SR_SemanticGraph* semgraph, const LCHAR* transcription, SR_SemanticResult** result, size_t* resultCount); |
| /** |
| * Default implementation. |
| */ |
| SREC_SEMPROC_API ESR_ReturnCode SR_SemanticProcessor_CheckParseByWordID(SR_SemanticProcessor* self, SR_SemanticGraph* semgraph, wordID* wordIDs, SR_SemanticResult** result, size_t* resultCount); |
| /** |
| * Default implementation. |
| */ |
| SREC_SEMPROC_API ESR_ReturnCode SR_SemanticProcessor_SetParam(SR_SemanticProcessor* self, const LCHAR* key, const LCHAR* value); |
| /** |
| * Default implementation. |
| */ |
| SREC_SEMPROC_API ESR_ReturnCode SR_SemanticProcessor_Flush(SR_SemanticProcessor* self); |
| /** |
| * Default implementation. |
| */ |
| SREC_SEMPROC_API PINLINE ESR_BOOL isnum(const LCHAR* str); |
| |
| |
| |
| |
| #endif /* __SR_SEMANTICPROCESSORIMPL_H */ |