# File lib/parslet/accelerator/application.rb, line 10 def call @atom.accept(self) end
# File lib/parslet/accelerator/application.rb, line 44 def transform atom @rules.each do |expr, action| # Try and match each rule in turn binding = Parslet::Accelerator.match(atom, expr) if binding # On a successful match, allow the rule action to transform the # parslet into something new. ctx = Parslet::Context.new(binding) return ctx.instance_eval(&action) end end # rules.each # If no rule matches, this is the fallback - a clean new parslet atom. return atom end
# File lib/parslet/accelerator/application.rb, line 26 def visit_alternative(alternatives) transform Parslet::Atoms::Alternative.new( *alternatives.map { |atom| atom.accept(self) }) end
# File lib/parslet/accelerator/application.rb, line 17 def visit_entity(name, block) transform Parslet::Atoms::Entity.new(name) { block.call.accept(self) } end
# File lib/parslet/accelerator/application.rb, line 34 def visit_lookahead(positive, atom) transform Parslet::Atoms::Lookahead.new(atom, positive) end
# File lib/parslet/accelerator/application.rb, line 20 def visit_named(name, atom) transform Parslet::Atoms::Named.new(atom.accept(self), name) end
# File lib/parslet/accelerator/application.rb, line 14 def visit_parser(root) transform root.accept(self) end
# File lib/parslet/accelerator/application.rb, line 37 def visit_re(regexp) transform Parslet::Atoms::Re.new(regexp) end
# File lib/parslet/accelerator/application.rb, line 23 def visit_repetition(tag, min, max, atom) transform Parslet::Atoms::Repetition.new(atom.accept(self), min, max, tag) end
Generated with the Darkfish Rdoc Generator 2.