/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying file Copyright.txt or https://cmake.org/licensing for details. */ #pragma once #ifdef __cplusplus extern "C" { #endif /* NOLINTNEXTLINE(modernize-use-using) */ typedef enum cmListFileLexer_Type_e { cmListFileLexer_Token_None, cmListFileLexer_Token_Space, cmListFileLexer_Token_Newline, cmListFileLexer_Token_Identifier, cmListFileLexer_Token_ParenLeft, cmListFileLexer_Token_ParenRight, cmListFileLexer_Token_ArgumentUnquoted, cmListFileLexer_Token_ArgumentQuoted, cmListFileLexer_Token_ArgumentBracket, cmListFileLexer_Token_CommentBracket, cmListFileLexer_Token_BadCharacter, cmListFileLexer_Token_BadBracket, cmListFileLexer_Token_BadString } cmListFileLexer_Type; /* NOLINTNEXTLINE(modernize-use-using) */ typedef struct cmListFileLexer_Token_s cmListFileLexer_Token; struct cmListFileLexer_Token_s { cmListFileLexer_Type type; char* text; int length; int line; int column; }; enum cmListFileLexer_BOM_e { cmListFileLexer_BOM_None, cmListFileLexer_BOM_Broken, cmListFileLexer_BOM_UTF8, cmListFileLexer_BOM_UTF16BE, cmListFileLexer_BOM_UTF16LE, cmListFileLexer_BOM_UTF32BE, cmListFileLexer_BOM_UTF32LE }; /* NOLINTNEXTLINE(modernize-use-using) */ typedef enum cmListFileLexer_BOM_e cmListFileLexer_BOM; /* NOLINTNEXTLINE(modernize-use-using) */ typedef struct cmListFileLexer_s cmListFileLexer; cmListFileLexer* cmListFileLexer_New(void); int cmListFileLexer_SetFileName(cmListFileLexer*, const char*, cmListFileLexer_BOM* bom); 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