visicalc_engine library
VisiCalc Engine
This dart library aims to emulate the behaviour of the VisiCalc spreadsheet, including cell operations (move,copy, etc.), cell references and functions.
The engine also allows reading in a spreadsheet either from a Map<A1,String> or directly from the file format used by the original app typically saved as .vc files.
The engine relies heavily on the PetitParser and A1 Notation libraries.
See also:
Classes
- A1Cursor
- A1Cursor is a utility for helping stor information about the current VisiCalc Expression
- AverageFunction
- BinaryNumOp
- BracketsType
- Cell
- Cell class holds all the details for a cell in a spreadsheet
- CellContent
- CellReferencesChanged
- Class to store how references cell change
- CellReferenceTracker
- Track references to Cells from others Cells as they are added, moved, removed
- CountFunction
- EmptyResult
- Engine
- ErrorResult
- ErrorType
- Evaluator
- Expression
- This is the ViciCalc cell language expressed as a grammar
- ExpressionContent
- FileFormat
- FileFormat is the Grammar for parsing the .vc fileformat which includes the cellPosition and global directives
- FormatExpression
- FormatExpression allows parsing in formats the optionally appear at the start of a cell expression
- FormulaType
- GlobalDirectiveContent
- LabelResult
- LabelType
- ListFunction
- ListRangeType
- ListResult
- ListType
- LookupFunction
- MathsFunction
- MaxFunction
- MinFunction
- NegativeOp
- NotAvailableResult
- NotAvailableType
- NpvFunction
- NumberResult
- NumType
- PiType
- PositiveOp
- ReferenceType
- RepeatingContent
- ResultType
- ResultTypeCache
- SumFunction
- ValidateExpression
-
This Grammar helps validate partial VisiCalc Expression to assist
an input UI in validation and position the cursor if moving around
in a spreadsheet and need to swap the
A1
value
Enums
- A1CursorKind
-
A1CursorKind determines if we end in an
A1Partial
then where does it start in the string. - CellChangeType
- CellChangeType includes the following Cell changes Types
- CellFormat
- CellFormat follows the format style of VisiCalc based on its manual
Extensions
Typedefs
-
CellChangedCallback
= void Function(Set<
A1> a1Set, CellChangeType changeType) -
CellChangeCallback is a listener function
that receives a Set of
A1
that are affected by changes in a sheet of type CellChangeType - EvalCallback = ResultType Function(A1 cell, ResultTypeCache map)
- FormulaTypeVisitor = void Function(FormulaType instance)