Module: L43Peg::Combinators::Satisfy

Extended by:
Satisfy
Included in:
Satisfy
Defined in:
lib/l43_peg/combinators/satisfy.rb

Instance Method Summary collapse

Instance Method Details

#satisfy(parser, name: nil, fn: nil, &satisfier) ⇒ Object

Raises:

  • (ArgumentError)


6
7
8
9
10
11
12
13
# File 'lib/l43_peg/combinators/satisfy.rb', line 6

def satisfy(parser, name: nil, fn: nil, &satisfier)
  raise ArgumentError, "must not provide keyword parameter fn and a block" if fn && satisfier
  satisfier = fn || satisfier
  raise ArgumentError, "must provide one the keyword parameter fn: or a block" unless satisfier
  name ||= "satisfy(#{parser.name})"

  Parser.new(name) {|input, name=nil| _satisfy(input:, name:, parser:, satisfier:)}
end