Class: Sfp::Variable
- Inherits:
-
Array
- Object
- Array
- Sfp::Variable
- Defined in:
- lib/sfp/sas_translator.rb
Overview
SAS Variable is a finite-domain variable It has a finite set of possible values
Instance Attribute Summary collapse
-
#goal ⇒ Object
Returns the value of attribute goal.
-
#id ⇒ Object
Returns the value of attribute id.
-
#init ⇒ Object
Returns the value of attribute init.
-
#is_final ⇒ Object
Returns the value of attribute is_final.
-
#is_primitive ⇒ Object
readonly
Returns the value of attribute is_primitive.
-
#isset ⇒ Object
Returns the value of attribute isset.
-
#layer ⇒ Object
Returns the value of attribute layer.
-
#mutable ⇒ Object
Returns the value of attribute mutable.
-
#name ⇒ Object
Returns the value of attribute name.
-
#type ⇒ Object
Returns the value of attribute type.
Instance Method Summary collapse
- #dump(stream, root) ⇒ Object
-
#initialize(name, type, layer = -1,, init = nil, goal = nil, is_final = false) ⇒ Variable
constructor
A new instance of Variable.
- #not(x) ⇒ Object
- #to_s ⇒ Object
-
#to_sas(root) ⇒ Object
return variable representation in SAS+ format.
Constructor Details
#initialize(name, type, layer = -1,, init = nil, goal = nil, is_final = false) ⇒ Variable
Returns a new instance of Variable.
1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 |
# File 'lib/sfp/sas_translator.rb', line 1863 def initialize(name, type, layer=-1, init=nil, goal=nil, is_final=false) @name = name @type = type @layer = layer @init = init @goal = goal @is_final = is_final @is_primitive = (type == '$.String' or type == '$.Integer' or type == '$.Boolean') @mutable = true end |
Instance Attribute Details
#goal ⇒ Object
Returns the value of attribute goal.
1860 1861 1862 |
# File 'lib/sfp/sas_translator.rb', line 1860 def goal @goal end |
#id ⇒ Object
Returns the value of attribute id.
1860 1861 1862 |
# File 'lib/sfp/sas_translator.rb', line 1860 def id @id end |
#init ⇒ Object
Returns the value of attribute init.
1860 1861 1862 |
# File 'lib/sfp/sas_translator.rb', line 1860 def init @init end |
#is_final ⇒ Object
Returns the value of attribute is_final.
1860 1861 1862 |
# File 'lib/sfp/sas_translator.rb', line 1860 def is_final @is_final end |
#is_primitive ⇒ Object (readonly)
Returns the value of attribute is_primitive.
1861 1862 1863 |
# File 'lib/sfp/sas_translator.rb', line 1861 def is_primitive @is_primitive end |
#isset ⇒ Object
Returns the value of attribute isset.
1860 1861 1862 |
# File 'lib/sfp/sas_translator.rb', line 1860 def isset @isset end |
#layer ⇒ Object
Returns the value of attribute layer.
1860 1861 1862 |
# File 'lib/sfp/sas_translator.rb', line 1860 def layer @layer end |
#mutable ⇒ Object
Returns the value of attribute mutable.
1860 1861 1862 |
# File 'lib/sfp/sas_translator.rb', line 1860 def mutable @mutable end |
#name ⇒ Object
Returns the value of attribute name.
1860 1861 1862 |
# File 'lib/sfp/sas_translator.rb', line 1860 def name @name end |
#type ⇒ Object
Returns the value of attribute type.
1860 1861 1862 |
# File 'lib/sfp/sas_translator.rb', line 1860 def type @type end |
Instance Method Details
#dump(stream, root) ⇒ Object
1901 1902 1903 1904 1905 1906 1907 1908 1909 |
# File 'lib/sfp/sas_translator.rb', line 1901 def dump(stream, root) stream.write "begin_variable\nvar_#{@id}#{@name}\n#{@layer}\n#{self.length}\n" self.each { |v| v = root.at?(v) if v.is_a?(String) and v.isref v = '"' + v + '"' if v.is_a?(String) stream.write (v.is_a?(Hash) ? (v.isnull ? "null\n" : "#{v.ref}\n") : "#{v}\n") } stream.write "end_variable\n" end |
#not(x) ⇒ Object
1911 1912 1913 |
# File 'lib/sfp/sas_translator.rb', line 1911 def not(x) self.select { |y| y != x } end |
#to_s ⇒ Object
1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 |
# File 'lib/sfp/sas_translator.rb', line 1874 def to_s s = @name.to_s + '|' + @type.to_s s << '|' s << (@init == nil ? '-' : (@init.is_a?(Hash) ? @init.tostring : @init.to_s)) s << '|' s << (@goal == nil ? '-' : (@goal.is_a?(Hash) ? @goal.tostring : @goal.to_s)) s << '|' s << (@is_final ? 'final' : 'notfinal') + "\n" s << "\t[" self.each { |v| s << (v.is_a?(Hash) ? v.tostring : v.to_s) + ',' } s = (self.length > 0 ? s.chop : s) s << "]" end |
#to_sas(root) ⇒ Object
return variable representation in SAS+ format
1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 |
# File 'lib/sfp/sas_translator.rb', line 1889 def to_sas(root) sas = "begin_variable\nvar_#{@id}#{@name}\n#{@layer}\n#{self.length}\n" self.each { |v| if v.is_a?(String) and v.isref v = root.at?(v) end v = '"' + v + '"' if v.is_a?(String) sas << (v.is_a?(Hash) ? (v.isnull ? "null\n" : "#{v.ref}\n") : "#{v}\n") } sas << "end_variable\n" end |