From: Michael D. Lowis Date: Wed, 24 Jun 2020 03:32:55 +0000 (-0400) Subject: checkin cleanup X-Git-Url: https://git.mdlowis.com/?a=commitdiff_plain;h=5caddd0055a460daf4871f8244902ab8222711b1;p=proto%2Fsclpl-rb.git checkin cleanup --- diff --git a/dyn.rb b/dyn.rb index 6204d2e..240c0e7 100755 --- a/dyn.rb +++ b/dyn.rb @@ -333,120 +333,6 @@ module TypeChecker end end - - - - - - - - - - - - - - - - - - - - - - - -#BuiltinSyms = {} -# -#class Symtable -# def initialize -# @builtins = BuiltinSyms -# @scopes = [{}] -# end -# -# def []=(k,v) -# @scopes.last[k] = v -# end -# -# def [](k) -# (@scopes.map{|h| h[k] }.compact.last || BuiltinSyms[k]) -# end -# -# def scope_start -# @scopes.push({}) -# end -# -# def scope_stop -# @scopes.pop() -# end -#end -# -#class CodeGenerator -# def initialize(defs, exprs) -# @syms = Symtable.new -# @funcs = { toplevel: { freevars: [], code: StringIO.new } } -# @protos = StringIO.new -# @protos.puts "Value #{defs.keys.join(", ")};" -# exprs.each {|e| emit(e) } -# end -# -# def mkvar() -# @id = 0 if @id.nil? -# @id++ -# "_tmp#{@id}" -# end -# -# def emitop(op, left, right = nil) -# @body << [mkvar, op, left, right] -# @body.last -# end -# -# def func_start(name, args = []) -# args.each {|a| @syms[a] = :arg } -# @syms[name] = :func -# @syms.scope_start -# @funcs[name.to_sym] = { freevars: [], code: StringIO.new } -# end -# -# def func_stop() -# @syms.scope_stop -# end -# -# def dump -# #pp @syms -# puts @protos.string -# end -# -# def emit(e) -# if e.is_a? Parser::Val -# emit_val(e) -# elsif e.is_a? Parser::Def -# puts "Def" -# elsif e.is_a? Parser::Call -# puts "Call" -# elsif e.is_a? Parser::IfExpr -# puts "IfExpr" -# elsif e.is_a? Parser::Func -# puts "Func" -# end -# end -# -# def emit_val(e) -# case e.type -# when :nil -# puts "NULL" -# when :bool -# puts e.value -# when :num -# puts e.value -# when :string -# puts e.value -# end -# end -#end - parse = Parser.new("dyn.src") block = Parser.new("dyn.src").toplevel - -pp block - +TypeChecker.infer({}, block)