std::string::const_iterator iter;
std::string::const_iterator source_end;
Location location;
+ bool progress_mark;
bool allow_preprocess;
bool suppress_line_advance;
std::string last_token;
void begin(const std::string &, const std::string &);
const std::string &peek_token(unsigned = 0);
const std::string &parse_token();
+ const std::string &get_last_token() const { return last_token; }
void expect(const std::string &);
void set_location(const Location &);
+ void clear_progress_mark() { progress_mark = false; }
+ bool get_progress_mark() const { return progress_mark; }
const Location &get_location() const { return location; }
private:
std::string parse_token_();