Sha256: 63a753a441ffd970564204e24d862b839381b9778198d1e24a21c8fbee29e516

Contents?: true

Size: 890 Bytes

Versions: 2

Compression:

Stored size: 890 Bytes

Contents

require "turmali/runtime/class"

Constants = {}

Constants["Class"] = TurmaliClass.new                 
Constants["Class"].runtime_class = Constants["Class"] 
Constants["Object"] = TurmaliClass.new                
Constants["Number"] = TurmaliClass.new                
Constants["String"] = TurmaliClass.new

root_self = Constants["Object"].new
RootContext = Context.new(root_self)

Constants["TrueClass"] = TurmaliClass.new
Constants["FalseClass"] = TurmaliClass.new
Constants["NilClass"] = TurmaliClass.new

Constants["true"] = Constants["TrueClass"].new_with_value(true)
Constants["false"] = Constants["FalseClass"].new_with_value(false)
Constants["nil"] = Constants["NilClass"].new_with_value(nil)

Constants["Class"].def :new do |receiver, arguments|
  receiver.new
end

Constants["Object"].def :print do |receiver, arguments|
  puts arguments.first.ruby_value
  Constants["nil"] 
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
turmali-0.0.3 lib/turmali/runtime/bootstrap.rb
turmali-0.0.2 lib/turmali/runtime/bootstrap.rb