Skip to content

Commit 0960ad4

Browse files
committed
remove expecting()
1 parent 6235d6b commit 0960ad4

File tree

2 files changed

+0
-49
lines changed

2 files changed

+0
-49
lines changed

dot-parse/src/main/java/com/google/common/labs/parse/Parser.java

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@
2929
import java.util.concurrent.atomic.AtomicReference;
3030
import java.util.function.BiFunction;
3131
import java.util.function.Function;
32-
import java.util.function.Predicate;
3332
import java.util.function.Supplier;
3433
import java.util.function.UnaryOperator;
3534
import java.util.stream.Collector;
@@ -583,31 +582,6 @@ public final Parser<Optional<T>>.OrEmpty optional() {
583582
return map(Optional::ofNullable).new OrEmpty(Optional::empty);
584583
}
585584

586-
/**
587-
* Returns an equivalent parser that fails if the parser result doesn't satisfy the given {@code
588-
* predicate}. For example, you could use it to implement a parser for keywords:
589-
*
590-
* <pre>{@code
591-
* consecutive(ALPHA, "word").expecting(SUPPORTED_KEYWORDS::contains, "keyword")
592-
* }</pre>
593-
*/
594-
public final Parser<T> expecting(Predicate<? super T> predicate, String name) {
595-
requireNonNull(predicate);
596-
requireNonNull(name);
597-
Parser<T> self = this;
598-
return new Parser<>() {
599-
@Override MatchResult<T> skipAndMatch(
600-
Parser<?> skip, String input, int start, ErrorContext context) {
601-
var result = self.skipAndMatch(skip, input, start, context);
602-
return switch (result) {
603-
case MatchResult.Success<T> success when !predicate.test(success.value()) ->
604-
context.expecting(name, success.head());
605-
default -> result;
606-
};
607-
}
608-
};
609-
}
610-
611585
/**
612586
* Returns an equivalent parser that suppresses character skipping that's otherwise applied if
613587
* {@link #parseSkipping parseSkipping()} or {@link #parseToStreamSkipping parseToStreamSkipping()}

dot-parse/src/test/java/com/google/common/labs/parse/ParserTest.java

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1688,29 +1688,6 @@ public void notEmpty_twoOptionalParsers_bothFail_secondErrorIsFarther() {
16881688
assertThat(thrown).hasMessageThat().contains("at 1:6: expecting <!>, encountered [.]");
16891689
}
16901690

1691-
@Test
1692-
public void expecting_primaryParserFails() {
1693-
Parser<String> parser =
1694-
consecutive(DIGIT, "number").expecting(s -> s.length() > 1, "long number");
1695-
ParseException e = assertThrows(ParseException.class, () -> parser.parse("abc"));
1696-
assertThat(e).hasMessageThat().contains("expecting <number>, encountered [abc]");
1697-
}
1698-
1699-
@Test
1700-
public void expecting_predicateFails() {
1701-
Parser<?> parser =
1702-
consecutive(DIGIT, "number").expecting(s -> s.length() > 3, "long number").atLeastOnceDelimitedBy(",");
1703-
ParseException e = assertThrows(ParseException.class, () -> parser.parse("1234,5"));
1704-
assertThat(e).hasMessageThat().contains("at 1:6: expecting <long number>, encountered [5]");
1705-
}
1706-
1707-
@Test
1708-
public void expecting_succeeds() {
1709-
Parser<String> parser =
1710-
consecutive(DIGIT, "number").expecting(s -> s.length() > 1, "long number");
1711-
assertThat(parser.parse("123")).isEqualTo("123");
1712-
}
1713-
17141691
@Test
17151692
public void skipping_anyOfWithLiterally() {
17161693
Parser<String> parser = anyOf(string("foo"), literally(consecutive(DIGIT, "digit")));

0 commit comments

Comments
 (0)