mirror of
https://github.com/remko/waforth
synced 2024-12-27 09:59:29 +01:00
:NONAME
This commit is contained in:
parent
68a98836ab
commit
d2fee658dd
4 changed files with 430 additions and 402 deletions
797
src/waforth.wat
797
src/waforth.wat
File diff suppressed because it is too large
Load diff
|
@ -479,20 +479,20 @@ T{ : VD3 VAL3 LITERAL ; VD3 -> 123 }T
|
||||||
\ T{ : CS6 CASE 1 OF ENDOF 2 ENDCASE ; 1 CS6 -> }T
|
\ T{ : CS6 CASE 1 OF ENDOF 2 ENDCASE ; 1 CS6 -> }T
|
||||||
\ T{ : CS7 CASE 3 OF ENDOF 2 ENDCASE ; 1 CS7 -> 1 }T
|
\ T{ : CS7 CASE 3 OF ENDOF 2 ENDCASE ; 1 CS7 -> 1 }T
|
||||||
|
|
||||||
\ \ -----------------------------------------------------------------------------
|
\ -----------------------------------------------------------------------------
|
||||||
\ TESTING :NONAME RECURSE
|
TESTING :NONAME RECURSE
|
||||||
|
|
||||||
\ VARIABLE NN1
|
VARIABLE NN1
|
||||||
\ VARIABLE NN2
|
VARIABLE NN2
|
||||||
\ :NONAME 1234 ; NN1 !
|
:NONAME 1234 ; NN1 !
|
||||||
\ :NONAME 9876 ; NN2 !
|
:NONAME 9876 ; NN2 !
|
||||||
\ T{ NN1 @ EXECUTE -> 1234 }T
|
T{ NN1 @ EXECUTE -> 1234 }T
|
||||||
\ T{ NN2 @ EXECUTE -> 9876 }T
|
T{ NN2 @ EXECUTE -> 9876 }T
|
||||||
|
|
||||||
\ T{ :NONAME ( n -- 0,1,..n ) DUP IF DUP >R 1- RECURSE R> THEN ;
|
T{ :NONAME ( n -- 0,1,..n ) DUP IF DUP >R 1- RECURSE R> THEN ;
|
||||||
\ CONSTANT RN1 -> }T
|
CONSTANT RN1 -> }T
|
||||||
\ T{ 0 RN1 EXECUTE -> 0 }T
|
T{ 0 RN1 EXECUTE -> 0 }T
|
||||||
\ T{ 4 RN1 EXECUTE -> 0 1 2 3 4 }T
|
T{ 4 RN1 EXECUTE -> 0 1 2 3 4 }T
|
||||||
|
|
||||||
\ :NONAME ( n -- n1 ) \ Multiple RECURSEs in one definition
|
\ :NONAME ( n -- n1 ) \ Multiple RECURSEs in one definition
|
||||||
\ 1- DUP
|
\ 1- DUP
|
||||||
|
|
|
@ -193,9 +193,9 @@ T{ 123 CONSTANT IW1 IMMEDIATE IW1 -> 123 }T
|
||||||
T{ : IW2 IW1 LITERAL ; IW2 -> 123 }T
|
T{ : IW2 IW1 LITERAL ; IW2 -> 123 }T
|
||||||
T{ VARIABLE IW3 IMMEDIATE 234 IW3 ! IW3 @ -> 234 }T
|
T{ VARIABLE IW3 IMMEDIATE 234 IW3 ! IW3 @ -> 234 }T
|
||||||
T{ : IW4 IW3 [ @ ] LITERAL ; IW4 -> 234 }T
|
T{ : IW4 IW3 [ @ ] LITERAL ; IW4 -> 234 }T
|
||||||
\ T{ :NONAME [ 345 ] IW3 [ ! ] ; DROP IW3 @ -> 345 }T
|
T{ :NONAME [ 345 ] IW3 [ ! ] ; DROP IW3 @ -> 345 }T
|
||||||
T{ CREATE IW5 456 , IMMEDIATE -> }T
|
T{ CREATE IW5 456 , IMMEDIATE -> }T
|
||||||
\ T{ :NONAME IW5 [ @ IW3 ! ] ; DROP IW3 @ -> 456 }T
|
T{ :NONAME IW5 [ @ IW3 ! ] ; DROP IW3 @ -> 456 }T
|
||||||
T{ : IW6 CREATE , IMMEDIATE DOES> @ 1+ ; -> }T
|
T{ : IW6 CREATE , IMMEDIATE DOES> @ 1+ ; -> }T
|
||||||
T{ 111 IW6 IW7 IW7 -> 112 }T
|
T{ 111 IW6 IW7 IW7 -> 112 }T
|
||||||
T{ : IW8 IW7 LITERAL 1+ ; IW8 -> 113 }T
|
T{ : IW8 IW7 LITERAL 1+ ; IW8 -> 113 }T
|
||||||
|
|
|
@ -1571,6 +1571,13 @@ function loadTests() {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe(":NONAME", () => {
|
||||||
|
it("should work", () => {
|
||||||
|
run(":NONAME 1234 ; EXECUTE");
|
||||||
|
expect(stackValues()).to.eql([1234]);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
describe("system", () => {
|
describe("system", () => {
|
||||||
it("should run sieve", () => {
|
it("should run sieve", () => {
|
||||||
run(sieve);
|
run(sieve);
|
||||||
|
|
Loading…
Reference in a new issue