summaryrefslogtreecommitdiff
path: root/src/parser.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/parser.h')
-rw-r--r--src/parser.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/parser.h b/src/parser.h
index 9a65765d..09e12d95 100644
--- a/src/parser.h
+++ b/src/parser.h
@@ -53,11 +53,15 @@ class expr_t::parser_t : public noncopyable
mutable bool use_lookahead;
token_t& next_token(std::istream& in, const parse_flags_t& tflags,
- const char expecting = '\0') const {
+ const optional<token_t::kind_t>& expecting = none) const {
if (use_lookahead)
use_lookahead = false;
else
- lookahead.next(in, tflags, expecting);
+ lookahead.next(in, tflags);
+
+ if (expecting && lookahead.kind != *expecting)
+ lookahead.expected(*expecting);
+
return lookahead;
}