git-svn-id: https://192.168.0.254/svn/Componentes.Terceros.DevExpressVCL@21 05c56307-c608-d34a-929d-697000501d7a
178 lines
4.3 KiB
ObjectPascal
178 lines
4.3 KiB
ObjectPascal
{
|
|
This unit contains constants used by the compiler and executer.
|
|
}
|
|
{$I ifps3_def.inc}
|
|
unit ifps3common;
|
|
|
|
interface
|
|
|
|
const
|
|
{The name of the main proc }
|
|
IFPSMainProcName = '!MAIN';
|
|
{ The lowest supported build by the executer. }
|
|
IFPSLowBuildSupport = 12;
|
|
{ The current build of the compiler and executer. }
|
|
IFPSCurrentBuildNo = 19;
|
|
{ The current version of the script engine }
|
|
IFPSCurrentversion = '1.03';
|
|
{ The header of a compiled IFPS3 binary must start with this }
|
|
IFPSValidHeader = 1397769801;
|
|
{ Start of the positive stack }
|
|
IFPSAddrStackStart = 1610612736;
|
|
{ Start of the negative stack }
|
|
IFPSAddrNegativeStackStart = 1073741824;
|
|
type
|
|
{ TIFPSBaseType is the most basic type -type }
|
|
TIFPSBaseType = Byte;
|
|
{
|
|
@link(OnUseVariable)
|
|
TIFPSVariableType is used in TIFPSComp.OnUseVariable event }
|
|
TIFPSVariableType = (ivtGlobal, ivtParam, ivtVariable);
|
|
|
|
const
|
|
{ Executer internal type for return addresses, can not be used as a type }
|
|
btReturnAddress = 0;
|
|
{ A 1 byte unsigned integer (byte) }
|
|
btU8 = 1;
|
|
{ A 1 byte signed integer (Shortint) }
|
|
btS8 = 2;
|
|
{ A 2 byte unsigned integer (word) }
|
|
btU16 = 3;
|
|
{ A 2 byte signed integer (smallint) }
|
|
btS16 = 4;
|
|
{ A 4 byte unsigned integer (cardinal/longword) }
|
|
btU32 = 5;
|
|
{ A 4 byte signed integer (Integer/Longint) }
|
|
btS32 = 6;
|
|
{ A 4 byte float (single) }
|
|
btSingle = 7;
|
|
{ A 8 byte float (double) }
|
|
btDouble = 8;
|
|
{ A 10 byte float (extended) }
|
|
btExtended = 9;
|
|
{ A string }
|
|
btString = 10;
|
|
{ A record }
|
|
btRecord = 11;
|
|
{ An array}
|
|
btArray = 12;
|
|
{ A pointer }
|
|
btPointer = 13;
|
|
{ A PChar (internally the same as a string) }
|
|
btPChar = 14;
|
|
{ A resource pointer: Variable that can contain things from outside the script engine }
|
|
btResourcePointer = 15;
|
|
{ A variant }
|
|
btVariant = 16;
|
|
{$IFNDEF NOINT64}
|
|
{ An 8 byte signed integer (int64) }
|
|
btS64 = 17;
|
|
{$ENDIF}
|
|
btChar = 18;
|
|
{$IFNDEF NOWIDESTRING}
|
|
btWideString = 19;
|
|
btWideChar = 20;
|
|
{$ENDIF}
|
|
{ Compile time procedural pointer (will be btu32 when compiled) }
|
|
btProcPtr = 21;
|
|
{ Compile time class type; In IFPS3 external classes are not of one defined type (They could be anything from an integer to a pointer) }
|
|
btClass = 128;
|
|
{ Compile time enumeration; This will be a btu32 when compiled }
|
|
btEnum = 129;
|
|
|
|
|
|
{ Make a hash of a string }
|
|
function MakeHash(const s: string): Longint;
|
|
|
|
const
|
|
{ Script internal command: Assign command }
|
|
CM_A = 0;
|
|
{ Script internal command: Calculate Command }
|
|
CM_CA = 1;
|
|
{ Script internal command: Push}
|
|
CM_P = 2;
|
|
{ Script internal command: Push Var}
|
|
CM_PV = 3;
|
|
{ Script internal command: Pop}
|
|
CM_PO = 4;
|
|
{ Script internal command: Call}
|
|
Cm_C = 5;
|
|
{ Script internal command: Goto}
|
|
Cm_G = 6;
|
|
{ Script internal command: Conditional Goto}
|
|
Cm_CG = 7;
|
|
{ Script internal command: Conditional NOT Goto}
|
|
Cm_CNG = 8;
|
|
{ Script internal command: Ret}
|
|
Cm_R = 9;
|
|
{ Script internal command: Set Stack Type}
|
|
Cm_ST = 10;
|
|
{ Script internal command: Push Type}
|
|
Cm_Pt = 11;
|
|
{ Script internal command: Compare}
|
|
CM_CO = 12;
|
|
{ Script internal command: Call Var}
|
|
Cm_cv = 13;
|
|
{ Script internal command: Set Pointer}
|
|
cm_sp = 14;
|
|
{ Script internal command: Boolean NOT}
|
|
cm_bn = 15;
|
|
{ Script internal command: Var Minus}
|
|
cm_vm = 16;
|
|
{ Script internal command: Set Flag}
|
|
cm_sf = 17;
|
|
{ Script internal command: Flag Goto}
|
|
cm_fg = 18;
|
|
{ Script internal command: Push Exception Handler}
|
|
cm_puexh = 19;
|
|
{ Script internal command: Pop Exception Handler}
|
|
cm_poexh = 20;
|
|
{ Script internal command: Integer NOT}
|
|
cm_in = 21;
|
|
|
|
|
|
type
|
|
{Byte}
|
|
TbtU8 = Byte;
|
|
{Shortint}
|
|
TbtS8 = ShortInt;
|
|
{word}
|
|
TbtU16 = Word;
|
|
{Smallint}
|
|
TbtS16 = SmallInt;
|
|
{Cardinal/Longword}
|
|
TbtU32 = Cardinal;
|
|
{Integer/Longint}
|
|
TbtS32 = Longint;
|
|
{Single}
|
|
TbtSingle = Single;
|
|
{Double}
|
|
TbtDouble = double;
|
|
{Extended}
|
|
TbtExtended = Extended;
|
|
{String/Pchar}
|
|
TbtString = string;
|
|
{$IFNDEF NOINT64}
|
|
{ An 8 byte signed integer (int64) }
|
|
tbts64 = int64;
|
|
{$ENDIF}
|
|
tbtchar = char;
|
|
{$IFNDEF NOWIDESTRING}
|
|
tbtwidestring = widestring;
|
|
tbtwidechar = widechar;
|
|
{$ENDIF}
|
|
|
|
implementation
|
|
|
|
function MakeHash(const s: string): Longint;
|
|
{small hash maker}
|
|
var
|
|
I: Integer;
|
|
begin
|
|
Result := 0;
|
|
for I := 1 to Length(s) do
|
|
Result := ((Result shl 7) or (Result shr 25)) + Ord(s[I]);
|
|
end;
|
|
|
|
end.
|