diff options
Diffstat (limited to 'src/parcom.cr')
| -rw-r--r-- | src/parcom.cr | 21 |
1 files changed, 0 insertions, 21 deletions
diff --git a/src/parcom.cr b/src/parcom.cr index 4f35420..b6e6c3b 100644 --- a/src/parcom.cr +++ b/src/parcom.cr @@ -81,27 +81,6 @@ module Parcom end end - class Sequence(T, V) < Parser(T, Array(V)) - def initialize(@ps : Iterable(Parser(T, V))) - end - - # TODO: this can probably be optimised more for Arrays - # TODO: might be better to use #zip - def parse(tokens : Tokens(T)) : Result(T, Array(V)) - parsed = [] of V - - @ps.each do |p| - r = p.parse(tokens) - parsed << r.value - tokens = r.tokens - end - - Result.new(tokens, parsed) - rescue ex : ParserFail - raise ParserFail.new("Sequence: #{ex.message}") - end - end - class TokenSeq(T) < Parser(T, Array(T)) @p : Sequence(T, T) |
