diff --git a/lib/parfait/list.rb b/lib/parfait/list.rb index ff457752..15eef3cb 100644 --- a/lib/parfait/list.rb +++ b/lib/parfait/list.rb @@ -157,6 +157,17 @@ module Parfait padded_words( get_layout().get_length() + get_length() ) end + def inspect + ret = "" + index = 1 + while index <= self.get_length + item = get(index) + ret += item.inspect + ret += "," unless index == self.get_length + index = index + 1 + end + ret + end #many basic List functions can not be defined in ruby, such as # get/set/length/add/delete # so they must be defined as Methods in Builtin::Kernel diff --git a/lib/parfait/variable.rb b/lib/parfait/variable.rb index a66c0913..736f6d63 100644 --- a/lib/parfait/variable.rb +++ b/lib/parfait/variable.rb @@ -1,9 +1,19 @@ module Parfait class Variable < Object + def initialize type , name , value = nil - @type , @name , @value = type , name , value - @value = 0 if @type == :int and value == nil + raise "not type #{type}" unless type == :ref or type == :int + self.type , self.name , self.value = type , name , value + self.value = 0 if self.type == :int and value == nil + raise "must give name for variable" unless name end attributes [:type , :name, :value] + + def to_s + "Variable(#{self.type} ,#{self.name})" + end + def inspect + to_s + end end end