class Astrapi::PrettyPrinter

Public Instance Methods

print(ast) click to toggle source
visitArrayOf(arrayOf,args=nil) click to toggle source
# File lib/pretty_printer.rb, line 55
def visitArrayOf arrayOf,args=nil
  indent "visitArrayOf"
  str="#{arrayOf.type.name}[]"
  dedent
  return str
end
visitAttr(attr,args=nil) click to toggle source
# File lib/pretty_printer.rb, line 41
def visitAttr attr,args=nil
  indent "visitAttr"
  type=attr.type.accept(self)
  str="attr #{attr.name} => #{type}"
  dedent
  str
end
visitIdentifier(id,args=nil) click to toggle source
# File lib/pretty_printer.rb, line 62
def visitIdentifier id,args=nil
  indent "visitIdentifier"
  dedent
end
visitKlass(klass,args=nil) click to toggle source
# File lib/pretty_printer.rb, line 28
def visitKlass klass,args=nil
  indent "visitKlass"
  code = Code.new
  inherit="< #{klass.inheritance}" if klass.inheritance
  code << "class #{klass.name} #{inherit}"
  code.indent=2
  klass.attrs.each{|attr| code << attr.accept(self)}
  code.indent=0
  code << "end"
  dedent
  code
end
visitModule(modul,args=nil) click to toggle source
# File lib/pretty_printer.rb, line 15
def visitModule modul,args=nil
  indent "visitModule"
  code=Code.new
  code << "module #{name=modul.name}"
  code.newline
  code.indent=2
  modul.classes.each{|k| code << k.accept(self) ; code.newline}
  code.indent=0
  code << "end"
  dedent
  return code
end
visitType(type,args=nil) click to toggle source
# File lib/pretty_printer.rb, line 49
def visitType type,args=nil
  indent "visitType"
  dedent
  return type.name.to_s
end