Class: Kaiseki::MultiParser

Inherits:
BasicParser show all
Defined in:
lib/parser_multi.rb

Direct Known Subclasses

ChoiceParser, SequenceParser

Instance Attribute Summary

Attributes inherited from BasicParser

#expected

Instance Method Summary collapse

Methods inherited from BasicParser

#eql?

Methods included from Parseable

#&, #action, #and?, #cast, #filter, #list, #merge, #not!, #one_or_more, #optional, #override, #parse, #predicate?, #protect, #repeat, #set, #skip, #tag_error, #tag_result, #to_parseable, #validate, #zero_or_more, #|

Constructor Details

#initialize(*parsers) ⇒ MultiParser

Returns a new instance of MultiParser.



3
4
5
# File 'lib/parser_multi.rb', line 3

def initialize *parsers
	@expected = parsers.collect {|n| n.to_parseable }
end

Instance Method Details

#append(parseable) ⇒ Object



7
8
9
10
# File 'lib/parser_multi.rb', line 7

def append parseable
	@expected << parseable.to_parseable
	self
end

#delimiterObject



12
13
14
# File 'lib/parser_multi.rb', line 12

def delimiter
	'--'
end

#to_sObject



16
17
18
19
20
21
22
# File 'lib/parser_multi.rb', line 16

def to_s
	if @expected.empty?
		'(empty)'
	else
		@expected.join ' ' + delimiter + ' '
	end
end