Sha256: 54ac1a1aae37c863672b1b9e47ee145be5adc2b5c9e6174887f665d43a49c122
Contents?: true
Size: 693 Bytes
Versions: 12
Compression:
Stored size: 693 Bytes
Contents
require_relative '../function' module Dentaku module AST class If < Function attr_reader :predicate, :left, :right def initialize(predicate, left, right) @predicate = predicate @left = left @right = right end def value(context={}) predicate.value(context) ? left.value(context) : right.value(context) end def type left.type end def dependencies(context={}) # TODO : short-circuit? (predicate.dependencies(context) + left.dependencies(context) + right.dependencies(context)).uniq end end end end Dentaku::AST::Function.register_class(:if, Dentaku::AST::If)
Version data entries
12 entries across 12 versions & 1 rubygems