class Unparser::Emitter::Repetition

Emitter for while and until nodes

Constants

MAP

Private Instance Methods

dispatch() click to toggle source
# File lib/unparser/emitter/repetition.rb, line 39
def dispatch
  if postcontrol?
    emit_postcontrol
  else
    emit_normal
  end
end
emit_keyword() click to toggle source
# File lib/unparser/emitter/repetition.rb, line 51
def emit_keyword
  write(MAP.fetch(node.type), ' ')
end
emit_normal() click to toggle source
# File lib/unparser/emitter/repetition.rb, line 55
def emit_normal
  emit_keyword
  visit(condition)
  if body
    emit_body(body)
  else
    nl
  end
  k_end
end
emit_postcontrol() click to toggle source
# File lib/unparser/emitter/repetition.rb, line 66
def emit_postcontrol
  visit(body)
  ws
  emit_keyword
  visit(condition)
end
postcontrol?() click to toggle source
# File lib/unparser/emitter/repetition.rb, line 47
def postcontrol?
  body && local_variable_scope.first_assignment_in?(body, condition)
end