Files
numolus/src/engine/index.ts
T
wkhandClaude Sonnet 5 2c54537427 Text-Vergleich, &-Verkettung und benannte Bereiche
- Vergleichsoperatoren (= <> > < >= <=) unterscheiden jetzt Text- von
  Zahlenvergleich statt jede Seite zwangsweise durch toNumber() zu
  schicken (=A1="Nord" gab vorher #VALUE! statt 1); ermöglicht
  Text-Kriterien in selbstgebauten COUNTIF/SUMIF/AVERAGEIF-Funktionen
  (neue README-Sektion "SUMIF/COUNTIF/AVERAGEIF nachbauen").
- Neuer &-Operator (Excel-Präzedenz zwischen Vergleich und +/-) plus
  CONCAT/CONCATENATE als Funktions-Äquivalent.
- Benannte Bereiche: neuer Toolbar-Button "🏷" verwaltet dokumentweite
  Namen für eine feste Zelle/einen festen Bereich (z. B. Umsatz_Q1statt
  Umsatz!B2:B6), unqualifiziert in jeder Top-Level-Formel nutzbar.
  Live gegen die Tabellen-ID aufgelöst (übersteht Tabellen-Umbenennung),
  bewusst nicht innerhalb einer benutzerdefinierten Funktion selbst
  nutzbar (Aufrufer können sie aber als Argument übergeben).
- Nebenbei: COUNT2s Autovervollständigungs-Hint korrigiert (zeigte
  "COUNT(...)" statt "COUNT2(...)").

374 Tests, vue-tsc/eslint/build sauber, Playwright-live-verifiziert.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-08 21:59:47 +02:00

69 lines
1.4 KiB
TypeScript

/**
* Public surface of the formula engine.
*
* Nothing in `./` imports Vue, the DOM or any spreadsheet library. See
* ./README.md for the grammar (EBNF), the evaluation model and the error model.
*/
export { tokenize, LexError, type Token, type TokenType } from './lexer';
export {
parseFormula,
parseFunctionBlock,
collectRefs,
ParseError,
type Node,
type CellNode,
type RangeNode,
type NamedRefNode,
type BlockNode,
} from './parser';
export { evaluate } from './evaluator';
export { DependencyGraph } from './graph';
export { FUNCTIONS, getFunction, hasFunction, BUILTIN_SIGNATURES } from './functions';
export {
colToNumber,
numberToCol,
parseA1,
toA1,
looksLikeCell,
expandRange,
cycleReferenceLocks,
currentIdentifierAtCaret,
} from './refs';
export {
Workbook,
literalValue,
type TableModel,
} from './workbook';
export {
dateToSerial,
timeSerial,
serialToUtcDate,
todaySerial,
nowSerial,
parseDateTimeLiteral,
type DateLiteralKind,
} from './dates';
export {
buildFunctionIndex,
expandUserFunctions,
collectCalledFunctionNames,
collectCalledFunctionNamesInBlock,
declaredBlockNames,
findInvalidForSource,
blockAlwaysReturns,
type FunctionDef,
} from './userFunctions';
export {
FormulaError,
isError,
keyOf,
parseKey,
ERROR_CODES,
type ErrorCode,
type CellValue,
type Scalar,
type EngineHost,
type NamedRangeDef,
} from './types';