Table of Contents

Namespace Utils.Expressions

Classes

BlockExpressionBuilder

A helper class that builds expression blocks while minimizing the number of declared variables.

CompileException

Represents the base class for compile-time exceptions that occur during expression compilation in the Utils.Expressions namespace.

ConstantNumericAttribute

A specialized attribute that indicates the expected parameter is a ConstantExpression holding a numeric value, optionally restricted to a specific set of allowed numeric values.

ExpressionCallSignatureAttribute

Marks a method as matching only method-call expressions that invoke a specific function name on a specific type. This is a specialized ExpressionSignatureAttribute for calls.

ExpressionCompilerContext

Represents a dynamic symbol context shared by expression compilers.

ExpressionEx

Provides helper methods for building and manipulating expression trees.

ExpressionOptimiser

Provides a standard optimization pass over expression trees.

ExpressionSignatureAttribute

Marks a method or parameter as having a signature requirement for a certain ExpressionType. When used on a method, the method is considered for transformation if its attribute matches the current node type. When used on a parameter, it further restricts which sub-expressions are permissible.

ExpressionTransformer

Provides an abstract base class to transform or rewrite LINQ expression trees. Subclasses may override the transformation logic for specific expression signatures.

ExpressionUtils

Provides utility helpers for analysing and comparing expression trees.

FindTypeException

Thrown when a type cannot be found during a type resolution process.

FormattedPart

Represents a formatted part of an interpolated string, containing an expression and optional format/alignment specifications.

InterpolatedStringParser

Parses an interpolated string into its constituent parts, which can be either literals or formatted expressions.

LiteralPart

Represents a literal (non-interpolated) part of a string.

Parenthesis

Describes a set of parenthesis tokens used by the expression parser.

ParseDuplicateParameterNameException

Thrown when the parser encounters a parameter name that is already in use.

ParseException

Represents the base class for all parsing exceptions that occur during expression parsing in the Utils.Expressions namespace.

ParseNoEndException

Thrown when an expected closing symbol is not found in the parsed expression.

ParseUnfindTypeException

Thrown when a type name cannot be resolved or found by the parser.

ParseUnknownException

Thrown when an unknown symbol is encountered by the parser.

ParseUnmatchException

Thrown when a pair of opening and closing symbols do not match in the parsed expression.

ParseWrongSymbolException

Thrown when the parser encounters a symbol that is incorrect for the current context.

ParserOptions

Provides configuration settings and default mappings for parsing expressions, including operator priorities, numeric type levels, default type keywords, and numeric suffix mappings.

ReturnTypeAttribute

A specialized attribute that indicates the matched expression's return type must be assignable to a specified type. Useful for restricting the type of an operand beyond its ExpressionType.

Interfaces

IDistanceValue<T>

Represents a pairing of a distance measure and a value, typically used for scoring or ranking operations in method or constructor selection.

IExpressionCompiler

Defines a lightweight contract for expression compilers that turn source text into LINQ expression trees.

IInterpolatedStringPart

Represents a part of an interpolated string, which can be either literal text or a formatted expression.

IResolver

Provides functionality to resolve types, constructors, methods, and members at runtime, as well as to manage constants in expressions.

ITypeFinder

Provides methods for finding types and extension methods at runtime.