Class: LogicTools::NodeVar
Overview
Represents a variable node.
Instance Attribute Summary collapse
-
#variable ⇒ Object
readonly
The variable held by the node.
Instance Method Summary collapse
-
#==(node) ⇒ Object
Compares with
node. -
#eval ⇒ Object
Computes the value of the node.
-
#get_variablesRecurse ⇒ Object
Gets the variables, recursively, without postprocessing.
-
#initialize(name) ⇒ NodeVar
constructor
Creates a node with variable
name. -
#op ⇒ Object
Gets the operator.
-
#to_s ⇒ Object
Converts to a string.
-
#to_sym ⇒ Object
Converts to a symbol.
Methods inherited from Node
#cover?, #distribute, #each, #each_line, #each_maxterm, #each_minterm, #eql?, #flatten, #flatten_deep, #get_variables, #hash, #include?, #inspect, #is_parent?, #reduce, #simplify, #size, #to_cover, #to_std_conjunctive, #to_std_disjunctive, #to_sum_product
Constructor Details
Instance Attribute Details
#variable ⇒ Object (readonly)
The variable held by the node.
377 378 379 |
# File 'lib/logic_tools/logictree.rb', line 377 def variable @variable end |
Instance Method Details
#==(node) ⇒ Object
Compares with node.
418 419 420 421 |
# File 'lib/logic_tools/logictree.rb', line 418 def ==(node) # :nodoc: return false unless node.is_a?(NodeVar) return self.variable == node.variable end |
#eval ⇒ Object
Computes the value of the node.
400 401 402 |
# File 'lib/logic_tools/logictree.rb', line 400 def eval() return @variable.value end |
#get_variablesRecurse ⇒ Object
Gets the variables, recursively, without postprocessing.
Returns the variables into sets of arrays with possible doublon
413 414 415 |
# File 'lib/logic_tools/logictree.rb', line 413 def get_variablesRecurse() # :nodoc: return [ @variable ] end |
#op ⇒ Object
Gets the operator.
Default: +nil+ (none).
389 390 391 |
# File 'lib/logic_tools/logictree.rb', line 389 def op :variable end |
#to_s ⇒ Object
Converts to a string.
424 425 426 427 428 429 430 |
# File 'lib/logic_tools/logictree.rb', line 424 def to_s # :nodoc: result = variable.to_s # Variables using more than one character are parenthesized # to avoid confunsion with the AND operator. result = "{" + result + "}" if (result.size > 1) return result end |
#to_sym ⇒ Object
Converts to a symbol.
405 406 407 408 |
# File 'lib/logic_tools/logictree.rb', line 405 def to_sym # :nodoc: @sym = @variable.to_s.to_sym unless @sym return @sym end |