Class: Wongi::Engine::NegTemplate

Inherits:
Template
  • Object
show all
Defined in:
lib/wongi-engine/template.rb

Instance Attribute Summary

Attributes inherited from Template

#filters, #object, #predicate, #subject, #time, #unsafe

Instance Method Summary collapse

Methods inherited from Template

#==, #===, #=~, #contains?, #hash, hash_for, #import_into, #initialize, #inspect, #root?, #to_s, variable?, #variables

Methods included from CoreExt

included

Constructor Details

This class inherits a constructor from Wongi::Engine::Template

Instance Method Details

#compile(context) ⇒ Object

:arg: context => Wongi::Rete::BetaNode::CompilationContext

Raises:



100
101
102
103
104
105
106
107
108
# File 'lib/wongi-engine/template.rb', line 100

def compile context
  tests, assignment = *JoinNode.compile( self, context.earlier, context.parameters )
  raise DefinitionError.new("Negative matches may not introduce new variables: #{assignment.variables}") unless assignment.root?
  alpha = context.rete.compile_alpha( self )
  context.node = context.node.neg_node( alpha, tests, context.alpha_deaf, unsafe )
  context.node.debug = debug?
  context.earlier << self
  context
end