class LogicAnalyzer
Attributes
conclusion[RW]
proposition[RW]
sentences[RW]
Public Class Methods
new(*args)
click to toggle source
# File lib/logic_analyzer.rb, line 10 def initialize(*args) self.sentences = [] unless args.empty? args.each do |sentence| sentences.append("(#{sentence})") end end end
Public Instance Methods
add_conclusion(conclusion)
click to toggle source
# File lib/logic_analyzer.rb, line 24 def add_conclusion(conclusion) self.conclusion = "(#{conclusion})" end
add_sentence(sentence)
click to toggle source
# File lib/logic_analyzer.rb, line 20 def add_sentence(sentence) sentences.append("(#{sentence})") end
evaluate()
click to toggle source
# File lib/logic_analyzer.rb, line 28 def evaluate parse prop = Proposition.new(proposition) prop.parse prop.evaluate end
parse()
click to toggle source
# File lib/logic_analyzer.rb, line 37 def parse if sentences.empty? raise ArgumentError 'Cannot evaluate with no propositions' elsif sentences.size == 1 self.proposition = sentences[0] else self.proposition = if conclusion.nil? sentences.join(' and ') else "(#{sentences.join(' and ')}) then #{conclusion}" end end end