number of arguments prior to any keyword. The ones that require a
fixed order to determine their meaning (unlike the arguments that
follow keywords, which can be in any order).
number of arguments to a post-evaluating command
that represent commands and arguments ready to be evaluated
by the post-eval methods: stack_arg_post_eval() and
stack_key_post_eval().
number of arguments inside parentheses that are keywords (keywords
indicated by a ':' prefix on a symbol). Arguments that follow
keywords are counted by nargs(). That's why there is a need for
nargsfixed() and nargstotal() methods, to distinguish between
arguments associated with fixed arguments (the ones that
precede the keyword arguments), and the ones enmeshed with the
keywords.
reset the stack to its state before this ComFunc execute() method
was called. Needs to be called once and only once in each
derived execute() method. Save it to last if you're using references
to ComValue objects directly on the stack. Otherwise, call it as
soon as all the arguments have been loaded into local copies.
set symbol id of name for func
find the ComValue object in the unevaluated input arguments
of a post-eval ComFunc that represents the start of the
code for the nth argument (prior to any keywords).
find the ComValue object in the unevaluated input arguments
of a post-eval ComFunc that represents the start of the
code for the argument that follows a keyword. If no argument
follows keyword, 'dflt' is returned, unless 'use_dflt_for_no_key'
is true, when 'dflt' gets returned when no matching keyword is found.