Class: Sfp::Axiom
- Inherits:
-
Hash
- Object
- Hash
- Sfp::Axiom
- Defined in:
- lib/sfp/sas_translator.rb
Overview
A class for Grounded Axiom
Instance Attribute Summary collapse
-
#id ⇒ Object
Returns the value of attribute id.
-
#target ⇒ Object
Returns the value of attribute target.
Instance Method Summary collapse
-
#initialize ⇒ Axiom
constructor
A new instance of Axiom.
- #to_s ⇒ Object
- #to_sas(root, variables) ⇒ Object
Constructor Details
#initialize ⇒ Axiom
Returns a new instance of Axiom.
2127 2128 2129 |
# File 'lib/sfp/sas_translator.rb', line 2127 def initialize @id = Sfp::SasTranslator.next_axiom_id end |
Instance Attribute Details
#id ⇒ Object
Returns the value of attribute id.
2125 2126 2127 |
# File 'lib/sfp/sas_translator.rb', line 2125 def id @id end |
#target ⇒ Object
Returns the value of attribute target.
2125 2126 2127 |
# File 'lib/sfp/sas_translator.rb', line 2125 def target @target end |
Instance Method Details
#to_s ⇒ Object
2131 2132 2133 |
# File 'lib/sfp/sas_translator.rb', line 2131 def to_s return 'axiom#' + @id.to_s end |
#to_sas(root, variables) ⇒ Object
2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 |
# File 'lib/sfp/sas_translator.rb', line 2135 def to_sas(root, variables) prevails = select { |var,param| param.post.nil? } preposts = select { |var,param| !param.post.nil? } raise Exception, "Invalid axiom: total preposts > 1" if preposts.length > 1 raise Exception, "Invalid axiom: total preposts <= 0" if preposts.length <= 0 sas = "begin_rule" sas << "\n#{prevails.length}" prevails.each { |var,param| sas << "\n#{param.to_sas(root, variables)}" } preposts.each { |var,param| sas << "\n#{param.to_sas(root, variables)}" } sas << "\nend_rule" return sas end |