Class: Sexpir::Visitor

Inherits:
Object
  • Object
show all
Defined in:
lib/sexpir/visitor.rb

Direct Known Subclasses

Checker, RubyRTLGenerator, Transformer

Instance Method Summary collapse

Instance Method Details

#visitAssign(assign, args = nil) ⇒ Object



42
43
44
45
# File 'lib/sexpir/visitor.rb', line 42

def visitAssign assign,args=nil
  assign.lhs.accept(self)
  assign.rhs.accept(self)
end

#visitBinary(binary, args = nil) ⇒ Object



62
63
64
65
# File 'lib/sexpir/visitor.rb', line 62

def visitBinary binary,args=nil
  binary.lhs.accept(self)
  binary.rhs.accept(self)
end

#visitBody(body, args = nil) ⇒ Object



38
39
40
# File 'lib/sexpir/visitor.rb', line 38

def visitBody body,args=nil
  body.stmts.each{|stmt| stmt.accept(self)}
end

#visitCircuit(circuit, args = nil) ⇒ Object



5
6
7
8
9
10
11
# File 'lib/sexpir/visitor.rb', line 5

def visitCircuit circuit,args=nil
  circuit.name
  circuit.inputs.each{|input| input.accept(self)}
  circuit.outputs.each{|output| output.accept(self)}
  circuit.signals.each{|signal| signal.accept(self)}
  circuit.body.accept(self)
end

#visitComponent(component, args = nil) ⇒ Object



47
48
49
50
51
# File 'lib/sexpir/visitor.rb', line 47

def visitComponent component,args=nil
  name=component.name
  type=component.type
  "component #{name} => #{type}"
end

#visitConnect(connect, args = nil) ⇒ Object



53
54
55
56
# File 'lib/sexpir/visitor.rb', line 53

def visitConnect connect,args=nil
  connect.source
  connect.sink
end

#visitExpression(expr, args = nil) ⇒ Object



59
60
# File 'lib/sexpir/visitor.rb', line 59

def visitExpression expr,args=nil
end

#visitInput(input, args = nil) ⇒ Object



28
29
30
31
# File 'lib/sexpir/visitor.rb', line 28

def visitInput input,args=nil
  input.name
  input.type
end

#visitIo(io, args = nil) ⇒ Object



18
19
20
21
# File 'lib/sexpir/visitor.rb', line 18

def visitIo io,args=nil
  io.name
  io.type
end

#visitOutput(output, args = nil) ⇒ Object



33
34
35
36
# File 'lib/sexpir/visitor.rb', line 33

def visitOutput output,args=nil
  output.name
  output.type
end

#visitPort(port, args = nil) ⇒ Object



23
24
25
26
# File 'lib/sexpir/visitor.rb', line 23

def visitPort port,args=nil
  port.name
  port.type
end

#visitSignal(sig, args = nil) ⇒ Object



13
14
15
16
# File 'lib/sexpir/visitor.rb', line 13

def visitSignal sig,args=nil
  signal.name
  signal.type
end

#visitTerm(term, args = nil) ⇒ Object



67
68
69
# File 'lib/sexpir/visitor.rb', line 67

def visitTerm term,args=nil
  term
end

#visitVar(var, args = nil) ⇒ Object



71
72
73
# File 'lib/sexpir/visitor.rb', line 71

def visitVar var,args=nil
  var.name
end