52 mutable bool use_lookahead;
55 const optional<token_t::kind_t>& expecting = none)
const {
57 use_lookahead =
false;
59 lookahead.
next(in, tflags);
61 if (expecting && lookahead.kind != *expecting)
62 lookahead.expected(*expecting);
67 void push_token(
const token_t& tok)
const {
68 assert(&tok == &lookahead);
72 void push_token()
const {
76 ptr_op_t parse_value_term(std::istream& in,
78 ptr_op_t parse_call_expr(std::istream& in,
80 ptr_op_t parse_dot_expr(std::istream& in,
82 ptr_op_t parse_unary_expr(std::istream& in,
84 ptr_op_t parse_mul_expr(std::istream& in,
86 ptr_op_t parse_add_expr(std::istream& in,
88 ptr_op_t parse_logic_expr(std::istream& in,
90 ptr_op_t parse_and_expr(std::istream& in,
92 ptr_op_t parse_or_expr(std::istream& in,
94 ptr_op_t parse_querycolon_expr(std::istream& in,
96 ptr_op_t parse_comma_expr(std::istream& in,
98 ptr_op_t parse_lambda_expr(std::istream& in,
100 ptr_op_t parse_assign_expr(std::istream& in,
102 ptr_op_t parse_value_expr(std::istream& in,
115 const optional<string>& original_string = boost::none);