OpenXLSX 1.9.1
Loading...
Searching...
No Matches
XLFormulaEngine.hpp File Reference
#include <functional>
#include <memory>
#include <string>
#include <string_view>
#include <unordered_map>
#include <vector>
#include <gsl/gsl>
#include "OpenXLSX-Exports.hpp"
#include "XLCellValue.hpp"
#include "XLCellReference.hpp"

Go to the source code of this file.

Data Structures

struct  OpenXLSX::XLToken
 A single lexical token from a formula string. More...
 
class  OpenXLSX::XLFormulaLexer
 Tokenises a raw Excel formula string (with or without leading '='). More...
 
struct  OpenXLSX::XLASTNode
 Polymorphic AST node. Uses a tagged-union approach with std::unique_ptr children. More...
 
class  OpenXLSX::XLFormulaParser
 Recursive-descent (Pratt) parser that converts a token stream into an AST. More...
 
class  OpenXLSX::XLFormulaArg
 Lightweight formula evaluation engine. More...
 
class  OpenXLSX::XLFormulaArg::Iterator
 
class  OpenXLSX::XLFormulaEngine
 

Namespaces

namespace  OpenXLSX
 

Typedefs

using OpenXLSX::XLCellResolver = std::function< XLCellValue(std::string_view ref)>
 Callback type: resolves a cell reference string to a cell value.
 

Enumerations

enum class  OpenXLSX::XLTokenKind : uint8_t {
  OpenXLSX::Number , OpenXLSX::String , OpenXLSX::Bool , OpenXLSX::CellRef ,
  OpenXLSX::Ident , OpenXLSX::Plus , OpenXLSX::Minus , OpenXLSX::Star ,
  OpenXLSX::Slash , OpenXLSX::Caret , OpenXLSX::Percent , OpenXLSX::Amp ,
  OpenXLSX::Eq , OpenXLSX::NEq , OpenXLSX::Lt , OpenXLSX::Le ,
  OpenXLSX::Gt , OpenXLSX::Ge , OpenXLSX::LParen , OpenXLSX::RParen ,
  OpenXLSX::Comma , OpenXLSX::Semicolon , OpenXLSX::Colon , OpenXLSX::End ,
  OpenXLSX::Error
}
 Kinds of tokens produced by the lexer. More...
 
enum class  OpenXLSX::XLNodeKind : uint8_t {
  OpenXLSX::Number , OpenXLSX::StringLit , OpenXLSX::BoolLit , OpenXLSX::CellRef ,
  OpenXLSX::Range , OpenXLSX::BinOp , OpenXLSX::UnaryOp , OpenXLSX::FuncCall ,
  OpenXLSX::ErrorLit
}
 Kind discriminator for AST nodes. More...