Class: Pione::Lang::ActionRuleDeclaration

Inherits:
RuleDeclaration show all
Defined in:
lib/pione/lang/declaration.rb

Instance Method Summary collapse

Methods inherited from Declaration

#eval!, inherited

Methods included from Util::Positionable

#line_and_column, #pos, #set_source_position

Instance Method Details

#eval(env) ⇒ Object



295
296
297
298
299
300
301
302
303
304
305
306
307
# File 'lib/pione/lang/declaration.rb', line 295

def eval(env)
  rules = get_reference(env, expr, RuleExprSequence)
  rules.pieces.each do |piece|
    ref = piece.set(package_id: get_package_id(env, piece))

    definition = ActionRuleDefinition.new(
      rule_condition_context: condition_context,
      action_context: action_context
    )

    env.rule_set(ref, definition)
  end
end