added fdump and frdump for dumping the stack in the new format

This commit is contained in:
IgorCielniak
2026-02-06 10:46:48 +01:00
parent 5fb36ac9bc
commit bf4d11d313

View File

@@ -6,6 +6,7 @@ import io.sl
# dump takes the firts element from the stack # dump takes the firts element from the stack
# and prints that much consequent elements # and prints that much consequent elements
# from the stack while not modifying it # from the stack while not modifying it
# all variations have the same stack effect
word dump word dump
1 swap 1 swap
@@ -17,7 +18,7 @@ word dump
drop drop
end end
# same but for return stack # dump return stack
word rdump word rdump
1 swap 1 swap
for for
@@ -28,6 +29,38 @@ word rdump
drop drop
end end
word fdump
"[*, " write_buf
1 swap 1 +
while dup 3 > do
dup pick
puti
1 -
", " write_buf
end
1 - pick puti
" | " write_buf
1 - pick puti
"]\n" write_buf
end
word frdump
"[*, " write_buf
1 swap 1 -
while dup 2 > do
dup rpick
puti
1 -
", " write_buf
end
rpick puti
", " write_buf
rpick puti
" | " write_buf
rpick puti
"]\n" write_buf
end
#int3 [*] -> [*] #int3 [*] -> [*]
:asm int3 { :asm int3 {
int3 int3