class Yadriggy::EvalAll

A simple visitor.

Public Instance Methods

array(expr) click to toggle source
# File lib/yadriggy/eval_all.rb, line 30
def array(expr)
  expr.elements.each {|e| evaluate(e) }
end
array_ref(expr) click to toggle source
# File lib/yadriggy/eval_all.rb, line 78
def array_ref(expr)
  evaluate(expr.array)
  expr.indexes.each {|e| evaluate(e) }
end
assign(expr) click to toggle source
# 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) click to toggle source
# File lib/yadriggy/eval_all.rb, line 116
def begin_end(expr)
  evaluate(expr.body)
  evaluate(expr.rescue)
end
binary(expr) click to toggle source
# File lib/yadriggy/eval_all.rb, line 49
def binary(expr)
  evaluate(expr.left)
  evaluate(expr.right)
end
block(expr) click to toggle source
# File lib/yadriggy/eval_all.rb, line 111
def block(expr)
  parameters(expr)
  evaluate(expr.body)
end
break_out(expr) click to toggle source
# File lib/yadriggy/eval_all.rb, line 103
def break_out(expr)
  expr.values.each {|e| evaluate(e) }
end
call(expr) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# File lib/yadriggy/eval_all.rb, line 40
def const_path_ref(expr)
  evaluate(expr.scope)
  evaluate(expr.name)
end
define(expr) click to toggle source

def

# 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) click to toggle source

expressions, or progn in Lisp.

# File lib/yadriggy/eval_all.rb, line 22
def exprs(expr)
  expr.expressions.each {|e| evaluate(e) }
end
for_loop(expr) click to toggle source
# File lib/yadriggy/eval_all.rb, line 98
def for_loop(expr)
  evaluate(expr.set)
  evaluate(expr.body)
end
hash(expr) click to toggle source
# File lib/yadriggy/eval_all.rb, line 67
def hash(expr)
  expr.pairs.each {|p| p.each {|e| evaluate(e) }}
end
loop(expr) click to toggle source
# File lib/yadriggy/eval_all.rb, line 93
def loop(expr)
  evaluate(expr.cond)
  evaluate(expr.body)
end
module_def(expr) click to toggle source
# File lib/yadriggy/eval_all.rb, line 138
def module_def(expr)
  evaluate(expr.name)
  evaluate(expr.body)
  evaluate(expr.rescue)
end
name(expr) click to toggle source
# File lib/yadriggy/eval_all.rb, line 12
def name(expr) end
nil_value(expr) click to toggle source
# File lib/yadriggy/eval_all.rb, line 10
def nil_value(expr) end
number(expr) click to toggle source
# File lib/yadriggy/eval_all.rb, line 18
def number(expr) end
paren(expr) click to toggle source
# File lib/yadriggy/eval_all.rb, line 26
def paren(expr)
  evaluate(expr.expression)
end
program(expr) click to toggle source
# File lib/yadriggy/eval_all.rb, line 157
def program(expr)
  evaluate(expr.elements)
end
rescue_end(expr) click to toggle source
# 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) click to toggle source
# File lib/yadriggy/eval_all.rb, line 107
def return_values(expr)
  expr.values.each {|e| evaluate(e) }
end
singular_class_def(expr) click to toggle source
# 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) click to toggle source
# File lib/yadriggy/eval_all.rb, line 34
def string_interpolation(expr)
  expr.contents.each {|e| evaluate(e) }
end
string_literal(expr) click to toggle source
# File lib/yadriggy/eval_all.rb, line 38
def string_literal(expr) end
super_method(expr) click to toggle source
# File lib/yadriggy/eval_all.rb, line 16
def super_method(expr) end
symbol(expr) click to toggle source
# File lib/yadriggy/eval_all.rb, line 14
def symbol(expr) end
unary(expr) click to toggle source
# File lib/yadriggy/eval_all.rb, line 45
def unary(expr)
  evaluate(expr.operand)
end

Private Instance Methods

parameters(expr) click to toggle source
# File lib/yadriggy/eval_all.rb, line 162
def parameters(expr)
  expr.params.each {|e| evaluate(e) }
  expr.optionals.each {|p| p.each {|e| evaluate(e) }}
  evaluate(expr.rest_of_params)
  expr.params_after_rest.each {|e| evaluate(e) }
  expr.keywords.each {|e| evaluate(e[0]); evaluate(e[1]) }
  evaluate(expr.rest_of_keywords)
  evaluate(expr.block_param)
end