diff options
Diffstat (limited to 'Source/cmListFileLexer.h')
-rw-r--r-- | Source/cmListFileLexer.h | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/Source/cmListFileLexer.h b/Source/cmListFileLexer.h new file mode 100644 index 0000000..dea8b7d --- /dev/null +++ b/Source/cmListFileLexer.h @@ -0,0 +1,60 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile$ + Language: C++ + Date: $Date$ + Version: $Revision$ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmListFileLexer_h +#define cmListFileLexer_h + +typedef enum cmListFileLexer_Type_e +{ + cmListFileLexer_Token_None, + cmListFileLexer_Token_Newline, + cmListFileLexer_Token_Identifier, + cmListFileLexer_Token_ParenLeft, + cmListFileLexer_Token_ParenRight, + cmListFileLexer_Token_ArgumentUnquoted, + cmListFileLexer_Token_ArgumentQuoted, + cmListFileLexer_Token_Error +} cmListFileLexer_Type; + +typedef struct cmListFileLexer_Token_s cmListFileLexer_Token; +struct cmListFileLexer_Token_s +{ + cmListFileLexer_Type type; + char* text; + int length; + int line; + int column; +}; + +typedef struct cmListFileLexer_s cmListFileLexer; + +#ifdef __cplusplus +extern "C" +{ +#endif + +cmListFileLexer* cmListFileLexer_New(); +int cmListFileLexer_SetFileName(cmListFileLexer*, const char*); +cmListFileLexer_Token* cmListFileLexer_Scan(cmListFileLexer*); +long cmListFileLexer_GetCurrentLine(cmListFileLexer*); +long cmListFileLexer_GetCurrentColumn(cmListFileLexer*); +void cmListFileLexer_Delete(cmListFileLexer*); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif |