class MetaCL::DSL::Expression
Attributes
tree[R]
Public Class Methods
construct(program, &block)
click to toggle source
# File lib/metacl/dsl/expression.rb, line 25 def self.construct(program, &block) Expression.new(program, &block).tree end
new(program, &block)
click to toggle source
# File lib/metacl/dsl/expression.rb, line 6 def initialize(program, &block) @program = program @tree = instance_eval(&block) end
Public Instance Methods
method_missing(name, *args)
click to toggle source
# File lib/metacl/dsl/expression.rb, line 19 def method_missing(name, *args) sub_expression = @program.resources.expressions_hash[name.to_sym] substitution = sub_expression.args.map.with_index { |param, index| [param, args[index]] }.to_h sub_expression.root_node.get_tree_with_substitution(substitution) end
mul(index, from, to, expression)
click to toggle source
# File lib/metacl/dsl/expression.rb, line 15 def mul(index, from, to, expression) Logic::Node.new :aggregator, expression, nil, index: index, from: from, to: to, type: :* end
sum(index, from, to, expression)
click to toggle source
# File lib/metacl/dsl/expression.rb, line 11 def sum(index, from, to, expression) Logic::Node.new :aggregator, expression, nil, index: index, from: from, to: to, type: :+ end