Class: Reggae::Visitor
- Inherits:
-
Object
show all
- Defined in:
- lib/reggae/visitor.rb
Instance Method Summary
collapse
Constructor Details
#initialize(options = {}) ⇒ Visitor
Returns a new instance of Visitor.
7
8
9
|
# File 'lib/reggae/visitor.rb', line 7
def initialize options={}
@indent=-2
end
|
Instance Method Details
#dec ⇒ Object
16
17
18
|
# File 'lib/reggae/visitor.rb', line 16
def dec
@indent-=2
end
|
#inc(str = nil) ⇒ Object
11
12
13
14
|
# File 'lib/reggae/visitor.rb', line 11
def inc str=nil
say(str) if str
@indent+=2
end
|
#say(str) ⇒ Object
20
21
22
|
# File 'lib/reggae/visitor.rb', line 20
def say str
puts " "*@indent+str.to_s if @verbose
end
|
#visit(mm) ⇒ Object
24
25
26
27
28
|
# File 'lib/reggae/visitor.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/visitor.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/visitor.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/visitor.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/visitor.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/visitor.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/visitor.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/visitor.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/visitor.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/visitor.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
|