45class TCODLIB_API TCODLex {
50 const char** keywords,
51 const char* simpleComment=
"//",
52 const char* commentStart=
"/*",
53 const char* commentStop=
"*/",
54 const char* javadocCommentStart=
"/**",
55 const char* stringDelim=
"\"",
56 int flags=TCOD_LEX_FLAG_NESTING_COMMENT);
58 TCODLex(TCODLex&& rhs)
noexcept { std::swap(data, rhs.data); };
59 TCODLex& operator=(TCODLex&& rhs)
noexcept {
60 std::swap(data, rhs.data);
66 void setDataBuffer(
char* dat);
67 bool setDataFile(
const char* filename);
70 int parseUntil(
int tokenType);
71 int parseUntil(
const char* tokenValue);
73 bool expect(
int tokenType);
74 bool expect(
int tokenType,
const char* tokenValue);
76 void savepoint(TCODLex* savepoint);
77 void restore(TCODLex* savepoint);
78 char* getLastJavadoc();
82 return data->file_line;
86 return data->token_type;
90 return data->token_int_val;
94 return data->token_idx;
96 float getTokenFloatVal()
98 return data->token_float_val;
104 char getStringLastDelimiter()
106 return data->lastStringDelim;
109 {
return data->pos; }
116 return data->filename;
118 char* getLastJavadocComment()
120 return data->last_javadoc_comment;
122 static const char* getTokenName(
int tokenType)
124 return TCOD_lex_get_token_name(tokenType);
Internal tokenizer module.