class Parslet::Atoms::Named

Names a match to influence tree construction.

Example:

str('foo')            # will return 'foo',
str('foo').as(:foo)   # will return :foo => 'foo'

Attributes

name[R]
parslet[R]

Public Class Methods

new(parslet, name) click to toggle source
Calls superclass method
# File lib/parslet/atoms/named.rb, line 10
def initialize(parslet, name)
  super()

  @parslet, @name = parslet, name
end

Public Instance Methods

accept(visitor) click to toggle source

Call back visitors visit_named method. See parslet/export for an example.

# File lib/parslet/atoms/visitor.rb, line 33
def accept(visitor)
  visitor.visit_named(name, parslet)
end
apply(source, context, consume_all) click to toggle source
# File lib/parslet/atoms/named.rb, line 16
def apply(source, context, consume_all)
  success, value = result = parslet.apply(source, context, consume_all)

  return result unless success
  succ(
    produce_return_value(
      value))
end
to_s_inner(prec) click to toggle source
# File lib/parslet/atoms/named.rb, line 25
def to_s_inner(prec)
  "#{name}:#{parslet.to_s(prec)}"
end

Private Instance Methods

produce_return_value(val) click to toggle source
# File lib/parslet/atoms/named.rb, line 29
def produce_return_value(val)
  { name => flatten(val, true) }
end