Class: TDParser::CompositeParser
Direct Known Subclasses
ActionParser, ChoiceParser, ConcatParser, IterationParser, LabelParser, NegativeParser, ParallelParser, StackParser
Instance Attribute Summary collapse
-
#parsers ⇒ Object
Returns the value of attribute parsers.
Instance Method Summary collapse
- #==(r) ⇒ Object
-
#initialize(*parsers, &b) ⇒ CompositeParser
constructor
A new instance of CompositeParser.
- #optimize(default = false) ⇒ Object
- #same?(r) ⇒ Boolean
- #to_s ⇒ Object
Methods inherited from Parser
#%, #*, #+, #-, #/, #>, #>>, #call, #do, #parse, #peek, #to_proc, #|, #~@
Methods included from TDParser
#any_rule, #backref, #chainl, #chainr, #condition_rule, define, #empty_rule, #fail_rule, #leftrec, #none_rule, #rightrec, #rule, #stackref, #state, #token
Methods included from BufferUtils
Constructor Details
#initialize(*parsers, &b) ⇒ CompositeParser
Returns a new instance of CompositeParser.
269 270 271 |
# File 'lib/tdp.rb', line 269 def initialize(*parsers, &b) @parsers = parsers end |
Instance Attribute Details
#parsers ⇒ Object
Returns the value of attribute parsers.
267 268 269 |
# File 'lib/tdp.rb', line 267 def parsers @parsers end |
Instance Method Details
#==(r) ⇒ Object
279 280 281 282 |
# File 'lib/tdp.rb', line 279 def ==(r) (self.class == r.class) && (@parsers == r.parsers) end |
#optimize(default = false) ⇒ Object
273 274 275 276 277 |
# File 'lib/tdp.rb', line 273 def optimize(default=false) parser = dup() parser.parsers = @parsers.collect{|x| x.optimize(default)} parser end |
#same?(r) ⇒ Boolean
284 285 286 287 |
# File 'lib/tdp.rb', line 284 def same?(r) super(r) && @parsers.zip(r.parsers).all?{|x,y| x.same?(y)} end |
#to_s ⇒ Object
289 290 291 |
# File 'lib/tdp.rb', line 289 def to_s() "<composite: #{@parsers.collect{|x| x.to_s()}}>" end |