add vool hashes

This commit is contained in:
Torsten Ruger
2017-04-02 10:57:39 +03:00
parent d5af6dad42
commit 93f9d16209
5 changed files with 63 additions and 0 deletions

View File

@ -71,6 +71,15 @@ module Vool
ArrayStatement.new expression.children.collect{ |elem| process(elem) }
end
def on_hash expression
hash = HashStatement.new
expression.children.each do |elem|
raise "Hash error, hash contains non pair: #{elem.type}" if elem.type != :pair
hash.add( process(elem.children[0]) , process(elem.children[1]) )
end
hash
end
def on_return statement
w = ReturnStatement.new()
w.return_value = process(statement.children.first)

View File

@ -0,0 +1,17 @@
module Vool
class HashStatement
attr_reader :hash
def initialize( )
@hash = {}
end
def add(key , value)
@hash[key] = value
end
def length
@hash.length
end
end
end