| /*============================================================================ |
| CMake - Cross Platform Makefile Generator |
| Copyright 2000-2009 Kitware, Inc., Insight Software Consortium |
| |
| Distributed under the OSI-approved BSD License (the "License"); |
| see accompanying file Copyright.txt for details. |
| |
| This software is distributed WITHOUT ANY WARRANTY; without even the |
| implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
| See the License 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_BadCharacter, |
| cmListFileLexer_Token_BadString |
| } 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*); |
| int cmListFileLexer_SetString(cmListFileLexer*, const char*); |
| cmListFileLexer_Token* cmListFileLexer_Scan(cmListFileLexer*); |
| long cmListFileLexer_GetCurrentLine(cmListFileLexer*); |
| long cmListFileLexer_GetCurrentColumn(cmListFileLexer*); |
| const char* cmListFileLexer_GetTypeAsString(cmListFileLexer*, |
| cmListFileLexer_Type); |
| void cmListFileLexer_Delete(cmListFileLexer*); |
| |
| #ifdef __cplusplus |
| } /* extern "C" */ |
| #endif |
| |
| #endif |