Sha256: b603e63db64e7c02a5ef1734e151d98578efa82d8d2e280dd6add5465facea95
Contents?: true
Size: 747 Bytes
Versions: 6
Compression:
Stored size: 747 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 node_type :condition 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
6 entries across 6 versions & 1 rubygems