1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
|
#ifndef PARSERMANAGER_H
#define PARSERMANAGER_H
/*_____INCLUDE-FILES__________________________________________________________*/
#include "Macro.h"
#include "Analyse.h"
#include "Message.h"
#include "Lemma.h"
#include "Event.h"
#include "StrConv.h"
#include "MorphSynset.hpp"
#ifndef SCHEDULERGLOBAL_H
#include "MMIMorphwiever.h"
#endif
#include "StrToken.h"
/*_____GLOBAL-DEFINE__________________________________________________________*/
#define LEMMA_TRANSLATION_NUMBER 100
#define LEMMA_SIZE 256
#define WORD_NUMBER_OF_A_BLOC 5000
/*_____GLOBAL-TYPES___________________________________________________________*/
/*_____GLOBAL-DATA____________________________________________________________*/
/*_____GLOBAL-MACROS__________________________________________________________*/
/*_____GLOBAL-FUNCTIONS-PROTOTYPES____________________________________________*/
typedef std::wstring (*MyCallbackFunctionType)(std::wstring);
static std::wstring result;
// Déclaratin de la fonction appelée depuis le programme principal
extern __stdcall __declspec(dllexport,dllimport)
{
if ( GetDirectory!= NULL)
{
result = GetDirectory(L"wsWorkDirectory");
}
}
// La fonction de callback fournie par le programme
MyCallbackFunctionType fonctionDeCallback;
/*_____CLASS-DEFINITION_______________________________________________________*/
class CParserManager
{
public :
__declspec (dllexport) CParserManager(MyCallbackFunctionType GetDirectory);
__declspec (dllexport) erc InitParserManager(enLanguage Language);
private :
CStrConv objStrConv;
enum enParserManager{
PARSER_UNDEFINED = 0,
PARSER_CPARSERMANAGER,
NUMBER_OF_PARSER_CLASS,
};
enum{
PARSE_BLOC = 1,
GET_TRANSLATIONS_OF_SOURCE_LEMMA
};
enLanguage m_Language;
void *m_pXeldaManager;
public :
CParserManager::CParserManager();
CParserManager::~CParserManager();
erc CParserManager::ParseBloc(CBloc *pBloc, std::list<CAnalysedWord *> &ListWord);
erc CParserManager::GetTranslationsOfSourceLemma(std::wstring wsSourceLemma, enLanguage SourceLanguage,enLanguage TargetLanguage, std::list<CLemmaDescription *> &ListLemmaTranslation);
void QualifPivot( stANALYSED_WORD * pListAnalysedWord, int ulWordNumber);
int CParserManager::UTranscodePartOfSpeech( char* str, char* pPOS, char* pFlex);
bool CParserManager::BSeachForFullStop( char* pWord, int* iPos);
void CParserManager::BSplitTag( char* pNextToken, char* pWord, char* pPos, char* pFlex);
char* CParserManager::ExtractRegularExpression( char* Buffer);
erc CParserManager::Brill_ParseBloc( char * InText, stANALYSED_WORD * pListAnalysedWord, unsigned long* ulWordNumber, unsigned long* ulStart);
CParserManager::StoreAnalizedWords( stANALYSED_WORD * pListAnalysedWord, unsigned long* ulWordNumber, char* pWord, char* pNextLemma, int iPos, int* pStatus, bool bNewText, unsigned long* ulStart, int len);
bool CParserManager::ProcessUnknownWord( char* pNextLemma, char* pWord, int lenBuffer, stANALYSED_WORD * pListAnalysedWord, unsigned long* ulWordNumber, unsigned long* ulStart);
erc CParserManager::ParserAnalyse( stANALYSED_WORD * pListAnalysedWord, std::list<CAnalysedWord *> &ListWord, unsigned long ulWordNumber);
};
extern CParserManager objCParserManager;
#endif /* PARSERMANAGER_H */ |
Partager