00001 //----------------------------------------------------------------------------- 00002 // (c) 2006 by Basler Vision Technologies 00003 // Section: Vision Components 00004 // Project: GenApi 00005 // Author: Margret Albrecht 00006 // $Header$ 00007 // 00008 // License: Derived from Kirill Zaborski's MathParser library (http://kirya.narod.ru/mathparser.html ). 00009 // This library comes under LGPL license (see http://www.gnu.org/licenses/lgpl.html). 00010 // Kirill's implementation is a C++ port of the CCalc library from Walery Studennikov (http://www.sama.ru/~despair/ccalc/) 00011 // which also comes under the LGPL. 00012 //----------------------------------------------------------------------------- 00018 #ifndef _INT64LEXER_H_ 00019 #define _INT64LEXER_H_ 00020 00021 #include <cstdlib> 00022 00023 #include "GenApi/Types.h" 00024 #include "GenApi/impl/Internal_Compatibility.h" 00025 00026 #include "SymTable.h" 00027 #include "Lexer.h" // some typdefs 00028 00034 class CInt64Lexer 00035 { 00036 char *m_pSS; 00037 char *SS; 00038 public: 00039 // input params 00040 int cssn; // Comment Start Symbol Number. -1 if none 00041 const char *ComEnd; // End of comment 00042 CSymTable *SymTable; 00043 const hqCharType *CharTypeTable; 00044 00045 // output params 00046 char *Name; 00047 size_t NameLen; 00048 int64_t ExtValue; 00049 int64_t IntValue; 00050 hqTokenType PrevTokenType; 00051 hqCharType CharType; 00052 int NoIntegers; 00053 int SetParseString(const char *str); 00054 hqTokenType GetNextToken(void); 00055 CInt64Lexer(void); 00056 ~CInt64Lexer(void); 00057 char * GetCurrentPos(void) const; 00058 }; 00059 00060 00061 #endif //_INT64LEXER_H_