@syms = Symtable.new
@funcs = { toplevel: { freevars: [], code: StringIO.new } }
@protos = StringIO.new
- @protos.print "Value "
- defs.each do |k,v|
- @syms[k] = :toplevel
- @protos.print "#{k}, "
- end
- @protos.puts "_;"
+ @protos.puts "Value #{defs.keys.join(", ")};"
exprs.each {|e| emit(e) }
end
end
def dump
- pp @syms
+ #pp @syms
puts @protos.string
end
defs, exprs = parse.toplevel
# Print the definition prototypes
-print "Value "
-defs.each {|k,v| print "#{k.to_s}, " }
-puts "_;"
-
-puts exprs
+#puts "Value #{defs.keys.join(", ")};"
+#puts exprs
#puts exprs
-#gen = CodeGenerator.new(defs, exprs)
-#gen.dump
+gen = CodeGenerator.new(defs, exprs)
+gen.dump
123.0
"foo"
a = 1
+
#[1,2,3]
#{ "foo": 123, 42: 24 }
#
## functions and application
#println("foo!")
#print(1,2,3,4,5,6,7,8,9)
+
foo1 = fun(a)
println("hi!")
end