Class: Many

Inherits:
Combinator show all
Defined in:
lib/hivemind/combinators.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Combinator

#&, #|

Constructor Details

#initialize(parser, as: nil) ⇒ Many

Returns a new instance of Many.



88
89
90
# File 'lib/hivemind/combinators.rb', line 88

def initialize(parser, as: nil)
  @parser = parser
end

Instance Attribute Details

#parserObject

Returns the value of attribute parser.



86
87
88
# File 'lib/hivemind/combinators.rb', line 86

def parser
  @parser
end

Instance Method Details

#parse(input, refs) ⇒ Object



92
93
94
95
96
97
98
99
100
101
# File 'lib/hivemind/combinators.rb', line 92

def parse(input, refs)
  success = true
  remaining = input
  results = []
  while success
    success, result, remaining = @parser.parse(remaining, refs)
    results.push(result) if success
  end
  [true, results, remaining]
end