cmake/Source/cmListFileLexer.h

66 lines
1.9 KiB
C
Raw Normal View History

2016-10-30 18:24:19 +01:00
/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
file Copyright.txt or https://cmake.org/licensing for details. */
#ifndef cmListFileLexer_h
#define cmListFileLexer_h
2016-07-09 11:21:54 +02:00
typedef enum cmListFileLexer_Type_e {
cmListFileLexer_Token_None,
2013-11-03 12:27:13 +02:00
cmListFileLexer_Token_Space,
cmListFileLexer_Token_Newline,
cmListFileLexer_Token_Identifier,
cmListFileLexer_Token_ParenLeft,
cmListFileLexer_Token_ParenRight,
cmListFileLexer_Token_ArgumentUnquoted,
cmListFileLexer_Token_ArgumentQuoted,
2014-08-03 19:52:23 +02:00
cmListFileLexer_Token_ArgumentBracket,
cmListFileLexer_Token_CommentBracket,
cmListFileLexer_Token_BadCharacter,
2014-08-03 19:52:23 +02:00
cmListFileLexer_Token_BadBracket,
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;
};
2014-08-03 19:52:23 +02:00
enum cmListFileLexer_BOM_e
{
cmListFileLexer_BOM_None,
2017-07-20 19:35:53 +02:00
cmListFileLexer_BOM_Broken,
2014-08-03 19:52:23 +02:00
cmListFileLexer_BOM_UTF8,
cmListFileLexer_BOM_UTF16BE,
cmListFileLexer_BOM_UTF16LE,
cmListFileLexer_BOM_UTF32BE,
cmListFileLexer_BOM_UTF32LE
};
typedef enum cmListFileLexer_BOM_e cmListFileLexer_BOM;
typedef struct cmListFileLexer_s cmListFileLexer;
#ifdef __cplusplus
2016-07-09 11:21:54 +02:00
extern "C" {
#endif
2017-04-14 19:02:05 +02:00
cmListFileLexer* cmListFileLexer_New(void);
2014-08-03 19:52:23 +02:00
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
#endif