diff options
| author | Matthew Hall <hallmatthew314@gmail.com> | 2023-03-19 23:02:29 +1300 |
|---|---|---|
| committer | Matthew Hall <hallmatthew314@gmail.com> | 2023-03-19 23:02:29 +1300 |
| commit | 9734fa2d530b9496b70a388a117ea57fe5730772 (patch) | |
| tree | 78a42db1e64e5148edfa96cb2a451a17ef362485 /src/__OLD_parcom/satisfy.cr | |
| parent | 2ef8841e9c7a48eea0f66cfe09d8fe996f43c2b2 (diff) | |
Remove old files
Diffstat (limited to 'src/__OLD_parcom/satisfy.cr')
| -rw-r--r-- | src/__OLD_parcom/satisfy.cr | 33 |
1 files changed, 0 insertions, 33 deletions
diff --git a/src/__OLD_parcom/satisfy.cr b/src/__OLD_parcom/satisfy.cr deleted file mode 100644 index 9734635..0000000 --- a/src/__OLD_parcom/satisfy.cr +++ /dev/null @@ -1,33 +0,0 @@ -require "./parser.cr" -require "./any_token.cr" -require "./assert.cr" - -module Parcom - # `Satisfy` is a `Parser` that parses a single token - # if that token passes a predefined test, similar - # to `Assert`. This class is effectively a shorthand - # for the following: - # ``` - # # These parsers are equivalent. - # letter_assert = Assert.new(AnyToken(Char).new) { |x| x.letter? } - # letter_satisfy = Satisfy(Char).new { |x| x.letter? } - # ``` - class Satisfy(T) < Parser(T, T) - @p : Assert(T, T) - - # Accepts the `Bool`-returning block containing the test - # to run on the parsed token. - def initialize(&block : T -> Bool) - @p = AnyToken(T).new.assert(&block) - end - - # Returns the first token of the input if that - # token passes the test. - def parse(tokens : Tokens(T)) : Result(T, T) - @p.parse(tokens) - rescue ex : ParserFail - raise ParserFail.new("Satisfy: #{ex.message}") - end - end -end - |
