The @ operator collapses an array operand to its upper-left value. It is the implicit-intersection prefix used to opt a formula out of the dynamic-array spill behaviour. =@SEQUENCE(4) returns 1 instead of the four-row spill. The new ocSingleValue opcode joins the unary-operator range so the existing compile and interpret machinery treats it like any other unary prefix. The @ character stops being part of name syntax in the OOXML grammar, so sheet names that contain @ have to be quoted from now on. In-session only for now. The operator is parsed and interpreted but not yet serialised into XLSX or ODS. Signed-off-by: Tomaž Vajngerl <tomaz.vajngerl@collabora.co.uk> Change-Id: I18cf56e34f933ebb7f6e43c157618c9fe28dbe0f Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/4172 Tested-by: Tomaž Vajngerl <tomaz.vajngerl@collabora.com> Reviewed-by: Miklos Vajna <vmiklos@collabora.com> (cherry picked from commit fbd04d7c394ad7445a667bf63820f88551b176e1) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/206673 Tested-by: Jenkins 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.