Class: Astrapi::Visitor

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

Direct Known Subclasses

Checker

Constant Summary

Constants included from Indent

Indent::INDENT

Instance Method Summary collapse

Methods included from Indent

#dedent, #indent, #say

Instance Method Details

#visit(ast) ⇒ Object



11
12
13
# File 'lib/visitor.rb', line 11

def visit ast
  ast.accept(self)
end

#visitArrayOf(arrayOf, args = nil) ⇒ Object



40
41
42
43
44
# File 'lib/visitor.rb', line 40

def visitArrayOf arrayOf,args=nil
  indent "visitArrayOf"
  arrayOf.type.accept(self)
  dedent
end

#visitAttr(attr, args = nil) ⇒ Object



29
30
31
32
33
34
# File 'lib/visitor.rb', line 29

def visitAttr attr,args=nil
  indent "visitAttr"
  attr.name.accept(self)
  attr.type.accept(self)
  dedent
end

#visitIdentifier(id, args = nil) ⇒ Object



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

def visitIdentifier id,args=nil
  indent "visitIdentifier"
  say " - #{id.sym}"
  dedent
end

#visitKlass(klass, args = nil) ⇒ Object



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

def visitKlass klass,args=nil
  indent "visitKlass #{klass.name.sym}"
  klass.inheritance.accept(self)
  klass.attrs.each{|attr| attr.accept(self)}
  dedent
end

#visitModule(modul, args = nil) ⇒ Object



15
16
17
18
19
20
# File 'lib/visitor.rb', line 15

def visitModule modul,args=nil
  indent "visitModule"
  name=modul.name.accept(self)
  modul.classes.each{|k| k.accept(self)}
  dedent
end

#visitType(type, args = nil) ⇒ Object



36
37
38
# File 'lib/visitor.rb', line 36

def visitType type,args=nil
  indent "visitType"
end