About the author
Many years ago, I wrote the following regular expression:
^(?:\s*)(class)?(?:\s*)(constructor|destructor|function|operator|procedure)(?:\s*)(\w+\.)*(\w+)(?:\s*)((?:\()((?:\;?\s*)(const|var|out)?(?:\s*)&?(\w+)(,\s*\w+)*(?:\s*\:\s*)&?((\w*)\.)*(\w+)(\s*\=\s*(''.*''|\w+|\d+))?)*(?:\)))*((?:\:\s*)((\w*)\.)*(\w+))?;
to parse the Delphi syntax for declaration of a routine.
Since the addition of generics to Delphi, the above regular expression no longer works, if and when there is a generic type in the declaration.
If I treat a simple generic type declaration as just an identifier, then it would be simple to expand the above regular expression.
However, it seems to me that a generic type declaration can be yet another generic type expression.
More investigations needed, I think.
Learn why the map is cool in Go!
A method to design records so that they're allocated on a specific byte boundary, such as 16 bytes, 512 bytes, 4096 bytes, etc.
Learn the command line used to compile System.pas in Delphi
How to free more space on your home drive by redirecting the location for SDKs in RAD Studio