class Parslet::Parser::Visitors::Citrus
Attributes
context[R]
output[R]
Public Class Methods
new(context)
click to toggle source
# File lib/parslet/export.rb, line 10 def initialize(context) @context = context end
Public Instance Methods
visit_alternative(alternatives)
click to toggle source
# File lib/parslet/export.rb, line 40 def visit_alternative(alternatives) '(' << alternatives. map { |el| el.accept(self) }. join(' | ') << ')' end
visit_entity(name, block)
click to toggle source
# File lib/parslet/export.rb, line 21 def visit_entity(name, block) context.deferred(name, block) "(#{context.mangle_name(name)})" end
visit_lookahead(positive, bound_parslet)
click to toggle source
# File lib/parslet/export.rb, line 48 def visit_lookahead(positive, bound_parslet) (positive ? '&' : '!') << bound_parslet.accept(self) end
visit_named(name, parslet)
click to toggle source
# File lib/parslet/export.rb, line 26 def visit_named(name, parslet) parslet.accept(self) end
visit_re(match)
click to toggle source
# File lib/parslet/export.rb, line 17 def visit_re(match) match.to_s end
visit_repetition(tag, min, max, parslet)
click to toggle source
# File lib/parslet/export.rb, line 37 def visit_repetition(tag, min, max, parslet) parslet.accept(self) << "#{min}*#{max}" end
visit_sequence(parslets)
click to toggle source
# File lib/parslet/export.rb, line 30 def visit_sequence(parslets) '(' << parslets. map { |el| el.accept(self) }. join(' ') << ')' end
visit_str(str)
click to toggle source
# File lib/parslet/export.rb, line 14 def visit_str(str) "\"#{str.inspect[1..-2]}\"" end