class RedParse::ListInNode::ClassNode
Public Class Methods
new(classword,name,semi,body,rescues, else_, ensure_, endword)
click to toggle source
Calls superclass method
RedParse::ListInNode::NamespaceNode::new
# 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