TFPExprFunction class
Internally used class for representing function calls in expression trees
Declaration
TFPExprFunction = class(TFPExprIdentifierNode)Inheritance
- TFPExprFunction
- TFPExprIdentifierNode
- TFPExprNode
- 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
ArgumentNodes | public | The argument nodes for the function |
ArgumentParams | public | The argument parameters for the function |
Methods
CalcParams | protected | |
ConvertArgument | protected | |
Check | public | Validate the function expression |
CreateFunction | public | Create function with identifier and arguments |
Destroy | public | Destroy function expression and free resources |
InitAggregate | public | Initialize aggregate processing for function |
UpdateAggregate | public | Update aggregate calculations for function |
HasAggregate | public | Check if function contains aggregates |
AsString | public | Get string representation of function expression |
Inherited
From TFPExprIdentifierNode (4)
From TFPExprNode (3)
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.
