Class: Wongi::Engine::Token
- Inherits:
-
Object
- Object
- Wongi::Engine::Token
- Includes:
- CoreExt
- Defined in:
- lib/wongi-engine/token.rb
Direct Known Subclasses
Instance Attribute Summary collapse
-
#children ⇒ Object
readonly
Returns the value of attribute children.
-
#generated_wmes ⇒ Object
readonly
Returns the value of attribute generated_wmes.
-
#ncc_results ⇒ Object
readonly
Returns the value of attribute ncc_results.
-
#neg_join_results ⇒ Object
readonly
Returns the value of attribute neg_join_results.
-
#node ⇒ Object
Returns the value of attribute node.
-
#opt_join_results ⇒ Object
readonly
Returns the value of attribute opt_join_results.
-
#owner ⇒ Object
Returns the value of attribute owner.
-
#parent ⇒ Object
readonly
Returns the value of attribute parent.
-
#wme ⇒ Object
readonly
Returns the value of attribute wme.
Instance Method Summary collapse
- #[](var) ⇒ Object
- #ancestors ⇒ Object
- #assignments ⇒ Object
- #delete ⇒ Object
- #delete_children ⇒ Object
- #deleted? ⇒ Boolean
- #generated?(wme) ⇒ Boolean
-
#initialize(token, wme, assignments) ⇒ Token
constructor
A new instance of Token.
- #subst(variable, value) ⇒ Object
- #to_s ⇒ Object
- #wmes ⇒ Object
Methods included from CoreExt
Constructor Details
#initialize(token, wme, assignments) ⇒ Token
Returns a new instance of Token.
15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/wongi-engine/token.rb', line 15 def initialize token, wme, assignments @parent, @wme, @assignments = token, wme, assignments @children = [] @deleted = false @neg_join_results = [] @opt_join_results = [] @ncc_results = [] @generated_wmes = [] token.children << self if token wme.tokens << self if wme end |
Instance Attribute Details
#children ⇒ Object (readonly)
Returns the value of attribute children.
7 8 9 |
# File 'lib/wongi-engine/token.rb', line 7 def children @children end |
#generated_wmes ⇒ Object (readonly)
Returns the value of attribute generated_wmes.
12 13 14 |
# File 'lib/wongi-engine/token.rb', line 12 def generated_wmes @generated_wmes end |
#ncc_results ⇒ Object (readonly)
Returns the value of attribute ncc_results.
11 12 13 |
# File 'lib/wongi-engine/token.rb', line 11 def ncc_results @ncc_results end |
#neg_join_results ⇒ Object (readonly)
Returns the value of attribute neg_join_results.
9 10 11 |
# File 'lib/wongi-engine/token.rb', line 9 def neg_join_results @neg_join_results end |
#node ⇒ Object
Returns the value of attribute node.
8 9 10 |
# File 'lib/wongi-engine/token.rb', line 8 def node @node end |
#opt_join_results ⇒ Object (readonly)
Returns the value of attribute opt_join_results.
10 11 12 |
# File 'lib/wongi-engine/token.rb', line 10 def opt_join_results @opt_join_results end |
#owner ⇒ Object
Returns the value of attribute owner.
8 9 10 |
# File 'lib/wongi-engine/token.rb', line 8 def owner @owner end |
#parent ⇒ Object (readonly)
Returns the value of attribute parent.
7 8 9 |
# File 'lib/wongi-engine/token.rb', line 7 def parent @parent end |
#wme ⇒ Object (readonly)
Returns the value of attribute wme.
7 8 9 |
# File 'lib/wongi-engine/token.rb', line 7 def wme @wme end |
Instance Method Details
#[](var) ⇒ Object
46 47 48 |
# File 'lib/wongi-engine/token.rb', line 46 def [] var assignments[ var ] end |
#ancestors ⇒ Object
27 28 29 30 31 32 33 |
# File 'lib/wongi-engine/token.rb', line 27 def ancestors if parent parent.ancestors.unshift parent else [] end end |
#assignments ⇒ Object
42 43 44 |
# File 'lib/wongi-engine/token.rb', line 42 def assignments @cached_assignments ||= all_assignments end |
#delete ⇒ Object
65 66 67 68 69 70 71 72 73 74 |
# File 'lib/wongi-engine/token.rb', line 65 def delete delete_children #@node.tokens.delete self unless @node.kind_of?( NccPartner ) @wme.tokens.delete self if @wme @parent.children.delete self if @parent retract_generated @deleted = true @node.delete_token self end |
#delete_children ⇒ Object
80 81 82 83 84 |
# File 'lib/wongi-engine/token.rb', line 80 def delete_children while @children.first @children.first.delete end end |
#deleted? ⇒ Boolean
76 77 78 |
# File 'lib/wongi-engine/token.rb', line 76 def deleted? @deleted end |
#generated?(wme) ⇒ Boolean
86 87 88 89 |
# File 'lib/wongi-engine/token.rb', line 86 def generated? wme return true if generated_wmes.any? { |w| w == wme } return children.any? { |t| t.generated? wme } end |
#subst(variable, value) ⇒ Object
35 36 37 38 39 40 |
# File 'lib/wongi-engine/token.rb', line 35 def subst variable, value @cached_assignments = nil if @assignments.has_key? variable @assignments[ variable ] = value end end |
#to_s ⇒ Object
50 51 52 53 54 55 |
# File 'lib/wongi-engine/token.rb', line 50 def to_s str = "TOKEN [ " all_assignments.each_pair { |key, value| str << "#{key} => #{value} " } str << "]" str end |
#wmes ⇒ Object
57 58 59 60 61 62 63 |
# File 'lib/wongi-engine/token.rb', line 57 def wmes if parent parent.wmes + (wme ? [wme] : []) else wme ? [wme] : [] end end |