class Pione::Lang::RuleBindingDeclaration
RuleBindingDeclaration
is a declaration for rule binding stentences.
Public Instance Methods
eval(env)
click to toggle source
Update rule table with the rule name and reference definition. e.g. “rule A := B”
# File lib/pione/lang/declaration.rb, line 177 def eval(env) # rule name refs = get_reference(env, expr1, RuleExprSequence) refs.pieces.each do |ref| referents = expr2.eval!(env) referents.pieces.each do |referent| # merge param sets definition = env.rule_get_value(referent) param_sets = definition.param_sets.merge(referent.param_sets) _referent = referent.set(param_sets: param_sets) # update rule table env.rule_set(ref, _referent) end end end