The @ operator collapses an array operand to its upper-left value. A function operand like SEQUENCE pushes a matrix and @ collapses it. A range arithmetic operand like (B2:B3+0) does implicit intersection first and hands @ a scalar, so @ has nothing to collapse. Mark @'s operand as ForceArray in the parameter classifier and wrap UnaryLine in a CurrentFactor scope so the classification reaches the nested operators. Range arithmetic inside @ then materialises as a matrix and reaches @ for the upper-left pick. testSingleValueOperator covers @ on a range expression and a chained @ binary. Signed-off-by: Tomaž Vajngerl <tomaz.vajngerl@collabora.co.uk> Change-Id: I7f59bfa1efbceeceb9a3d7f71a0243e9a521b24a Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/5517 Tested-by: Tomaž Vajngerl <tomaz.vajngerl@collabora.com> Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> (cherry picked from commit 4148cbecbdaa3164c53d3869252a3ca714ba5726) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/207868 Tested-by: Xisco Fauli <xiscofauli@libreoffice.org> Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Formula Helper Code
Contains parts of the formula parser used outside LibreOffice Calc code that has been pulled out from Calc's formula parser code.
Also contains some functions that are needed by code in both sc and
scaddins. Located here just for convenience. So sue me.