Class: Yadriggy::EvalAll

Inherits:
Eval
  • Object
show all
Defined in:
lib/yadriggy/eval_all.rb

Overview

A simple visitor.

Direct Known Subclasses

ASTnode::GetLocation

Instance Method Summary collapse

Methods inherited from Eval

#array_ref_field, #assign, #astree, #being_end, #command, #const, #const_path_field, #dots, #evaluate, #global_variable, #identifier, #identifier_or_call, #instance_variable, #label, #lambda_expr, #reserved, #variable_call

Instance Method Details

#array(expr) ⇒ Object



30
31
32
# File 'lib/yadriggy/eval_all.rb', line 30

def array(expr)
  expr.elements.each {|e| evaluate(e) }
end

#array_ref(expr) ⇒ Object



65
66
67
68
# File 'lib/yadriggy/eval_all.rb', line 65

def array_ref(expr)
  evaluate(expr.array)
  expr.indexes.each {|e| evaluate(e) }
end

#begin_end(expr) ⇒ Object



103
104
105
106
# File 'lib/yadriggy/eval_all.rb', line 103

def begin_end(expr)
  evaluate(expr.body)
  evaluate(expr.rescue)
end

#binary(expr) ⇒ Object



49
50
51
52
# File 'lib/yadriggy/eval_all.rb', line 49

def binary(expr)
  evaluate(expr.left)
  evaluate(expr.right)
end

#block(expr) ⇒ Object



98
99
100
101
# File 'lib/yadriggy/eval_all.rb', line 98

def block(expr)
  parameters(expr)
  evaluate(expr.body)
end

#break_out(expr) ⇒ Object



90
91
92
# File 'lib/yadriggy/eval_all.rb', line 90

def break_out(expr)
  expr.values.each {|e| evaluate(e) }
end

#call(expr) ⇒ Object



58
59
60
61
62
63
# File 'lib/yadriggy/eval_all.rb', line 58

def call(expr)
  evaluate(expr.receiver)
  expr.args.each {|e| evaluate(e) }
  evaluate(expr.block_arg)
  evaluate(expr.block)
end

#class_def(expr) ⇒ Object



131
132
133
134
135
136
# File 'lib/yadriggy/eval_all.rb', line 131

def class_def(expr)
  evaluate(expr.name)
  evaluate(expr.superclass)
  evaluate(expr.body)
  evaluate(expr.rescue)
end

#conditional(expr) ⇒ Object



70
71
72
73
74
75
76
77
78
# File 'lib/yadriggy/eval_all.rb', line 70

def conditional(expr)
  evaluate(expr.cond)
  evaluate(expr.then)
  expr.all_elsif.each do |e|
    evaluate(e[0])  # condition
    evaluate(e[1])  # elsif body
  end
  evaluate(expr.else) unless expr.else.nil?
end

#const_path_ref(expr) ⇒ Object



40
41
42
43
# File 'lib/yadriggy/eval_all.rb', line 40

def const_path_ref(expr)
  evaluate(expr.scope)
  evaluate(expr.name)
end

#define(expr) ⇒ Object

def



110
111
112
113
114
115
116
# File 'lib/yadriggy/eval_all.rb', line 110

def define(expr)
  evaluate(expr.singular)
  evaluate(expr.name)
  parameters(expr)
  evaluate(expr.body)
  evaluate(expr.rescue)
end

#exprs(expr) ⇒ Object

expressions, or progn in Lisp.



22
23
24
# File 'lib/yadriggy/eval_all.rb', line 22

def exprs(expr)
  expr.expressions.each {|e| evaluate(e) }
end

#for_loop(expr) ⇒ Object



85
86
87
88
# File 'lib/yadriggy/eval_all.rb', line 85

def for_loop(expr)
  evaluate(expr.set)
  evaluate(expr.body)
end

#hash(expr) ⇒ Object



54
55
56
# File 'lib/yadriggy/eval_all.rb', line 54

def hash(expr)
  expr.pairs.each {|p| p.each {|e| evaluate(e) }}
end

#loop(expr) ⇒ Object



80
81
82
83
# File 'lib/yadriggy/eval_all.rb', line 80

def loop(expr)
  evaluate(expr.cond)
  evaluate(expr.body)
end

#module_def(expr) ⇒ Object



125
126
127
128
129
# File 'lib/yadriggy/eval_all.rb', line 125

def module_def(expr)
  evaluate(expr.name)
  evaluate(expr.body)
  evaluate(expr.rescue)
end

#name(expr) ⇒ Object



12
# File 'lib/yadriggy/eval_all.rb', line 12

def name(expr) end

#nil_value(expr) ⇒ Object



10
# File 'lib/yadriggy/eval_all.rb', line 10

def nil_value(expr) end

#number(expr) ⇒ Object



18
# File 'lib/yadriggy/eval_all.rb', line 18

def number(expr) end

#paren(expr) ⇒ Object



26
27
28
# File 'lib/yadriggy/eval_all.rb', line 26

def paren(expr)
  evaluate(expr.expression)
end

#program(expr) ⇒ Object



144
145
146
# File 'lib/yadriggy/eval_all.rb', line 144

def program(expr)
  evaluate(expr.elements)
end

#rescue_end(expr) ⇒ Object



118
119
120
121
122
123
# File 'lib/yadriggy/eval_all.rb', line 118

def rescue_end(expr)
  evaluate(expr.body)
  evaluate(expr.nested_rescue)
  evaluate(expr.else)
  evaluate(expr.ensure)
end

#return_values(expr) ⇒ Object



94
95
96
# File 'lib/yadriggy/eval_all.rb', line 94

def return_values(expr)
  expr.values.each {|e| evaluate(e) }
end

#singular_class_def(expr) ⇒ Object



138
139
140
141
142
# File 'lib/yadriggy/eval_all.rb', line 138

def singular_class_def(expr)
  evaluate(expr.name)
  evaluate(expr.body)
  evaluate(expr.rescue)
end

#string_interpolation(expr) ⇒ Object



34
35
36
# File 'lib/yadriggy/eval_all.rb', line 34

def string_interpolation(expr)
  expr.contents.each {|e| evaluate(e) }
end

#string_literal(expr) ⇒ Object



38
# File 'lib/yadriggy/eval_all.rb', line 38

def string_literal(expr) end

#super_method(expr) ⇒ Object



16
# File 'lib/yadriggy/eval_all.rb', line 16

def super_method(expr) end

#symbol(expr) ⇒ Object



14
# File 'lib/yadriggy/eval_all.rb', line 14

def symbol(expr) end

#unary(expr) ⇒ Object



45
46
47
# File 'lib/yadriggy/eval_all.rb', line 45

def unary(expr)
  evaluate(expr.operand)
end