The evaluation engine behind a sheet of cells. More...
| Header: | #include <SpreadsheetEngine> |
| Since: | 2.0 |
One cell is either a v2 input holding a literal, or a v2 output holding a formula. A formula edit rebuilds the program; a numeric edit on a referenced literal goes through Program::setFloat and re-evaluates, and one on an unreferenced literal touches nothing but the value table. Cross-cell references resolve through the eval::Graph topology rather than through anything this class parses.
The engine owns two answers a caller should not conflate. \ref backend is the lane that was asked for; \ref lowering is the one that ran. They came apart when Backend::Interpreted started meaning the SPIR-V interpreter for any program with a GLSL form.
Diagnostics are attributed rather than pooled: a compile or evaluation error names the cell that caused it and is read back through \ref cellError, and one that cannot be attributed to a cell — a cycle, most often — is read through \ref sheetError instead.
Spec: content/doc/internal/specs/expression-system-consolidation/ api.md §EX-API-7 (spreadsheet wrapper), migration.md §EX-MI-1.1 (libface CellData migration)
See also face::SpreadSheetModel, face::SpreadSheet, eval::Graph, and eval::Program.