diff options
| author | Irene Knapp <ireneista@irenes.space> | 2026-05-28 21:22:58 -0700 |
|---|---|---|
| committer | Irene Knapp <ireneista@irenes.space> | 2026-05-28 21:22:58 -0700 |
| commit | 3f83a17851b8e93e4d5dbac94b10a6afd750dbee (patch) | |
| tree | 8b88024fabaf86783f5c58718dc2fb9c6c79ffda /dynamic.e | |
| parent | 0f3c90d8c67c7150feed36a1e620a6aa68f987a7 (diff) | |
move next-newer-entry-in and oldest-entry-in into dynamic.e
it's starting to get concerning how all this stuff needs to go in quine.asm but hopefully the hex transform will fix it Force-Push: yes Change-Id: I840e77c96fa0555bc01b9604d09f5ac4903d48bf
Diffstat (limited to 'dynamic.e')
| -rw-r--r-- | dynamic.e | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/dynamic.e b/dynamic.e index a260abe..55db683 100644 --- a/dynamic.e +++ b/dynamic.e @@ -50,6 +50,12 @@ : oldest-entry latest @ { dup @ } { @ } while ; +~ (dictionary handle -- entry pointer or 0) +: oldest-entry-in + dup + dup { { dup @ } { @ } while } if + dup 3roll = { drop 0 } if ; + ~ (entry pointer -- entry pointer or 0) : next-newer-entry latest @ @@ -57,6 +63,13 @@ { dup { 2dup @ != } if } { @ } while swap drop ; +~ (entry pointer, dictionary handle -- entry pointer or 0) +: next-newer-entry-in + @ + 2dup = { 2drop 0 exit } if + { dup { 2dup @ != } if } + { @ } while swap drop ; + ~ (entry pointer -- pointer) : guess-entry-end dup entry-flags@ 64 & 64 = { exit } if |