module Rsec::Parser

parser base

Attributes

name[RW]

Public Instance Methods

inspect() click to toggle source
# File lib/rsec/parser.rb, line 24
def inspect
  # TODO move

  @name ||= self.class.to_s[/\w+$/]
  case self
  when Lazy
    "<#{name}>"
  when Binary
    "<#{name} #{left.inspect} #{right.inspect}>"
  when Seq, Seq_, Branch
    # don't use redefined map!

    res = []
    each{|e| res << e.inspect}
    "<#{name} #{res.join ' '}>"
  when Unary
    "<#{name} #{some.inspect}>"
  else
    "<#{name}>"
  end
end
parse(str, source_name='source') click to toggle source

parses string<br/> returns nil if unparsed

# File lib/rsec/parser.rb, line 7
def parse str, source_name='source'
  ctx = ParseContext.new str, source_name
  _parse ctx
end
parse!(str, source_name='source') click to toggle source

almost the same as parse<br/> but raises SyntaxError

# File lib/rsec/parser.rb, line 14
def parse! str, source_name='source'
  ctx = ParseContext.new str, source_name
  ret = _parse ctx
  if INVALID[ret]
    raise ctx.generate_error source_name
  end
  ret
end