Sign in Join
FPDoc Onlineexperiment

TFPExprFunction class

In unit fpExprPars

Internally used class for representing function calls in expression trees

Declaration

pascal
TFPExprFunction = class(TFPExprIdentifierNode)

Inheritance

  1. TFPExprFunction
  2. TFPExprIdentifierNode
  3. TFPExprNode
  4. TObject

Descends from it: TAggregateExpr TFPFunctionCallBack TFPFunctionEventHandler

Description

The TFPExprFunction class represents a function call node in the expression tree. It serves as the base class for all function implementations that can be called from within expressions, including mathematical functions, string functions, date/time functions, and user-defined functions.

The class manages function parameters, validates argument types and counts, and provides the framework for function evaluation. It handles the common aspects of function calls such as parameter management and type checking.

Derived classes implement specific functions by overriding the evaluation methods and providing function-specific logic. The class supports functions with varying numbers of parameters and different return types.

This class is used internally by the TFPExpressionParser class to construct an AST (Abstract Syntax Tree). There is normally no need for you to use or instantiate this class directly.

See also

Properties

ArgumentNodespublicThe argument nodes for the function
ArgumentParamspublicThe argument parameters for the function

Methods

CalcParamsprotected
ConvertArgumentprotected
CheckpublicValidate the function expression
CreateFunctionpublicCreate function with identifier and arguments
DestroypublicDestroy function expression and free resources
InitAggregatepublicInitialize aggregate processing for function
UpdateAggregatepublicUpdate aggregate calculations for function
HasAggregatepublicCheck if function contains aggregates
AsStringpublicGet string representation of function expression

Inherited

From TFPExprIdentifierNode (4)

CreateIdentifier GetNodeValue Identifier NodeType

From TFPExprNode (3)

CheckNodeType IsAggregate NodeValue

From TObject (41)

AfterConstruction BeforeDestruction CheckDisposed ClassInfo ClassName ClassNameIs ClassParent ClassType CleanupInstance Create DefaultHandler DefaultHandlerStr Dispatch DispatchStr Disposed DisposeOf Equals FieldAddress Free FreeInstance GetDisposed GetHashCode GetInterface GetInterfaceByStr GetInterfaceEntry GetInterfaceEntryByStr GetInterfaceTable GetInterfaceWeak GetLastCastErrorInfo InheritsFrom InitInstance InstanceSize MethodAddress MethodName newinstance QualifiedClassName SafeCallException StringMessageTable SystemHasExtendedRTTI ToString UnitName

An experiment, built from development snapshots. Not the official Free Pascal or Lazarus documentation.