Class: LogicTools::NodeVar

Inherits:
Node
  • Object
show all
Defined in:
lib/logic_tools/logictree.rb

Overview

Represents a variable node.

Instance Attribute Summary collapse

Instance Method Summary collapse

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

#initialize(name) ⇒ NodeVar

Creates a node with variable name.



380
381
382
383
384
# File 'lib/logic_tools/logictree.rb', line 380

def initialize(name)
    @variable = Variable.get(name)
    # @sym = @variable.to_s.to_sym
    @sym = nil
end

Instance Attribute Details

#variableObject (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

#evalObject

Computes the value of the node.



400
401
402
# File 'lib/logic_tools/logictree.rb', line 400

def eval()
    return @variable.value
end

#get_variablesRecurseObject

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

#opObject

Gets the operator.

Default: +nil+ (none).


389
390
391
# File 'lib/logic_tools/logictree.rb', line 389

def op
    :variable
end

#to_sObject

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_symObject

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