start to use parfait classes
bit of a bumpy road
This commit is contained in:
parent
73a6a5db39
commit
2e8b514e9c
@ -7,3 +7,34 @@ require "parfait/array"
|
||||
require "parfait/string"
|
||||
require "parfait/message"
|
||||
require "parfait/frame"
|
||||
|
||||
# Below we define functions (in different classes) that are not part of the run-time
|
||||
# They are used for the boot process, ie when this codes executes in the vm that builds salama
|
||||
|
||||
# To stay sane, we use the same classes that we use later, but "adapt" them to work in ruby
|
||||
# This affects mainly memory layout
|
||||
|
||||
module FakeMem
|
||||
def initialize
|
||||
@memory = []
|
||||
end
|
||||
end
|
||||
|
||||
class Parfait::Object
|
||||
include FakeMem
|
||||
def self.new_object &args
|
||||
puts "I am #{self}"
|
||||
object = self.new(*args)
|
||||
object
|
||||
end
|
||||
def object_length
|
||||
@memory.length
|
||||
end
|
||||
end
|
||||
class Parfait::Class
|
||||
end
|
||||
class Parfait::Array
|
||||
def length
|
||||
object_length
|
||||
end
|
||||
end
|
||||
|
@ -3,8 +3,8 @@
|
||||
module Parfait
|
||||
class Hash < Object
|
||||
def initialize
|
||||
@keys = Array.new()
|
||||
@values = Array.new()
|
||||
@keys = Array.new_object()
|
||||
@values = Array.new_object()
|
||||
end
|
||||
def values()
|
||||
@values
|
||||
|
@ -1,9 +1,5 @@
|
||||
require 'parslet'
|
||||
|
||||
module Parfait
|
||||
eval(File.open("./lib/parfait/hash.rb").read)
|
||||
end
|
||||
|
||||
require "stream_reader"
|
||||
require "elf/object_writer"
|
||||
require 'salama-reader'
|
||||
|
@ -14,7 +14,7 @@ module Virtual
|
||||
|
||||
def initialize
|
||||
super()
|
||||
@classes = Parfait::Hash.new
|
||||
@classes = Parfait::Hash.new_object
|
||||
#global objects (data)
|
||||
@objects = []
|
||||
@symbols = []
|
||||
|
Loading…
Reference in New Issue
Block a user