@@ -557,9 +557,54 @@ private Path createStandardLibrary() {
557557 + "\n "
558558 + "interface\n "
559559 + "\n "
560+ + "const\n "
561+ + " vtInteger = 0;\n "
562+ + " vtBoolean = 1;\n "
563+ + " vtChar = 2;\n "
564+ + " vtExtended = 3;\n "
565+ + " vtString = 4;\n "
566+ + " vtPointer = 5;\n "
567+ + " vtPChar = 6;\n "
568+ + " vtObject = 7;\n "
569+ + " vtClass = 8;\n "
570+ + " vtWideChar = 9;\n "
571+ + " vtPWideChar = 10;\n "
572+ + " vtAnsiString = 11;\n "
573+ + " vtCurrency = 12;\n "
574+ + " vtVariant = 13;\n "
575+ + " vtInterface = 14;\n "
576+ + " vtWideString = 15;\n "
577+ + " vtInt64 = 16;\n "
578+ + " vtUnicodeString = 17;\n "
579+ + "\n "
560580 + "type\n "
581+ + " Int8 = ShortInt;\n "
582+ + " Int16 = SmallInt;\n "
583+ + " Int32 = Integer;\n "
584+ + " IntPtr = NativeInt;\n "
585+ + " UInt8 = Byte;\n "
586+ + " UInt16 = Word;\n "
587+ + " UInt32 = Cardinal;\n "
588+ + " UIntPtr = NativeUInt;\n "
589+ + " Float32 = Single;\n "
590+ + " Float64 = Double;\n "
591+ + "\n "
592+ + " HRESULT = type Int32;\n "
593+ + "\n "
561594 + " TArray<T> = array of T;\n "
562595 + "\n "
596+ + " PGUID = ^TGUID;\n "
597+ + " TGUID = record\n "
598+ + " end;\n "
599+ + "\n "
600+ + " PInterfaceEntry = ^TInterfaceEntry;\n "
601+ + " TInterfaceEntry = packed record\n "
602+ + " end;\n "
603+ + "\n "
604+ + " PInterfaceTable = ^TInterfaceTable;\n "
605+ + " TInterfaceTable = packed record\n "
606+ + " end;\n "
607+ + "\n "
563608 + " TObject = class;\n "
564609 + "\n "
565610 + " TClass = class of TObject;\n "
@@ -589,11 +634,11 @@ private Path createStandardLibrary() {
589634 + " class function ClassInfo: Pointer; inline;\n "
590635 + " class function InstanceSize: Longint; inline;\n "
591636 + " class function InheritsFrom(AClass: TClass): Boolean;\n "
592- + " class function MethodAddress(const Name: _ShortStr ): Pointer; overload;\n "
637+ + " class function MethodAddress(const Name: ShortString ): Pointer; overload;\n "
593638 + " class function MethodAddress(const Name: string): Pointer; overload;\n "
594639 + " class function MethodName(Address: Pointer): string;\n "
595640 + " class function QualifiedClassName: string;\n "
596- + " function FieldAddress(const Name: _ShortStr ): Pointer; overload;\n "
641+ + " function FieldAddress(const Name: ShortString ): Pointer; overload;\n "
597642 + " function FieldAddress(const Name: string): Pointer; overload;\n "
598643 + " function GetInterface(const IID: TGUID; out Obj): Boolean;\n "
599644 + " class function GetInterfaceEntry(const IID: TGUID): PInterfaceEntry;\n "
@@ -620,6 +665,8 @@ private Path createStandardLibrary() {
620665 + " function _Release: Integer; stdcall;\n "
621666 + " end;\n "
622667 + "\n "
668+ + " IUnknown = IInterface;\n "
669+ + "\n "
623670 + " IEnumerator = interface(IInterface)\n "
624671 + " function GetCurrent: TObject;\n "
625672 + " function MoveNext: Boolean;\n "
@@ -652,17 +699,54 @@ private Path createStandardLibrary() {
652699 + " function Equals(Value: T): Boolean;\n "
653700 + " end;\n "
654701 + "\n "
702+ + " PLongInt = ^LongInt;\n "
703+ + " PInteger = ^Integer;\n "
704+ + " PCardinal = ^Cardinal;\n "
705+ + " PWord = ^Word;\n "
706+ + " PSmallInt = ^SmallInt;\n "
707+ + " {$POINTERMATH ON}\n "
708+ + " PByte = ^Byte;\n "
709+ + " {$POINTERMATH OFF}\n "
710+ + " PShortInt = ^ShortInt;\n "
711+ + " PUint32 = ^Uint32;\n "
712+ + " PInt64 = ^Int64;\n "
713+ + " PUInt64 = ^UInt64;\n "
714+ + " PLongWord = ^LongWord;\n "
715+ + " PSingle = ^Single;\n "
716+ + " PDouble = ^Double;\n "
717+ + " PDate = ^Double;\n "
718+ + " PWordBool = ^WordBool;\n "
719+ + " PUnknown = ^IUnknown;\n "
720+ + " PPUnknown = ^PUnknown;\n "
721+ + " PInterface = ^IInterface;\n "
722+ + " PPWideChar = ^PWideChar;\n "
723+ + " PPChar = PPWideChar;\n "
724+ + " PExtended = ^Extended;\n "
725+ + " PComp = ^Comp;\n "
726+ + " PCurrency = ^Currency;\n "
727+ + " PVariant = ^Variant;\n "
728+ + " POleVariant = ^OleVariant;\n "
729+ + " PPointer = ^Pointer;\n "
730+ + " PBoolean = ^Boolean;\n "
731+ + " PNativeInt = ^NativeInt;\n "
732+ + " PNativeUInt = ^NativeUInt;\n "
733+ + " PShortString = ^ShortString;\n "
734+ + " PAnsiString = ^AnsiString;\n "
735+ + " PWideString = ^WideString;\n "
736+ + " PUnicodeString = ^UnicodeString;\n "
737+ + " PString = PUnicodeString;\n "
738+ + "\n "
655739 + " PVarRec = ^TVarRec;\n "
656740 + " TVarRec = record\n "
657741 + " case Integer of\n "
658742 + " 0: (case Byte of\n "
659743 + " vtInteger: (VInteger: Integer);\n "
660744 + " vtBoolean: (VBoolean: Boolean);\n "
661- + " vtChar: (VChar: _AnsiChr );\n "
745+ + " vtChar: (VChar: AnsiChar );\n "
662746 + " vtExtended: (VExtended: PExtended);\n "
663- + " vtString: (VString: _PShortStr );\n "
747+ + " vtString: (VString: PShortString );\n "
664748 + " vtPointer: (VPointer: Pointer);\n "
665- + " vtPChar: (VPChar: _PAnsiChr );\n "
749+ + " vtPChar: (VPChar: PAnsiChar );\n "
666750 + " vtObject: (VObject: TObject);\n "
667751 + " vtClass: (VClass: TClass);\n "
668752 + " vtWideChar: (VWideChar: WideChar);\n "
0 commit comments