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 00054 int SetParseString( const char* str ); 00055 hqTokenType GetNextToken( void ); 00056 CInt64Lexer( void ); 00057 ~CInt64Lexer( void ); 00058 char* GetCurrentPos( void ) const; 00059 }; 00060 00061 #endif //_INT64LEXER_H_