class Dentaku::AST::If
Attributes
left[R]
predicate[R]
right[R]
Public Class Methods
max_param_count()
click to toggle source
# File lib/dentaku/ast/functions/if.rb, line 12 def self.max_param_count 3 end
min_param_count()
click to toggle source
# File lib/dentaku/ast/functions/if.rb, line 8 def self.min_param_count 3 end
new(predicate, left, right)
click to toggle source
# File lib/dentaku/ast/functions/if.rb, line 16 def initialize(predicate, left, right) @predicate = predicate @left = left @right = right end
Public Instance Methods
args()
click to toggle source
# File lib/dentaku/ast/functions/if.rb, line 22 def args [predicate, left, right] end
dependencies(context = {})
click to toggle source
# File lib/dentaku/ast/functions/if.rb, line 38 def dependencies(context = {}) predicate.value(context) ? left.dependencies(context) : right.dependencies(context) rescue Dentaku::Error, Dentaku::ArgumentError, Dentaku::ZeroDivisionError args.flat_map { |arg| arg.dependencies(context) }.uniq end
node_type()
click to toggle source
# File lib/dentaku/ast/functions/if.rb, line 30 def node_type :condition end
type()
click to toggle source
# File lib/dentaku/ast/functions/if.rb, line 34 def type left.type end
value(context = {})
click to toggle source
# File lib/dentaku/ast/functions/if.rb, line 26 def value(context = {}) predicate.value(context) ? left.value(context) : right.value(context) end