class SyntaxTree::YARV::Defined

def disasm(fmt)

def disasm(fmt)
  type_name =
    case type
    when TYPE_NIL
      "nil"
    when TYPE_IVAR
      "ivar"
    when TYPE_LVAR
      "lvar"
    when TYPE_GVAR
      "gvar"
    when TYPE_CVAR
      "cvar"
    when TYPE_CONST
      "const"
    when TYPE_METHOD
      "method"
    when TYPE_YIELD
      "yield"
    when TYPE_ZSUPER
      "zsuper"
    when TYPE_SELF
      "self"
    when TYPE_TRUE
      "true"
    when TYPE_FALSE
      "false"
    when TYPE_ASGN
      "asgn"
    when TYPE_EXPR
      "expr"
    when TYPE_REF
      "ref"
    when TYPE_FUNC
      "func"
    when TYPE_CONST_FROM
      "constant-from"
    end
  fmt.instruction(
    "defined",
    [type_name, fmt.object(name), fmt.object(message)]
  )
end