https://sourceforge.net/projects/pascalxe/
2022年6月21日 星期二
Quartex Pascal – Research and development for the next generation object pascal
Quartex Pascal – Research and development for the next generation object pascal
Welcome to the official website for Quartex Pascal, an exciting Object Pascal development toolchain for writing modern, HTML5 and node.js powered applications.
Quartex Pascal (short: QTX) is an object pascal IDE, compiler, run-time library and development system. Unlike traditional, native development systems, such as C/C++, Delphi or Freepascal, QTX generates high performance JavaScript – allowing developers to tap into web technology and enjoy the full might of modern mobile, desktop and server development.
https://jonlennartaasenden.wordpress.com/2021/10/05/quartex-pascal-nearing-completion/
https://quartexpascal.wordpress.com/
https://jonlennartaasenden.wordpress.com/category/quartex-pascal/
wscript.shell delphi mrxray VBScript を操作 PowerShell を使用する
http://mrxray.on.coocan.jp/Delphi/plSamples/950_VBScript.htm
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q10170636575
Set objWS = WScript.CreateObject ("WScript.shell")
https://msdn.microsoft.com/ja-jp/library/cc422072.aspx
http://mrxray.on.coocan.jp/Delphi/plSamples/490_CmdPrompt1.htm#06
http://www14.big.or.jp/~ken1/tech/tech15.html
2022年6月19日 星期日
win32 call net dll pinvoke vbscript How to Call a .NET DLL from a VBScript
ExtendedProperties object - MicrosoftDocs/win32 - GitHub
https://github.com › docs › SecCrypto › e...
Instead, use Platform Invocation Services (PInvoke) to call the Win32 API function ... NET Cryptography with CAPICOM and P/Invoke may also be helpful.].
https://stackoverflow.com/questions/1823466/how-to-call-a-net-dll-from-a-win32-process
https://docs.microsoft.com/en-us/previous-versions/dotnet/netframework-1.1/eew13bza(v=vs.71)?redirectedfrom=MSDN
You can use registration-free COM with .NET COM components - see here.
Another option is to use C++/CLI as a bridge. People are mostly familiar with using it to wrap unmanaged APIs to expose to managed code, but it actually works both ways - it is possible to compile with /clr, and yet produce a .dll assembly with plain unmanaged exports, which can be called from unmanaged code as usual. Here's a very simple example that exposes System::String::ToUpper that way:
https://docs.microsoft.com/en-us/dotnet/framework/interop/registration-free-com-interop?redirectedfrom=MSDN
https://docs.microsoft.com/en-us/archive/msdn-magazine/2006/august/clr-inside-out-clr-hosting-apis
https://docs.microsoft.com/en-us/previous-versions/dotnet/netframework-1.1/eew13bza(v=vs.71)?redirectedfrom=MSDN
https://www.codeproject.com/Questions/613693/Creating-a-Win32-DLL-and-calling-from-a-NET-Applic
http://www.blong.com/Articles/DotNetInteropD8/Interop1/Win32AndDotNetInterop.htm
https://www.nuget.org/packages/PInvoke.Win32/
https://github.com/dotnet/pinvoke
https://blog.lindexi.com/post/%E6%8E%A8%E8%8D%90%E5%AE%98%E6%96%B9%E5%BC%80%E6%BA%90-PInvoke-%E5%BA%93-%E5%8C%85%E5%90%AB%E5%A4%A7%E9%87%8F-win32-%E5%B0%81%E8%A3%85.html
https://stackoverflow.com/questions/57501366/how-to-access-pinvoke-dll-from-dll-com-c-sharp-project
https://msdn.microsoft.com/en-us/ie/aa288468(v=vs.94)
https://msdn.microsoft.com/en-us/ie/system.runtime.interopservices.dllimportattribute(v=vs.94)
http://pinvoke.net
https://www.mono-project.com/docs/advanced/pinvoke/
https://stackoverflow.com/questions/54537513/calling-iswowprocess2-from-c-sharp-net-p-invoke
pinvoke win32 call net Framework
https://github.com/lucasg/Dependencies
Between C# and C++: COM Interop, Marshaling, PInvoke and DLL Communitation
What is the difference between pInvoke and COM Interop?
Example COM Class (C# Programming Guide)
平台叫用 (P/Invoke)https://docs.microsoft.com/zh-tw/dotnet/standard/native-interop/pinvoke
Platform Invoke (P/Invoke) (上一個英文版)https://docs.microsoft.com/en-us/dotnet/standard/native-interop/pinvoke
https://flylib.com/books/en/2.31.1/com_interop_pinvoke.html
https://stackoverflow.com/questions/71378349/how-do-i-call-a-net-core-6-0-dll-in-delphi
https://stackoverflow.com/questions/13839372/how-to-return-an-error-from-tcomobjectfactory-createcomobjectconst-controller
https://github.com/dotnet/runtime/issues/61231
https://www.codeproject.com/Tips/1038605/NET-Runtime-Library-for-Delphi
pinvoke win32 call net delphi TComObject
http://www.blong.com/conferences/dcon2003/internals/profiling.htm
https://stackoverflow.com/questions/96042/whats-safecall
round rect Corner button rectangular region rounded corners Round Border CreateRoundRectRgn rectangular region rounded corners.
round rect Corner button rectangular region rounded corners Round Border
The CreateRoundRectRgn function creates a rectangular region with rounded corners.
CreatePolyPolygonRgn
CreatePolygonRgn
CreateRectRgn
CreateRectRgnIndirect
DeleteObject
ExtCreateRegion
GetRegionData
Region Functions
Regions Overview
SelectObject
https://stackoverflow.com/questions/11675374/how-to-make-tframe-with-rounded-corners
https://github.com/pauloalvis/Delphi-PraButtonStyle
https://stackoverflow.com/questions/28486521/rounded-edges-in-button-c-sharp-winforms
https://stackoverflow.com/questions/21121968/how-do-i-create-button-with-rounded-corners-edges-on-winform-c
https://stackoverflow.com/questions/5755719/rounded-and-titled-tpanel-in-delphi-7
https://stackoverflow.com/questions/11675374/how-to-make-tframe-with-rounded-corners
https://stackoverflow.com/questions/42345751/firemonkey-hide-overflow-of-round-corners-using-stylebook
https://stackoverflow.com/questions/61159652/is-there-a-way-to-shape-a-button-around-its-picture-in-delphi
wincontrols round rect Corner CreateRoundRectRgn RoundedRadDropDownButton
https://github.com/project-jedi/jvcl/blob/master/jvcl/run/JvThemes.pas
2022年6月17日 星期五
Ladder Industrial Control Unit MC14500 PLC-14500 MC-14500, also called Industrial Control Unit (ICU) was a CMOS processor WDR-1-Bit-Computer
https://github.com/nicolacimmino/PLC-14500
https://hackaday.io/project/170548-wdr-1-bit-computer
2022年6月15日 星期三
Free Core Line - Free Icons Set - 1000 customizable PNGs, SVGs, PDFs
https://www.streamlinehq.com/icons/streamline-mini-line
2022年6月14日 星期二
curiously recurring template pattern delphi generics TLIST TBASE
curiously recurring template pattern
https://stackoverflow.com/questions/3991788/can-a-delphi-generic-class-descend-from-its-class-argument
https://blog.grijjy.com/2022/01/25/crgp/
The Curiously Recurring Generic Pattern
https://www.fluentcpp.com/2017/05/12/curiously-recurring-template-pattern/
The Curiously Recurring Template Pattern (CRTP) - Fluent C++
https://9to5answer.com/practical-uses-for-the-quot-curiously-recurring-template-pattern-quot
https://dev.to/sandordargo/the-curiously-recurring-template-pattern-crtp-46j7
The Curiously Recurring Template Pattern (CRTP)
https://dev.to/sandordargo/the-curiously-recurring-template-pattern-crtp-46j7
https://en.cppreference.com/w/cpp/language/crtp
https://www.geeksforgeeks.org/curiously-recurring-template-pattern-crtp-2/
https://rosettacode.org/wiki/Singleton
https://habr.com/en/post/307902/
Преобразование обычного класса в странно повторяющийся шаблон / Habr
https://wdv4758h.github.io/notes/cpp/crtp.html
CRTP (Curiously Recurring Template Pattern) — wdv4758h-notes latest 說明文件
https://stackoverflow.com/questions/43322010/generics-in-delphi-and-returning-a-reference-to-tlistclass
https://dm7blog.wordpress.com/2019/05/15/delphide-linked-list-ve-tlist-kullanimi/
2022年6月11日 星期六
Linking to Delphi (API interface) Necessary files The following files are needed in order to link the DLL into Delphi programs: TcAdsDll.dll - dynamic function library
https://infosys.beckhoff.com/english.php?content=../content/1033/tcsample_bdelphi/html/TcAdsDLL_COM_Delphi_Setup.htm&id=
Linking to Delphi XE2 (COM interface)
The TcAdsDll.dll type library has to be imported (TcAdsDll_TLB.pas unit). Depending on the Delphi version, manual adjustments may be required in order to ensure error-free translation.
Requirements
Delphi XE2;
TwinCAT 2.9 or higher;
TcAdsDll.dll - dynamic function library located in the Windows NT/2000 /XP/... 'System32' directory.
Import Type Library
1. Select Component -> Import component menu command. In dialog window select the option: Import type library and confirm with the Next button.
2022年6月10日 星期五
Windows API的GetLogicalProcessorInformation可取得當前電腦的物理核心數邏輯核心數
https://docs.microsoft.com/en-us/windows/win32/api/sysinfoapi/nf-sysinfoapi-getlogicalprocessorinformation
http://msdn.microsoft.com/en-us/library/ms683194(v=vs.85).aspx
GetLogicalProcessorInformation function
GetLogicalProcessorInformation
http://msdn.microsoft.com/en-us/library/ms686694(v=vs.85).aspx
SYSTEM_LOGICAL_PROCESSOR_INFORMATION structure
http://msdn.microsoft.com/en-us/library/ms684197(v=vs.85).aspx
LOGICAL_PROCESSOR_RELATIONSHIP enumeration
http://msdn.microsoft.com/en-us/library/ms681979(v=vs.85).aspx
CACHE_DESCRIPTOR structure
http://msdn.microsoft.com/en-us/library/ms684844(v=vs.85).aspx
PROCESSOR_CACHE_TYPE enumeration
GetProcessorCoreCount(DWORD &PhysicalProcessorCoreCount,DWORD &LogicalProcessorCoreCount )
{
typedef BOOL(WINAPI *LPFN_GLPI)(
PSYSTEM_LOGICAL_PROCESSOR_INFORMATION,
PDWORD);
LPFN_GLPI glpi = (LPFN_GLPI)GetProcAddress(GetModuleHandle(TEXT("kernel32")), "GetLogicalProcessorInformation");
if (NULL == glpi)
return 0;
PSYSTEM_LOGICAL_PROCESSOR_INFORMATION buffer = NULL;
DWORD returnLength = 0;
PhysicalProcessorCoreCount = 0;
LogicalProcessorCoreCount = 0;
while (true)
{
DWORD rc = glpi(buffer, &returnLength);
if (FALSE == rc)
{
if (GetLastError() == ERROR_INSUFFICIENT_BUFFER)
{
if (buffer)
free(buffer);
buffer = (PSYSTEM_LOGICAL_PROCESSOR_INFORMATION)malloc(
returnLength);
if (NULL == buffer)
return 0;
}
else
{
return 0;
}
}
else
{
break;
}
}
PSYSTEM_LOGICAL_PROCESSOR_INFORMATION ptr = buffer;
DWORD byteOffset = 0;
while (byteOffset + sizeof(SYSTEM_LOGICAL_PROCESSOR_INFORMATION) <= returnLength)
{
switch (ptr->Relationship)
{
case RelationProcessorCore:
{
++PhysicalProcessorCoreCount;
// count the logical processor, which is equal the count of digital 1's of ptr->ProcessorMask
ULONG_PTR ProcessorMask = ptr->ProcessorMask;
while (ProcessorMask != 0)
{
ProcessorMask &= ProcessorMask - 1;
LogicalProcessorCoreCount++;
}
break;
}
default:
break;
}
byteOffset += sizeof(SYSTEM_LOGICAL_PROCESSOR_INFORMATION);
++ptr;
}
free(buffer);
return -1;
}
https://en.wikipedia.org/wiki/Hyper-threading
使用GetLogicalProcessorInformation获取逻辑处理器的详细信息(NUMA节点数、物理CPU数、CPU核心数、逻辑CPU数、各级Cache)
https://www.cnblogs.com/findumars/p/4805207.html
https://stackoverflow.com/questions/66130195/delphi-getlogicalprocessorinformation-x64
2022年6月9日 星期四
Typesetting software TeX LyX MiKTeX CJKutf8 LyX MiKTeX CJKutf8 REVTeX
https://en.wikipedia.org/wiki/Category:Typesetting_software
https://zh.wikipedia.org/zh-tw/TeX
ShellExecute Madness
https://github.com/search?l=Pascal&q=ShellExecute+Madness&type=Code
http://vbnet.mvps.org/index.html?code/shell/shellexecute.htm
2022年6月3日 星期五
Categories Data Structures
TArray
TDictionary
TEnumerable
TEnumerator
TList
TObjectDictionary
TObjectList
TObjectQueue
TObjectStack
TQueue
TStack
TThreadedQueue
TThreadList
https://docwiki.embarcadero.com/Libraries/Sydney/en/System.Generics.Collections
https://delphisources.ru/pages/faq/master-delphi-7/content/LiB0053.html
delphi TTreeNode Structures data TDictionary
https://docwiki.embarcadero.com/Libraries/Sydney/en/System.LibModuleList
linked list of records
https://docwiki.embarcadero.com/Libraries/Sydney/en/Vcl.Controls.TDockZone
https://docwiki.embarcadero.com/Libraries/Sydney/en/Vcl.ActnMan.TActionManager.LinkedActionLists
delphi TTreeNode Structures data TDictionary
https://docwiki.embarcadero.com/RADStudio/Sydney/en/About_Data_Types_(Delphi)
https://devopedia.org/data-structures
https://en.wikipedia.org/wiki/Linked_list
https://docwiki.embarcadero.com/Libraries/Alexandria/en/System.Classes.TList.Sort
https://docwiki.embarcadero.com/Libraries/Alexandria/en/System.Classes.TStringList.CustomSort
https://www.geeksforgeeks.org/sorting-algorithms/
https://rosettacode.org/wiki/Sorting_algorithms/Bubble_sort
https://docwiki.embarcadero.com/Libraries/Alexandria/en/System.Classes.TCollection
https://docwiki.embarcadero.com/RADStudio/Alexandria/en/Working_with_Lists
2022年6月1日 星期三
Delphi TButton How to make Delphi TButton control stay pressed?
https://stackoverflow.com/questions/46934591/how-to-make-delphi-tbutton-control-stay-pressed
Vcl.Themes,
Vcl.Styles ;
StyleAPI
StyleElements
FInternalImageList
TSeStyle
procedure TSysStyleHook.UpdateColors;
begin
if (OverrideEraseBkgnd) or (OverridePaint) then
Color := StyleServices.GetStyleColor(scWindow)
else
Color := clBtnFace;
if OverrideFont then
FontColor := StyleServices.GetSystemColor(clWindowText)
else
FontColor := clBlack;
end;
procedure TSysStyleHook.SetStyleElements(Value: TStyleElements);
begin
if Value <> FStyleElements then
begin
FStyleElements := Value;
OverridePaint := (seClient in FStyleElements);
// OverrideEraseBkgnd := OverridePaint;
OverridePaintNC := (seBorder in FStyleElements);
OverrideFont := (seFont in FStyleElements);
end;
end;
TCustomButton = class(TButtonControl)
FImages: TCustomImageList;
FInternalImageList: TImageList;
procedure TCustomButton.SetImages(const Value: TCustomImageList);
procedure TCustomButton.UpdateImages;
begin
if CheckWin32Version(5, 1) and (FImageIndex <> -1) then
begin
FInternalImageList.Clear;
// PBS_NORMAL
FInternalImageList.AddImage(FImages, FImageIndex);
// PBS_HOT
if FHotImageIndex <> -1 then
FInternalImageList.AddImage(FImages, FHotImageIndex)
else
FInternalImageList.AddImage(FImages, FImageIndex);
// PBS_PRESSED
if FPressedImageIndex <> -1 then
FInternalImageList.AddImage(FImages, FPressedImageIndex)
else
TButtonImageList BUTTON_IMAGELIST
https://docs.microsoft.com/zh-tw/windows/win32/api/commctrl/nf-commctrl-imagelist_replace
ImageList_Replace function (commctrl.h)
hbmImage
Type: HBITMAP
A handle to the bitmap that contains the image.
hbmMask
Type: HBITMAP
https://theroadtodelphi.com/category/vcl-styles/
https://delphiaball.co.uk/2014/10/22/adding-vcl-styles-runtime/
https://github.com/RRUZ/vcl-styles-utils
https://stackoverflow.com/questions/14031125/styling-only-one-vcl-component-in-delphi
https://theroadtodelphi.com/2012/02/06/changing-the-color-of-edit-controls-with-vcl-styles-enabled/
https://blogs.embarcadero.com/vcl-per-control-styles-coming-in-rad-studio-10-4/
2022年5月31日 星期二
delphi DataSource TDataSetProvider local data
MyBaseを試してみる。(フィールド作成編): Delphi-fan
http://hiderin.air-nifty.com/delphi/2011/09/mybase-dcff.html
http://delphi.ktop.com.tw/board.php?cid=30&fid=66&tid=51084
https://blog.karatos.in/a?ID=00200-12c89300-5e82-48ad-ada0-aab6e1319adf
https://stackoverflow.com/questions/67149100/how-to-detect-user-either-in-dbgrid-or-clientdataset-has-deleted-data-in-a-cell
https://www.delphipower.xyz/guide_6/working_with_data_using_a_client_dataset.html
delphi DataSource TDataSetProvider Advanced Data TableGram ADTG
https://docwiki.embarcadero.com/Libraries/Sydney/en/Data.Win.ADODB.TPersistFormat
https://torry.net/quicksearchd.php?String=dataset&page=6
https://github.com/osmanatam/delphi-foundations
https://github.com/osmanatam/delphi-foundations
https://github.com/zhugecaomao/DelphiSourceCodeCollection
FMX Utilities
Tweaks to TClipboard code to compile with newer FMX versions
Misc/Generics.Defaults if done with metaclasses
XE2 book
01. Language basics
02. Enums, numbers, dates and times
04. Classes and records
05. String handling
06. Arrays, collections and enumerators
07. Basic IO
08. Streams
Cleaned up source for fuller visual control demo
09. ZIP, XML, Registry and INI files
10. Packages
11. Dynamic typing and expressions
12. RTTI
13. Native APIs
Make comment more precise
14. Dynamic libraries
15. Multithreading
Another little FileSearchThread.pas thing
delphi image TResourceStream standard Microsoft SDK resource compiler
standard Microsoft SDK resource compiler
https://github.com/graphics32/GR32PNG
RC.EXE, the Microsoft SDK Resource Compiler
https://forum.lazarus.freepascal.org/index.php?topic=12312.0
https://www.wireshark.org/docs/wsdg_html_chunked/ChToolsMSChain.html
https://support.microsoft.com/en-us/topic/an-updated-resource-compiler-for-the-windows-sdk-for-windows-server-2008-and-for-the-net-framework-3-5-is-now-available-a716ac6a-19a7-5b45-b5df-55980cd4cdb4
https://archicadapi.graphisoft.com/documentation/graphisoft-resource-compiler-4
https://docs.microsoft.com/zh-tw/windows/win32/menurc/resource-compiler
https://en.wikibooks.org/wiki/Windows_Programming/Resource_Scripts
Var
jpg: TJPEGImage;
resStream: TResourceStream;
begin
jpg := TJPEGImage.Create;
resStream := TResourceStream.Create(HInstance, 'testJpg', 'jpgtype');
jpg.LoadFromStream(resStream);
Image1.Picture.Assign(jpg);
jpg.Free;
resStream.Free;
end;
//RC: testBmp bitmap res\test.bmp
Image1.Picture.Bitmap.LoadFromResourceName(HInstance, 'res\test.bmp');
//RC: testBmp bmptype res\test.bmp
var
resStream: TResourceStream;
begin
resStream := TResourceStream.Create(HInstance, 'testBmp', 'bmptype');
Image1.Picture.Bitmap.LoadFromStream(resStream);
resStream.Free;
end;
http://melander.dk/reseditor/
https://wiki.freepascal.org/Lazarus_Resources
https://github.com/MicrosoftDocs/win32/blob/docs/desktop-src/menurc/resource-compiler.md
Microsoft platform SDK Resource Compiler
https://docwiki.embarcadero.com/RADStudio/Sydney/en/RC.EXE,_the_Microsoft_SDK_Resource_Compiler
https://delphi.cjcsoft.net/viewthread.php?tid=43646
Title: Extracting Resource Data from an Exe
Question: Article 832 mentions how one can put Files into an Exe. This shows you how you can get it out
Answer:
I've written a simple function that does this for you, just cut and paste (some detail is below)
procedure ExtractToFile(Instance:THandle; ResID:Integer; ResType, FileName:String);
var
ResStream: TResourceStream;
FileStream: TFileStream;
begin
try
ResStream := TResourceStream.CreateFromID(Instance, ResID, pChar(ResType));
try
//if FileExists(FileName) then
//DeleteFile(pChar(FileName));
FileStream := TFileStream.Create(FileName, fmCreate);
try
FileStream.CopyFrom(ResStream, 0);
finally
FileStream.Free;
end;
finally
ResStream.Free;
end;
except
on E:Exception do
begin
DeleteFile(FileName);
raise;
end;
end;
end;
https://docwiki.embarcadero.com/Libraries/Sydney/en/System.Classes.TResourceStream
https://github.com/osmanatam/delphi-foundations/tree/ea2c878f01107146674bd92ea518908d8f3e185d/XE2%20book/08.%20Streams/TResourceStream
2022年5月29日 星期日
Spiral transform image algorithm rotatey region around
[ GDI+ サンプル ] [ G080_RotateTransform による画像とオブジェクトの回転 ] - Mr.XRAY
https://stackoverflow.com/questions/65163260/image-transformation-python
https://medium.com/analytics-vidhya/opencv-perspective-transformation-9edffefb2143
https://en.wikipedia.org/wiki/Archimedean_spiral#General_Archimedean_spiral
https://docs.opencv.org/3.4/da/d54/group__imgproc__transform.html#gab75ef31ce5cdfb5c44b6da5f3b908ea4
The Rick Sammon Swirl Effect
https://www.geeks3d.com/20110428/shader-library-swirl-post-processing-filter-in-glsl/
delphi form Transparent blur Msimg32.dll AlphaBlend
https://stackoverflow.com/questions/5964701/how-to-draw-a-translucent-image-on-a-form
transparent background http://delphiexamples.com/forms/transpform.html
https://sourceforge.net/projects/widget32/
https://parnassus.co/transparent-graphics-with-pure-gdi-part-2-and-introducing-the-ttransparentcanvas-class/
Form com área transparente no Lazarus/Windows
http://fanzinepas.blogspot.com/2012/06/form-com-area-transparente-no.html
THandle CreateRectRgn CreateRectRgn SetWindowRgn Winuser.h
https://www.codeguru.com/cplusplus/transparent-listbox/
https://stackoverflow.com/questions/48511634/partially-transparent-window-opengl-win32
winapi Transparent form layer GetMonitorInfo
https://www.experts-exchange.com/articles/1783/Win32-Semi-Transparent-Window.html
Layered Windows
https://docs.microsoft.com/en-us/previous-versions/ms997507(v=msdn.10)?redirectedfrom=MSDN
https://www.codeproject.com/Articles/1822/Per-Pixel-Alpha-Blend-in-C
http://suyamasoft.blue.coocan.jp/ExcelVBA/Sample/SetLayeredWindowAttributes/index.html
http://suyamasoft.blue.coocan.jp/ExcelVBA/Sample/SetLayeredWindowAttributes/index.html
https://docs.microsoft.com/en-us/windows/win32/winauto/magapi/magapi-intro
Žarko Gajić gZoom – Delphi Implementation of the Missing Mode in Windows Magnifier
https://zarko-gajic.iz.hr/gzoom-delphi-implementation-of-the-missing-mode-in-windows-magnifier/
https://www.codeproject.com/Articles/5051/Various-methods-for-capturing-the-screen
https://www.codeproject.com/Articles/607288/Screenshot-using-the-Magnification-library
2022年5月28日 星期六
swig parsing llvm parsing Delphi2Cpp conversion C++ translating Pascal Delphi
https://blog.mbedded.ninja/programming/languages/python/python-swig-bindings-from-cplusplus/
https://code.google.com/archive/p/swig-gsoc/wikis/ProjectIdeas.wiki
https://en.delphipraxis.net/topic/940-delphi-compiler-need-to-be-opensourced/?page=4
https://swig-devel.narkive.com/qhi42Zwz/delphi-module
https://www.swig.org/
https://www.swig.org/Doc1.3/Extending.html
https://stackoverflow.com/questions/38884979/parsing-a-header-file-using-swig
https://stackoverflow.com/questions/10373935/pascal-to-c-converter
https://sites.google.com/a/chromium.org/dev/blink/webidl
https://en.wikipedia.org/wiki/Comparison_of_parser_generators
https://en.wikipedia.org/wiki/Source-to-source_compiler
https://en.wikipedia.org/wiki/Language_binding
https://wiki.freepascal.org/C_to_Pascal
https://wiki.lazarus.freepascal.org/User:Roozbeh
https://discourse.panda3d.org/t/help-with-swig/570
Developer Tools Code Code Convertors
https://torry.net/pages.php?id=1518
llvm parsing pascal
https://intel.github.io/llvm-docs/clang_doxygen/ParseExprCXX_8cpp_source.html
https://forum.lazarus.freepascal.org/index.php?topic=43007.15
https://github.com/mladedav/mila-compiler
https://github.com/FrozenGene/LLVMPascalCompiler
https://aclanthology.org/people/p/pascal-denis/
http://www.eteks.com/jeks/en/doc/com/eteks/parser/PascalSyntax.html
https://www.freepascal.org/docs-html/user/userse62.html
https://en.wikipedia.org/wiki/Comparison_of_Pascal_and_C
https://www.codeproject.com/Articles/371453/Visual-AST-for-ANTLR-Generated-Parser-Output
https://github.com/RomanYankovsky/DelphiAST
https://www.texttransformer.com/Delphi2Cpp_en.html
http://ivan.vecerina.com/code/delphi2cpp/
https://www.codeproject.com/Articles/10115/Crafting-an-interpreter-Part-1-Parsing-and-Grammar
https://www.codeproject.com/Articles/10142/Crafting-an-interpreter-Part-2-The-Calc0-Toy-Langu
https://www.codeproject.com/Articles/10421/Crafting-an-interpreter-Part-3-Parse-Trees-and-Syn