locals definitions



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 -- )

declares a single local VALUE using (LOCAL) - a sequence of LVALUE declarations can replace a LOCALS| argument, ie. LOCALS| a b c | is the same as LVALUE a LVALUE b LVALUE c . This should also clarify the runtime stack behaviour of LOCALS| where the stack parameters seem to be assigned in reverse order as opposed to their textual identifier declarations.
compare with VALUE and the pfe's convenience word VAR.

reference: ../src/locals.c:0205

p4_locals_bar_ : LOCALS| name1 name2 ... nameN | ( xN ... x2 x1 -- )

create local identifiers to be used in the current definition. At runtime, each identifier will be assigned a value from the parameter stack.
The identifiers may be treated as if being a VALUE , it does also implement the ansi TO extensions for locals. Note that the identifiers are only valid inside the currently compiled word, the SEE decompiled word will show them as <A> <B> ... <N> a.s.o.
see also 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 -- )

this word is used to create compiling words that can declare LOCALS| - it shall not be used directly to declare a local, the pfe provides LVALUE for that a purpose beyond 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