class Pione::Lang::RuleTable

RuleTable is a table for recording rule names and rule definitions.

Public Instance Methods

evaluate_value(env, expr) click to toggle source

Evaluate table value, but we get the referent recuirsively if the value is a referential rule expression.

# File lib/pione/lang/environment.rb, line 143
def evaluate_value(env, expr)
  if expr.is_a?(RuleExpr)
    definition = get(env, env.setup_package_id(expr))
    definition.set(param_sets: definition.param_sets.merge(expr.param_sets))
  else
    expr
  end
end
make_reference(package_id, name) click to toggle source

Make a rule expression as a reference.

# File lib/pione/lang/environment.rb, line 153
def make_reference(package_id, name)
  RuleExpr.new(name, package_id)
end