Class: Yadriggy::EvalAll

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

Overview

A simple visitor.

Instance Method Summary collapse

Methods inherited from Eval

#array_ref_field, #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



78
79
80
81
# File 'lib/yadriggy/eval_all.rb', line 78

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

#assign(expr) ⇒ Object



54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/yadriggy/eval_all.rb', line 54

def assign(expr)
  if expr.right.is_a?(Array)
    expr.right.each {|e| evaluate(e) }
  else
    evaluate(expr.right)
  end
  if expr.left.is_a?(Array)
    expr.left.each {|e| evaluate(e) }
  else
    evaluate(expr.left)
  end
end

#begin_end(expr) ⇒ Object



116
117
118
119
# File 'lib/yadriggy/eval_all.rb', line 116

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



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

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

#break_out(expr) ⇒ Object



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

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

#call(expr) ⇒ Object



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

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

#class_def(expr) ⇒ Object



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

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

#conditional(expr) ⇒ Object



83
84
85
86
87
88
89
90
91
# File 'lib/yadriggy/eval_all.rb', line 83

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



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

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



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

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

#hash(expr) ⇒ Object



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

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

#loop(expr) ⇒ Object



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

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

#module_def(expr) ⇒ Object



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

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



157
158
159
# File 'lib/yadriggy/eval_all.rb', line 157

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

#rescue_end(expr) ⇒ Object



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

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

#return_values(expr) ⇒ Object



107
108
109
# File 'lib/yadriggy/eval_all.rb', line 107

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

#singular_class_def(expr) ⇒ Object



151
152
153
154
155
# File 'lib/yadriggy/eval_all.rb', line 151

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