class Astrapi::PrettyPrinter
Public Instance Methods
print(ast)
click to toggle source
# File lib/pretty_printer.rb, line 11 def print ast ast.accept(self) end
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