class RedParse::ListInNode::ClassNode

Public Class Methods

new(classword,name,semi,body,rescues, else_, ensure_, endword) click to toggle source
# File lib/redparse/node.rb, line 5109
def initialize(classword,name,semi,body,rescues, else_, ensure_, endword)
  @offset=classword.offset
  if OpNode===name
    name,op,parent=*name
    op=="<" or fail "invalid superclass expression: #{name}"
  end
  else_=else_.val if else_
  ensure_=ensure_.val if ensure_
  rescues.extend ListInNode if rescues
  super(name,parent,body,rescues,else_,ensure_)
end

Public Instance Methods

image() click to toggle source
# File lib/redparse/node.rb, line 5125
def image; "(class #{name})" end
parsetree(o) click to toggle source
# File lib/redparse/node.rb, line 5145
      def parsetree(o)
        name=name()
        if VarNode===name
          name=name.ident.to_sym
        elsif name.nil? #do nothing
#        elsif o[:quirks]
#          name=name.constant.ident.to_sym
        else 
          name=name.parsetree(o)
        end
        result=[:class, name, parent&&parent.parsetree(o), scope=[:scope,]]
        scope << parsetree_and_rescues(o) if body
        return result
      end
to_lisp() click to toggle source
# File lib/redparse/node.rb, line 5137
def to_lisp
  result="(class #{name.to_lisp} "
  result+="is #{parent.to_lisp} " if parent
 
  result+="\n"+body.to_lisp+")"
  return result
end
unparse(o=default_unparse_options) click to toggle source
# File lib/redparse/node.rb, line 5127
def unparse o=default_unparse_options
  result="class #{name.unparse o}"
  result+=" < #{parent.unparse o}" if parent
  result+=unparse_nl(body||self,o)+
            unparse_and_rescues(o)+
          unparse_nl(endline,o)+
          "end"
  return result
end