:NONAME

( C: -- colon-sys ) ( S: -- xt )

Create an execution token xt, enter compilation state and start the current definition, producing colon-sys. Append the initiation semantics given below to the current definition.

The execution semantics of xt will be determined by the words compiled into the body of the definition. This definition can be executed later by using xt EXECUTE.

If the control-flow stack is implemented using the data stack, colon-sys shall be the topmost item on the data stack. See 3.2.3.2 Control-flow stack.

Initiation:

( i * x -- i * x ) ( R: -- nest-sys )

Save implementation-dependent information nest-sys about the calling definition. The stack effects i * x represent arguments to xt.

xt Execution:

( i * x -- j * x )

Execute the definition specified by xt. The stack effects i * x and j * x represent arguments to and results from xt, respectively.

See:

Rationale:

Typical use:

   DEFER print
   :NONAME ( n -- ) . ; IS print

Note:

RECURSE and DOES> are allowed within a :NONAME definition.

Testing:

VARIABLE nn1
VARIABLE nn2
T{ :NONAME 1234 ; nn1 ! -> }T
T{ :NONAME 9876 ; nn2 ! -> }T
T{ nn1 @ EXECUTE -> 1234 }T
T{ nn2 @ EXECUTE -> 9876 }T

ContributeContributions