p4_local_args_
p4_local_enter_execution_
p4_local_execution_
p4_local_value_
p4_locals_bar_
p4_locals_bar_execution_
p4_locals_exit_execution_
p4_paren_local_
p4_to_local_execution_
p4_compile_local
p4_find_local
p4_local_args_
reference: ../src/locals.c:0061
p4_local_enter_execution_ :
Did change the locals-implementation completely.
Now the return stack looks like this after locals_bar_execution: rp --> 'rp' -- contains real return used by locals_exit_execution lp --> 'lp' -- contains locals-pointer of surrounding scope arg1 .. argN localN+1 .. localM 'rp' --> -- real return address you can declare now a local non-arg at any time. All local-args must be declared before any local-non-arg. Not that the code after locals_bar_execution does not contain _two_ numbers N and M. Classic use of LOCALS| will put them at the very same value.
reference: ../src/locals.c:0051
p4_local_execution_
reference: ../src/locals.c:0082
p4_local_value_ :
LVALUE name ( value -- )
VALUE
(LOCAL)
LVALUE
LOCALS|
LOCALS| a b c |
LVALUE a LVALUE b LVALUE c
LOCALS|
VALUE
VAR
reference: ../src/locals.c:0205
p4_locals_bar_ :
LOCALS| name1 name2 ... nameN | ( xN ... x2 x1 -- )
VALUE
TO
SEE
<A>
<B>
<N>
LVALUE
reference: ../src/locals.c:0177
p4_locals_bar_execution_
reference: ../src/locals.c:0068
p4_locals_exit_execution_
reference: ../src/locals.c:0075
p4_paren_local_ :
( strptr strcnt -- )
LOCALS|
LVALUE
LOCALS|
reference: ../src/locals.c:0157
p4_to_local_execution_
reference: ../src/locals.c:0087
p4_compile_local
reference: ../src/locals.c:0110
p4_find_local
reference: ../src/locals.c:0095