Class: Reggae::PrettyPrinter
- Defined in:
- lib/reggae/pretty_printer.rb
Instance Method Summary collapse
- #dec ⇒ Object
- #inc(str = nil) ⇒ Object
-
#initialize ⇒ PrettyPrinter
constructor
A new instance of PrettyPrinter.
- #say(str) ⇒ Object
- #visit(mm) ⇒ Object
- #visitBit(bit, args = nil) ⇒ Object
- #visitBitfield(bitfield, args = nil) ⇒ Object
- #visitBus(bus, args = nil) ⇒ Object
- #visitMemoryMap(mm, args = nil) ⇒ Object
- #visitParameters(params, args = nil) ⇒ Object
- #visitRange(range, args = nil) ⇒ Object
- #visitRegister(reg, args = nil) ⇒ Object
- #visitSubzone(zone, args = nil) ⇒ Object
- #visitZone(zone, args = nil) ⇒ Object
Constructor Details
#initialize ⇒ PrettyPrinter
Returns a new instance of PrettyPrinter.
7 8 9 |
# File 'lib/reggae/pretty_printer.rb', line 7 def initialize @indent=-2 end |
Instance Method Details
#dec ⇒ Object
16 17 18 |
# File 'lib/reggae/pretty_printer.rb', line 16 def dec @indent-=2 end |
#inc(str = nil) ⇒ Object
11 12 13 14 |
# File 'lib/reggae/pretty_printer.rb', line 11 def inc str=nil say(str) if str @indent+=2 end |
#say(str) ⇒ Object
20 21 22 |
# File 'lib/reggae/pretty_printer.rb', line 20 def say str puts " "*@indent+str.to_s end |
#visit(mm) ⇒ Object
24 25 26 27 28 |
# File 'lib/reggae/pretty_printer.rb', line 24 def visit mm inc mm.accept(self,nil) dec end |
#visitBit(bit, args = nil) ⇒ Object
88 89 90 91 92 93 94 95 |
# File 'lib/reggae/pretty_printer.rb', line 88 def visitBit bit,args=nil inc "Bit" say bit.position say bit.name say bit.purpose say bit.toggle dec end |
#visitBitfield(bitfield, args = nil) ⇒ Object
97 98 99 100 101 102 103 104 |
# File 'lib/reggae/pretty_printer.rb', line 97 def visitBitfield bitfield,args=nil inc "Bitfield" say bitfield.position say bitfield.name say bitfield.purpose say bitfield.toggle dec end |
#visitBus(bus, args = nil) ⇒ Object
45 46 47 48 49 50 51 |
# File 'lib/reggae/pretty_printer.rb', line 45 def visitBus bus,args=nil inc "Bus" say bus.frequency say bus.address_size say bus.data_size dec end |
#visitMemoryMap(mm, args = nil) ⇒ Object
30 31 32 33 34 35 36 |
# File 'lib/reggae/pretty_printer.rb', line 30 def visitMemoryMap mm,args=nil inc "MemoryMap" say mm.name mm.parameters.accept(self,nil) mm.zones.each{|zone| zone.accept(self,nil)} dec end |
#visitParameters(params, args = nil) ⇒ Object
38 39 40 41 42 43 |
# File 'lib/reggae/pretty_printer.rb', line 38 def visitParameters params,args=nil inc "Parameters" params.bus.accept(self,nil) params.range.accept(self,nil) dec end |
#visitRange(range, args = nil) ⇒ Object
53 54 55 56 57 58 |
# File 'lib/reggae/pretty_printer.rb', line 53 def visitRange range,args=nil inc "Range" say range.from say range.to dec end |
#visitRegister(reg, args = nil) ⇒ Object
77 78 79 80 81 82 83 84 85 86 |
# File 'lib/reggae/pretty_printer.rb', line 77 def visitRegister reg,args=nil inc "Register" say reg.name say reg.address say reg.init reg.bits.each{|bit| bit.accept(self)} reg.bitfields.each{|bitfield| bitfield.accept(self)} dec end |
#visitSubzone(zone, args = nil) ⇒ Object
69 70 71 72 73 74 75 |
# File 'lib/reggae/pretty_printer.rb', line 69 def visitSubzone zone,args=nil inc "Subzone" say zone.name zone.range.accept(self) zone.registers.each{|reg| reg.accept(self)} dec end |
#visitZone(zone, args = nil) ⇒ Object
60 61 62 63 64 65 66 67 |
# File 'lib/reggae/pretty_printer.rb', line 60 def visitZone zone,args=nil inc "Zone" say zone.name zone.range.accept(self) zone.registers.each{|reg| reg.accept(self)} zone.subzones.each{|subzone| subzone.accept(self)} dec end |