| Description | Hierarchy | Fields | Methods | Properties |
type TFunctionClass = class(TObject)
TFunctionClass defines a function that can be called by TRbwParser.
![]() |
FSynonyms: TStrings; |
![]() |
FunctionRecord: TFunctionRecord; |
![]() |
FPrototype: string; |
![]() |
function GetAllowConversionToConstant: boolean; |
![]() |
function GetBFunctionAddr: TrbwBooleanFunction; |
![]() |
function GetHidden: boolean; |
![]() |
function GetIFunctionAddr: TrbwIntegerFunction; |
![]() |
function GetInputDataCount: integer; |
![]() |
function GetInputDataTypes(const Index: integer): TRbwDataType; |
![]() |
function GetName: string; |
![]() |
function GetOptionalArguments: integer; inline; |
![]() |
function GetResultType: TRbwDataType; |
![]() |
function GetRFunctionAddr: TrbwRealFunction; |
![]() |
function GetSFunctionAddr: TrbwStringFunction; |
![]() |
procedure SetAllowConversionToConstant(const Value: boolean); inline; |
![]() |
procedure SetBFunctionAddr(const Value: TrbwBooleanFunction); |
![]() |
procedure SetHidden(const Value: boolean); inline; |
![]() |
procedure SetIFunctionAddr(const Value: TrbwIntegerFunction); |
![]() |
procedure SetInputDataCount(const Value: integer); |
![]() |
procedure SetInputDataTypes(const Index: integer; const Value: TRbwDataType); |
![]() |
procedure SetName(const Value: string); |
![]() |
procedure SetOptionalArguments(const Value: integer); inline; |
![]() |
procedure SetRFunctionAddr(const Value: TrbwRealFunction); |
![]() |
procedure SetSFunctionAddr(const Value: TrbwStringFunction); |
![]() |
procedure SetSynonyms(const Value: TStrings); |
![]() |
function GetOptionalType: TRbwDataType; |
![]() |
procedure SetOptionalType(const Value: TRbwDataType); |
![]() |
constructor Create; |
![]() |
destructor Destroy; override; |
![]() |
FSynonyms: TStrings; |
|
| |
![]() |
FunctionRecord: TFunctionRecord; |
|
| |
![]() |
FPrototype: string; |
|
| |
![]() |
function GetAllowConversionToConstant: boolean; |
![]() |
function GetBFunctionAddr: TrbwBooleanFunction; |
|
Gets value of BFunctionAddr property | |
![]() |
function GetHidden: boolean; |
|
See Hidden. | |
![]() |
function GetIFunctionAddr: TrbwIntegerFunction; |
|
Gets value of IFunctionAddr property | |
![]() |
function GetInputDataCount: integer; |
|
See InputDataCount. | |
![]() |
function GetInputDataTypes(const Index: integer): TRbwDataType; |
|
See InputDataTypes. | |
![]() |
function GetName: string; |
|
See Name. | |
![]() |
function GetOptionalArguments: integer; inline; |
|
See OptionalArguments. | |
![]() |
function GetResultType: TRbwDataType; |
|
See ResultType. | |
![]() |
function GetRFunctionAddr: TrbwRealFunction; |
|
Gets value of RFunctionAddr property | |
![]() |
function GetSFunctionAddr: TrbwStringFunction; |
|
Gets value of SFunctionAddr property | |
![]() |
procedure SetAllowConversionToConstant(const Value: boolean); inline; |
![]() |
procedure SetBFunctionAddr(const Value: TrbwBooleanFunction); |
|
Sets value of BFunctionAddr property | |
![]() |
procedure SetHidden(const Value: boolean); inline; |
|
See Hidden. | |
![]() |
procedure SetIFunctionAddr(const Value: TrbwIntegerFunction); |
|
Sets value of IFunctionAddr property | |
![]() |
procedure SetInputDataCount(const Value: integer); |
|
See InputDataCount. | |
![]() |
procedure SetInputDataTypes(const Index: integer; const Value: TRbwDataType); |
|
See InputDataTypes. | |
![]() |
procedure SetName(const Value: string); |
|
See Name. | |
![]() |
procedure SetOptionalArguments(const Value: integer); inline; |
|
See OptionalArguments. | |
![]() |
procedure SetRFunctionAddr(const Value: TrbwRealFunction); |
|
Sets value of RFunctionAddr property | |
![]() |
procedure SetSFunctionAddr(const Value: TrbwStringFunction); |
|
Sets value of SFunctionAddr property | |
![]() |
procedure SetSynonyms(const Value: TStrings); |
|
See Synonyms. | |
![]() |
function GetOptionalType: TRbwDataType; |
![]() |
procedure SetOptionalType(const Value: TRbwDataType); |
![]() |
constructor Create; |
|
Users should generally not call | |
![]() |
destructor Destroy; override; |
|
| |
![]() |
property AllowConversionToConstant: boolean
read GetAllowConversionToConstant write SetAllowConversionToConstant; |
|
Normally Pi is an example of a function for which
| |
![]() |
property BFunctionAddr: TRbwBooleanFunction read GetBFunctionAddr
write SetBFunctionAddr; |
|
| |
![]() |
property IFunctionAddr: TRbwIntegerFunction read GetIFunctionAddr
write SetIFunctionAddr; |
|
| |
![]() |
property InputDataCount: integer read GetInputDataCount
write SetInputDataCount; |
|
| |
![]() |
property InputDataTypes[constIndex:integer]: TRbwDataType
read GetInputDataTypes write SetInputDataTypes; |
|
| |
![]() |
property OptionalType: TRbwDataType
read GetOptionalType write SetOptionalType; |
![]() |
property Name: string read GetName write SetName; |
|
| |
![]() |
property Prototype: string read FPrototype write FPrototype; |
|
| |
![]() |
property OptionalArguments: integer read GetOptionalArguments
write SetOptionalArguments; |
|
If If | |
![]() |
property ResultType: TRbwDataType read GetResultType; |
|
Example: Because OptionalArguments is less than 0, the CaseB, CaseI, CaseR, and CaseS functions can take an unlimited number of arguments.
function _CaseBoolean(Values : array of pointer) : boolean;
begin
result := PBoolean(Values[PInteger(Values[0])ˆ])ˆ;
end;
function _CaseInteger(Values : array of pointer) : integer;
begin
result := PInteger(Values[PInteger(Values[0])ˆ])ˆ;
end;
function _CaseDouble(Values : array of pointer) : double;
begin
result := PDouble(Values[PInteger(Values[0])ˆ])ˆ;
end;
function _CaseString(Values : array of pointer) : String;
begin
result := PString(Values[PInteger(Values[0])ˆ])ˆ;
end;
var
CaseBooleanFunction : TFunctionRecord;
CaseIntegerFunction : TFunctionRecord;
CaseDoubleFunction : TFunctionRecord;
CaseStringFunction : TFunctionRecord;
constructor TFunctionStringList.Create;
begin
inherited;
CaseSensitive := False;
Duplicates := dupError;
Sorted := True;
// ... others lines omitted in example.
CaseBooleanFunction.ResultType := rdtBoolean;
CaseBooleanFunction.Name := 'CaseB';
SetLength(CaseBooleanFunction.InputDataTypes, 4);
CaseBooleanFunction.InputDataTypes[0] := rdtInteger;
CaseBooleanFunction.InputDataTypes[1] := rdtBoolean;
CaseBooleanFunction.InputDataTypes[2] := rdtBoolean;
CaseBooleanFunction.InputDataTypes[3] := rdtBoolean;
CaseBooleanFunction.CanConvertToConstant := True;
CaseBooleanFunction.OptionalArguments := -1;
CaseBooleanFunction.BFunctionAddr := _CaseBoolean;
Add(CaseBooleanFunction);
CaseIntegerFunction.ResultType := rdtInteger;
CaseIntegerFunction.Name := 'CaseI';
SetLength(CaseIntegerFunction.InputDataTypes, 4);
CaseIntegerFunction.InputDataTypes[0] := rdtInteger;
CaseIntegerFunction.InputDataTypes[1] := rdtInteger;
CaseIntegerFunction.InputDataTypes[2] := rdtInteger;
CaseIntegerFunction.InputDataTypes[3] := rdtInteger;
CaseIntegerFunction.OptionalArguments := -1;
CaseIntegerFunction.CanConvertToConstant := True;
CaseIntegerFunction.IFunctionAddr := _CaseInteger;
Add(CaseIntegerFunction);
CaseDoubleFunction.ResultType := rdtDouble;
CaseDoubleFunction.Name := 'CaseR';
SetLength(CaseDoubleFunction.InputDataTypes, 4);
CaseDoubleFunction.InputDataTypes[0] := rdtInteger;
CaseDoubleFunction.InputDataTypes[1] := rdtDouble;
CaseDoubleFunction.InputDataTypes[2] := rdtDouble;
CaseDoubleFunction.InputDataTypes[3] := rdtDouble;
CaseDoubleFunction.OptionalArguments := -1;
CaseDoubleFunction.CanConvertToConstant := True;
CaseDoubleFunction.RFunctionAddr := _CaseDouble;
Add(CaseDoubleFunction);
CaseStringFunction.ResultType := rdtString;
CaseStringFunction.Name := 'CaseS';
SetLength(CaseStringFunction.InputDataTypes, 4);
CaseStringFunction.InputDataTypes[0] := rdtInteger;
CaseStringFunction.InputDataTypes[1] := rdtString;
CaseStringFunction.InputDataTypes[2] := rdtString;
CaseStringFunction.InputDataTypes[3] := rdtString;
CaseStringFunction.OptionalArguments := -1;
CaseStringFunction.CanConvertToConstant := True;
CaseStringFunction.SFunctionAddr := _CaseString;
Add(CaseStringFunction);
// ... others lines omitted in example.
end;
| |
![]() |
property RFunctionAddr: TRbwRealFunction read GetRFunctionAddr
write SetRFunctionAddr; |
|
| |
![]() |
property SFunctionAddr: TRbwStringFunction read GetSFunctionAddr
write SetSFunctionAddr; |
|
| |
![]() |
property Hidden: boolean read GetHidden write SetHidden; |
|
| |
![]() |
property Synonyms: TStrings read FSynonyms
write SetSynonyms; |
|
See also
| |