1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
# frozen_string_literal: true
module Unparser
class Emitter
# Base class for special match node emitters
class Match < self
# Emitter for match with local variable assignment
class Lvasgn < self
handle :match_with_lvasgn
children :regexp, :lvasgn
private
def dispatch
visit(regexp)
write(' =~ ')
visit(lvasgn)
end
end # Lvasgn
# Emitter for match current line
class CurrentLine < self
handle :match_current_line
children :regexp
private
def dispatch
visit(regexp)
end
end # CurrentLine
end # Match
end # Emitter
end # Unparser
|