Table of Contents

Class ExpressionBase<TExpressionContext>

Namespace
NCalc
Assembly
NCalc.dll

Base class with common utilities of AST parsing and evaluation.

public abstract class ExpressionBase<TExpressionContext> where TExpressionContext : ExpressionContextBase, new()

Type Parameters

TExpressionContext
Inheritance
ExpressionBase<TExpressionContext>
Derived
Inherited Members

Constructors

ExpressionBase(LogicalExpression, TExpressionContext, ILogicalExpressionFactory, ILogicalExpressionCache)

protected ExpressionBase(LogicalExpression logicalExpression, TExpressionContext context, ILogicalExpressionFactory logicalExpressionFactory, ILogicalExpressionCache logicalExpressionCache)

Parameters

logicalExpression LogicalExpression
context TExpressionContext
logicalExpressionFactory ILogicalExpressionFactory
logicalExpressionCache ILogicalExpressionCache

ExpressionBase(string, TExpressionContext, ILogicalExpressionFactory, ILogicalExpressionCache)

protected ExpressionBase(string expressionString, TExpressionContext context, ILogicalExpressionFactory logicalExpressionFactory, ILogicalExpressionCache logicalExpressionCache)

Parameters

expressionString string
context TExpressionContext
logicalExpressionFactory ILogicalExpressionFactory
logicalExpressionCache ILogicalExpressionCache

ExpressionBase(TExpressionContext?)

protected ExpressionBase(TExpressionContext? context = null)

Parameters

context TExpressionContext

Fields

MaxLoopIterations

public static int MaxLoopIterations

Field Value

int

UseNonRecursiveEvaluator

public static bool UseNonRecursiveEvaluator

Field Value

bool

Properties

AdvancedOptions

Extended Options for the expression evaluation.

public AdvancedExpressionOptions? AdvancedOptions { get; set; }

Property Value

AdvancedExpressionOptions

CultureInfo

Culture information for the expression evaluation.

public CultureInfo CultureInfo { get; set; }

Property Value

CultureInfo

Error

public Exception? Error { get; }

Property Value

Exception

ExpressionString

Textual representation of the expression.

public string? ExpressionString { get; protected init; }

Property Value

string

LogicalExpression

public LogicalExpression? LogicalExpression { get; protected set; }

Property Value

LogicalExpression

Options

Options for the expression evaluation.

public ExpressionOptions Options { get; set; }

Property Value

ExpressionOptions

Parameters

Parameters for the expression evaluation.

public IDictionary<string, object?> Parameters { get; set; }

Property Value

IDictionary<string, object>

UserFunctions

public IDictionary<string, Function> UserFunctions { get; }

Property Value

IDictionary<string, Function>

Methods

GetFunctionNames(CancellationToken)

Retrieves the names of functions referenced in the expression.

public List<string> GetFunctionNames(CancellationToken cancellationToken = default)

Parameters

cancellationToken CancellationToken

Returns

List<string>

The list of function names.

GetLogicalExpression(Parser<LogicalExpression>, LogicalExpressionParserContext)

public LogicalExpression? GetLogicalExpression(Parser<LogicalExpression> parser, LogicalExpressionParserContext parserContext)

Parameters

parser Parser<LogicalExpression>
parserContext LogicalExpressionParserContext

Returns

LogicalExpression

GetLogicalExpression(CancellationToken)

public LogicalExpression? GetLogicalExpression(CancellationToken cancellationToken = default)

Parameters

cancellationToken CancellationToken

Returns

LogicalExpression

GetParameterNames(CancellationToken)

Retrieves the names of parameters (variables) referenced in the expression.

public List<string> GetParameterNames(CancellationToken cancellationToken = default)

Parameters

cancellationToken CancellationToken

Returns

List<string>

The list of variable names.

HasErrors(CancellationToken)

Create the LogicalExpression in order to check syntax errors. If errors are detected, the Error property contains the exception.

public bool HasErrors(CancellationToken cancellationToken = default)

Parameters

cancellationToken CancellationToken

Returns

bool

false if the expression syntax is correct and true otherwise.