fix resolve and introduce method to chop strings to max
strings are 20 bytes. I want to implement the extension idea, just not now
This commit is contained in:
parent
407ca6ef72
commit
f2250bc206
@ -112,8 +112,14 @@ module Parfait
|
||||
list
|
||||
end
|
||||
|
||||
def self.new_word_max( string )
|
||||
return self.new_word(string) if string.length < 20
|
||||
self.new_word(string[0 ... 20])
|
||||
end
|
||||
|
||||
# Word from string
|
||||
def self.new_word( string )
|
||||
# puts "NEW #{string.length}=#{string}"
|
||||
string = string.to_s if string.is_a? Symbol
|
||||
word = Word.new( string.length )
|
||||
string.codepoints.each_with_index do |code , index |
|
||||
|
@ -11,7 +11,7 @@ module SlotMachine
|
||||
|
||||
def to_risc(compiler)
|
||||
builder = compiler.builder(compiler.source_name)
|
||||
from = compiler.load_object(Parfait.new_word(@name))
|
||||
from = compiler.load_object(Parfait.new_word_max(@name))
|
||||
to = Risc::RegisterValue.new(:r1 , :Word)
|
||||
builder.add_code Risc::Transfer.new(self , from , to)
|
||||
builder.add_code Risc::Syscall.new(self, :died )
|
||||
|
@ -9,8 +9,8 @@ module SlotMachine
|
||||
cache_entry = Parfait::CacheEntry.new(method.frame_type, method)
|
||||
ResolveMethod.new( "method" , :name , cache_entry )
|
||||
end
|
||||
def est_len
|
||||
assert_equal 19 , all.length , all_str
|
||||
def test_len
|
||||
assert_equal 20 , all.length , all_str
|
||||
end
|
||||
def test_1_load_name
|
||||
assert_load 1, Parfait::Word , "id_word_"
|
||||
@ -55,17 +55,20 @@ module SlotMachine
|
||||
def test_14_goto_exit
|
||||
assert_label 14, "exit_label_"
|
||||
end
|
||||
def test_15_move_name
|
||||
assert_transfer 15, "id_word_" , :r1
|
||||
def test_15_load_name
|
||||
assert_load 15, Parfait::Word , "id_word_"
|
||||
end
|
||||
def test_16_die
|
||||
assert_syscall 16, :died
|
||||
def test_16_move_name
|
||||
assert_transfer 16, "id_word_" , :r1
|
||||
end
|
||||
def test_17_label
|
||||
assert_label 17, "ok_label_"
|
||||
def test_17_sys
|
||||
assert_syscall 17, :died
|
||||
end
|
||||
def test_18_load_method
|
||||
assert_reg_to_slot 18 , "id_cacheentry_.cached_type.methods.next_callable" , "id_cacheentry_" , 2
|
||||
def test_18_label
|
||||
assert_label 18, "ok_label_"
|
||||
end
|
||||
def test_19_method
|
||||
assert_reg_to_slot 19 , "id_cacheentry_.cached_type.methods.next_callable" , "id_cacheentry_" , 2
|
||||
end
|
||||
end
|
||||
end
|
||||
|
Loading…
Reference in New Issue
Block a user