Hi Eike,

I started converting the new Calc functions IFS and SWITCH to jump functions.
So far, the general part has been done.

I experience a problem where the functions IFS and SWITCH differ from the other 
jump functions (IF, CHOOSE, IFERROR, IFNA).
The other jump functions do 1 evaluation (of the first argument) and then jump 
to an argument that is to be the output.
The new jump functions need to evaluate at least 2 arguments.
And that is where I get stuck.

The first argument is on the stack, i.e. GetStackType() returns a type and 
ScInterpreter::sp is 1.
When I jump to the next argument to be evaluated, with aCode.Jump( pJump[ nIdx 
], pJump[ pJump[ 0 ] ] ), ScInterpreter::sp is 0 afterwards.
How do I get the argument I jumped to (that part works) on the stack to be 
evaluated?

I hope you can shed some light on this jump mechanism.

Winfried

_______________________________________________
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice

Reply via email to