Module: L43Peg::Combinators::Map
Instance Method Summary collapse
Instance Method Details
#map(parser, name: nil, fn: nil, box: nil, &mapper) ⇒ Object
6 7 8 9 10 11 12 |
# File 'lib/l43_peg/combinators/map.rb', line 6 def map(parser, name: nil, fn: nil, box: nil, &mapper) raise ArgumentError, "must not provide keyword parameter fn and a block" if fn && mapper mapper = fn || mapper raise ArgumentError, "must provide one of the keyword parameters [fn:, box:] or a block" unless mapper || box mapper ||= :itself Parser.new(name || "map(#{parser.name})") {|input, name=nil| _map(input:, name:, parser:, box:, mapper:)} end |