namespace support { class FileName; }
-class PushPopHelper;
-
/** A helper structure to describe a keyword for the Lexer.
- Usually used bundled in C style arrays and passed to the
+ Usually used bundled in C style arrays and passed to the
Lexer using a LexerKeywordTable object.
*/
struct LexerKeyword
/// returns a lex code
int lex();
- /// Read the next string, as delimited by double quotes or
- /// whitespace. If esc is true, then we remember that some chars
+ /// Read the next string, as delimited by double quotes or
+ /// whitespace. If esc is true, then we remember that some chars
/// might be escaped: \" at least.
bool next(bool esc = false);
/// split a word if it contains a backslash.
bool nextToken();
- /// Puts the rest of the line in the buffer, where it will
+ /// Puts the rest of the line in the buffer, where it will
/// be available via getString() or getDocString().
bool eatLine();
///
double getFloat() const;
///
- std::string const getString() const;
+ std::string const getString(bool trim = false) const;
///
- docstring const getDocString() const;
- /** Get a long string, ended by the tag `endtag'.
+ docstring const getDocString(bool trim = false) const;
+ /** Get a long string, ended by the tag `endtoken'.
This string can span several lines. The first line
serves as a template for how many spaces the lines
are indented. This much white space is skipped from
each following line. This mechanism does not work
perfectly if you use tabs.
*/
- std::string const getLongString(std::string const & endtag);
+ docstring getLongString(docstring const & endtoken);
/// Pushes a token list on a stack and replaces it with a new one.
template<int N> void pushTable(LexerKeyword (&table)[N])