Sha256: 5ef14a1d550cf83b25248de570188bbfaa28d108e49040824928d01e89c3a9a4
Contents?: true
Size: 942 Bytes
Versions: 6
Compression:
Stored size: 942 Bytes
Contents
module PLang class PObject attr_accessor :type attr_accessor :params def initialize(type, params) @type = type @params = params end def ==(obj) if @type == obj.type @params.each_with_index do |param, i| unless param == obj.params[i] return false end end return true else return false end end def form case @type when :integer, :decimal, :boolean, :char, :string [:literal, @type, @params[0]] else [:object, @type, @params.collect(&:form)] end end def to_s case @type when :integer, :decimal, :boolean @params[0] when :string "\"#{@params[0]}\"" when :char "\'#{@params[0]}\'" else "{#{@type}: #{@params.collect(&:to_s).join(",")}}" end end end end
Version data entries
6 entries across 6 versions & 1 rubygems
Version | Path |
---|---|
p-lang-0.1.1 | lib/vm/pobject.rb |
p-lang-0.1.0 | lib/vm/pobject.rb |
p-lang-0.0.4 | lib/vm/pobject.rb |
p-lang-0.0.3 | lib/vm/pobject.rb |
p-lang-0.0.2 | lib/vm/pobject.rb |
p-lang-0.0.1 | lib/vm/pobject.rb |