Commit 12b7e5e1 authored by Dominik Charousset's avatar Dominik Charousset

Clarify semantics of consume functions

(cherry picked from commit 2cf81be9)
parent 583e4dca
...@@ -91,7 +91,8 @@ struct parser_state { ...@@ -91,7 +91,8 @@ struct parser_state {
c = next(); c = next();
} }
/// Tries to read `x` as the next character (skips any whitespaces). /// Tries to read `x` as the next character, automatically skipping leading
/// whitespaces.
bool consume(char x) noexcept { bool consume(char x) noexcept {
skip_whitespaces(); skip_whitespaces();
if (current() == x) { if (current() == x) {
...@@ -101,9 +102,9 @@ struct parser_state { ...@@ -101,9 +102,9 @@ struct parser_state {
return false; return false;
} }
/// Consumes the next character if it satisfies given predicate (skips any /// Consumes the next character if it satisfies given predicate, automatically
/// whitespaces). /// skipping leading whitespaces.
template<class Predicate> template <class Predicate>
bool consume_if(Predicate predicate) noexcept { bool consume_if(Predicate predicate) noexcept {
skip_whitespaces(); skip_whitespaces();
if (predicate(current())) { if (predicate(current())) {
...@@ -113,7 +114,8 @@ struct parser_state { ...@@ -113,7 +114,8 @@ struct parser_state {
return false; return false;
} }
/// Tries to read `x` as the next character, not allowing any whitespaces. /// Tries to read `x` as the next character without automatically skipping
/// leading whitespaces.
bool consume_strict(char x) noexcept { bool consume_strict(char x) noexcept {
if (current() == x) { if (current() == x) {
next(); next();
...@@ -122,9 +124,9 @@ struct parser_state { ...@@ -122,9 +124,9 @@ struct parser_state {
return false; return false;
} }
/// Consumes the next character if it satisfies given predicate, not allowing /// Consumes the next character if it satisfies given predicate without
/// any whitespaces. /// automatically skipping leading whitespaces.
template<class Predicate> template <class Predicate>
bool consume_strict_if(Predicate predicate) noexcept { bool consume_strict_if(Predicate predicate) noexcept {
if (predicate(current())) { if (predicate(current())) {
next(); next();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment