Sha256: fda4961ffef86442455a360b9f25d2361470b2ca8443b977b860daa6713e836e

Contents?: true

Size: 611 Bytes

Versions: 2

Compression:

Stored size: 611 Bytes

Contents

# Names a match to influence tree construction. 
#
# Example: 
#
#   str('foo')            # will return 'foo', 
#   str('foo').as(:foo)   # will return :foo => 'foo'
#
class Parslet::Atoms::Named < Parslet::Atoms::Base
  attr_reader :parslet, :name
  def initialize(parslet, name)
    @parslet, @name = parslet, name
  end
  
  def apply(io)
    value = parslet.apply(io)
    
    produce_return_value value
  end
  
  def to_s_inner(prec)
    "#{name}:#{parslet.to_s(prec)}"
  end

  def error_tree
    parslet.error_tree
  end
private
  def produce_return_value(val)  
    { name => flatten(val) }
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
parslet-0.11.0 lib/parslet/atoms/named.rb
parslet-0.10.1 lib/parslet/atoms/named.rb