Class: Wongi::Engine::AssumingClause

Inherits:
Object
  • Object
show all
Defined in:
lib/wongi-engine/dsl/assuming.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(base_rule_name) ⇒ AssumingClause

Returns a new instance of AssumingClause.



11
12
13
# File 'lib/wongi-engine/dsl/assuming.rb', line 11

def initialize(base_rule_name)
  @base_rule_name = base_rule_name
end

Instance Attribute Details

#base_rule_nameObject (readonly)

Returns the value of attribute base_rule_name.



9
10
11
# File 'lib/wongi-engine/dsl/assuming.rb', line 9

def base_rule_name
  @base_rule_name
end

Instance Method Details

#compile(context) ⇒ Object

Raises:



15
16
17
18
19
20
21
22
# File 'lib/wongi-engine/dsl/assuming.rb', line 15

def compile(context)
  base_production = context.rete.productions[base_rule_name]
  raise UndefinedBaseRule, base_rule_name unless base_production
  raise DefinitionError, "'assuming' cannot be preceded by other matchers" unless context.node.root?
  raise StandardError, "missing base context" unless base_production.compilation_context

  base_production.compilation_context.dup
end