Functions called with a beforehand unknown number of arguments are called
using arguments set by semval/smvAddArg.


the structure of arguments passed to functions is:

The SemVal argument structure:

    SemVal
    [
        type:   
        value:  #arguments
        code:   [ ... 'value' SemVal structs ... ]
                 |              |              |
                 |              |              +-> the last SemVal refers to
                 |              |                  the last argument
                 |              |           
                 |              +-> each SemVal has code pushing an argument
                 |                  on the run-time (icm-exec) stack
                 |                  (i.e., executable code)
                 |
                 +-> the 1st SemVal refers to 
                     the first argument
    ]

inc/args.5: args 
    svSemVal3   - returns a SemVal initialized with the 1st argument
    smvAddArg    - adds the next argument to the arguments-SemVal


svArgs2Code     - receives the SemVal argument structure and converts it to
                  code pushing the arguments in reversed order, returning
                  the number of arguments in the SemVal argument structure

p_optIntSpecial - checks if the 1st argument is an int, if not a 0-int
                  is prefixed to the 1st arg. Returns two joined argument
                  lists

p_specials      - converts the arguments to code, pushes the argument count
                  e.g., printf(a, b, c) is converted to: 
                        push c, push b, push a, push 3
                  then calls the function, returning the SemVal containing the
                  code.

pinsertarg.c
pmakelist1.c
pmakelist2.c
pmakelist3.c
pmakelist4.c


