class Unparser::Emitter::Args

Arguments emitter

def emit_block_arguments

def emit_block_arguments
  delimited(normal_arguments)
  write(',') if normal_arguments.one? && n_arg?(normal_arguments.first)
  emit_shadowargs
end

def emit_def_arguments

def emit_def_arguments
  if children.one? && n_mlhs?(Util.one(children))
    emitter(Util.one(children)).dispatch_def
  else
    delimited(normal_arguments)
  end
end

def emit_lambda_arguments

def emit_lambda_arguments
  delimited(normal_arguments)
  emit_shadowargs
end

def emit_shadowargs

def emit_shadowargs
  return if shadowargs.empty?
  write('; ')
  delimited(shadowargs)
end

def normal_arguments

def normal_arguments
  children.reject(&method(:n_shadowarg?))
end

def shadowargs

def shadowargs
  children.select(&method(:n_shadowarg?))
end