11 #ifndef CAFU_TEXT_PARSER_HPP_INCLUDED
12 #define CAFU_TEXT_PARSER_HPP_INCLUDED
14 #include "Templates/Array.hpp"
39 TextParserT(
const char* Input, std::string Delims=
"",
bool IsFileName=
true,
const char CommentChar=
'\0');
57 void PutBack(
const std::string& Token);
91 std::string
SkipBlock(
const std::string& OpeningToken,
const std::string& ClosingToken,
bool CallerAlreadyReadOpeningToken);
108 std::string Delimiters;
109 char CommentInitChar;
110 unsigned long BeginOfToken;
111 unsigned long EndOfToken;
113 bool LastTokenWasQuoted;
115 bool IsCharInDelimiters(
const char c)
const;
unsigned long GetReadPosByte() const
Returns the current read position in the input file in byte.
Definition: TextParser.cpp:276
Error when parsing a text/file.
Definition: TextParser.hpp:26
bool WasLastTokenQuoted() const
Returns whether the last read "real" token was a "quoted" token.
Definition: TextParser.hpp:77
TextParserT(const char *Input, std::string Delims="", bool IsFileName=true, const char CommentChar='\0')
The constructor.
Definition: TextParser.cpp:16
std::string SkipBlock(const std::string &OpeningToken, const std::string &ClosingToken, bool CallerAlreadyReadOpeningToken)
Skips a whole "block" of tokens, e.g.
Definition: TextParser.cpp:245
void AssertAndSkipToken(const std::string &Token)
Makes sure that the next token is equal to Token.
Definition: TextParser.cpp:209
float GetReadPosPercent() const
Returns the current read position in the input file in percent.
Definition: TextParser.cpp:282
bool IsAtEOF() const
Returns whether the parser has reached the EOF or not.
Definition: TextParser.cpp:288
std::string SkipLine()
Skips tokens until the end of the current line of text.
Definition: TextParser.cpp:215
std::string GetNextToken()
Returns the next token.
Definition: TextParser.cpp:73
void PutBack(const std::string &Token)
Puts back the string Token, such that the next call to GetNextToken() returns Token.
Definition: TextParser.cpp:195
std::string PeekNextToken()
Returns a peek at the next token without reading over it.
Definition: TextParser.cpp:201
float GetNextTokenAsFloat()
Returns the next token as a float.
Definition: TextParser.cpp:176
int GetNextTokenAsInt()
Returns the next token as an int.
Definition: TextParser.cpp:165
This is a class for parsing text.
Definition: TextParser.hpp:21