visit_alternative(alternatives)
click to toggle source
def visit_alternative(alternatives)
'(' <<
alternatives.
map { |el| el.accept(self) }.
join(' | ') <<
')'
end
visit_entity(name, block)
click to toggle source
def visit_entity(name, block)
context.deferred(name, block)
"(#{context.mangle_name(name)})"
end
visit_lookahead(positive, bound_parslet)
click to toggle source
def visit_lookahead(positive, bound_parslet)
(positive ? '&' : '!') <<
bound_parslet.accept(self)
end
visit_named(name, parslet)
click to toggle source
def visit_named(name, parslet)
parslet.accept(self)
end
visit_re(match)
click to toggle source
def visit_re(match)
match.to_s
end
visit_repetition(tag, min, max, parslet)
click to toggle source
def visit_repetition(tag, min, max, parslet)
parslet.accept(self) << "#{min}*#{max}"
end
visit_sequence(parslets)
click to toggle source
def visit_sequence(parslets)
'(' <<
parslets.
map { |el| el.accept(self) }.
join(' ') <<
')'
end
visit_str(str)
click to toggle source
def visit_str(str)
"\"#{str.inspect[1..-2]}\""
end