a good stab at array anf hash constants

This commit is contained in:
Torsten Ruger
2014-05-12 21:36:38 +03:00
parent 25a7c3ea68
commit fdb5dd4f67
14 changed files with 126 additions and 24 deletions

View File

@ -0,0 +1,39 @@
module Ast
class ArrayExpression < Expression
attr_reader :values
def initialize vals
@values = vals
end
def inspect
self.class.name + ".new(" + values.to_s+ ")"
end
def compile context
to.do
end
def attributes
[:values]
end
end
class AssociationExpression < Expression
attr_reader :key , :value
def initialize key , value
@key , @value = key , value
end
def inspect
self.class.name + ".new(" + key.inspect + " , " + value.inspect + ")"
end
def compile context
to.do
end
def attributes
[:key , :value]
end
end
class HashExpression < ArrayExpression
def compile context
to.do
end
end
end

View File

@ -15,9 +15,6 @@ module Ast
def compile context
raise "abstract #{self}"
end
def inspectt
self.class.name + ".new(" + self.attributes.collect{|m| self.send(m).inspect }.join( ",") +")"
end
def attributes
raise "abstract #{self}"
end
@ -36,6 +33,7 @@ module Ast
end
require_relative "basic_expressions"
require_relative "compound_expressions"
require_relative "conditional_expression"
require_relative "while_expression"
require_relative "function_expression"