Class: Neg::Parser::AlternativeParser

Inherits:
CompositeParser show all
Defined in:
lib/neg/parser.rb

Instance Method Summary collapse

Methods inherited from CompositeParser

#initialize

Methods inherited from SubParser

#*, #+, #-@, #[], #parse, #~

Constructor Details

This class inherits a constructor from Neg::Parser::CompositeParser

Instance Method Details

#do_parse(i) ⇒ Object



305
306
307
308
309
310
311
312
313
314
315
# File 'lib/neg/parser.rb', line 305

def do_parse(i)

  results = []

  @children.each { |c|
    results << c.parse(i)
    break if results.last[2]
  }

  [ results.last[2], nil, results ]
end

#to_s(parent = nil) ⇒ Object



317
318
319
320
# File 'lib/neg/parser.rb', line 317

def to_s(parent=nil)

  "(#{@children.collect { |c| c.to_s(self) }.join(' | ')})"
end

#|(pa) ⇒ Object



298
299
300
301
302
303
# File 'lib/neg/parser.rb', line 298

def |(pa)

  @children << pa

  self
end