@@ -557,9 +557,54 @@ private Path createStandardLibrary() {
557
557
+ "\n "
558
558
+ "interface\n "
559
559
+ "\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 "
560
580
+ "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 "
561
594
+ " TArray<T> = array of T;\n "
562
595
+ "\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 "
563
608
+ " TObject = class;\n "
564
609
+ "\n "
565
610
+ " TClass = class of TObject;\n "
@@ -589,11 +634,11 @@ private Path createStandardLibrary() {
589
634
+ " class function ClassInfo: Pointer; inline;\n "
590
635
+ " class function InstanceSize: Longint; inline;\n "
591
636
+ " 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 "
593
638
+ " class function MethodAddress(const Name: string): Pointer; overload;\n "
594
639
+ " class function MethodName(Address: Pointer): string;\n "
595
640
+ " class function QualifiedClassName: string;\n "
596
- + " function FieldAddress(const Name: _ShortStr ): Pointer; overload;\n "
641
+ + " function FieldAddress(const Name: ShortString ): Pointer; overload;\n "
597
642
+ " function FieldAddress(const Name: string): Pointer; overload;\n "
598
643
+ " function GetInterface(const IID: TGUID; out Obj): Boolean;\n "
599
644
+ " class function GetInterfaceEntry(const IID: TGUID): PInterfaceEntry;\n "
@@ -620,6 +665,8 @@ private Path createStandardLibrary() {
620
665
+ " function _Release: Integer; stdcall;\n "
621
666
+ " end;\n "
622
667
+ "\n "
668
+ + " IUnknown = IInterface;\n "
669
+ + "\n "
623
670
+ " IEnumerator = interface(IInterface)\n "
624
671
+ " function GetCurrent: TObject;\n "
625
672
+ " function MoveNext: Boolean;\n "
@@ -652,17 +699,54 @@ private Path createStandardLibrary() {
652
699
+ " function Equals(Value: T): Boolean;\n "
653
700
+ " end;\n "
654
701
+ "\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 "
655
739
+ " PVarRec = ^TVarRec;\n "
656
740
+ " TVarRec = record\n "
657
741
+ " case Integer of\n "
658
742
+ " 0: (case Byte of\n "
659
743
+ " vtInteger: (VInteger: Integer);\n "
660
744
+ " vtBoolean: (VBoolean: Boolean);\n "
661
- + " vtChar: (VChar: _AnsiChr );\n "
745
+ + " vtChar: (VChar: AnsiChar );\n "
662
746
+ " vtExtended: (VExtended: PExtended);\n "
663
- + " vtString: (VString: _PShortStr );\n "
747
+ + " vtString: (VString: PShortString );\n "
664
748
+ " vtPointer: (VPointer: Pointer);\n "
665
- + " vtPChar: (VPChar: _PAnsiChr );\n "
749
+ + " vtPChar: (VPChar: PAnsiChar );\n "
666
750
+ " vtObject: (VObject: TObject);\n "
667
751
+ " vtClass: (VClass: TClass);\n "
668
752
+ " vtWideChar: (VWideChar: WideChar);\n "
0 commit comments