]> git.mdlowis.com Git - proto/sclpl-rb.git/commitdiff
checkin cleanup
authorMichael D. Lowis <mike@mdlowis.com>
Wed, 24 Jun 2020 03:32:55 +0000 (23:32 -0400)
committerMichael D. Lowis <mike@mdlowis.com>
Wed, 24 Jun 2020 03:32:55 +0000 (23:32 -0400)
dyn.rb

diff --git a/dyn.rb b/dyn.rb
index 6204d2e51e87e36909220881f20f14e4a5eddaa9..240c0e794956b6ca3648e09405bc8106635455c2 100755 (executable)
--- 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)