Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#1

Warum kennt Delphi eigentlich keine Makros?

  Alt 28. Okt 2012, 18:38
Warum kennt Delphi eigentlich immernoch keine Makros?
Vorallem beim Übersetzen von C-Headern wäre sowas einfach zu praktisch.


So schwer sollte das doch nicht zu implementieren sein?
Und es, bezüglich der Delphi-Language, kompatibel zu implementieren ist och nicht unmöglich.

Delphi-Quellcode:
{$DEFINEMACRO param '; xyz: Integer'}
{$DEFINEMACRO param_x ', xyz'}
{$DEFINEMACRO say 'Beep; ShowMessage(''Hello %1'');' string}
{$DEFINEMACRO msg '(''%3'' + Format('' %%s %%d'', [''%1'', %2]))' string integer string}

procedure Test(abc: string {$MACRO param}); // procedure Test(abc: string ; xyz: Integer);
begin
  {$IFMACRO param}
    ShowMessage(IntToStr(xyz));
  {$ENDIF}
  OtherProc(abc {$MACRO param_x});

  {$MACRO param 'World'}  // Beep; ShowMessage('Hello World');

  ShowMessage{$MACRO msg 'World' 123 'Hello'}; // ShowMessage('Hello' + Format(' %%s %%d', ['World', 123]));
end;
Der Compiler braucht das doch nur beim Parsen im Code zu ersetzen und danach zu interpretieren.

Natürlich sollte er alle Zeilenumbrüche in den Macros ignorieren (durch Leerzeichen zu ersetzen) ... dann dürfte auch der Debugger keine Probleme bekommen, da sich die Zeilenpositionen nicht verändern.


Voll blöd, daß man immernoch nicht wieder selber einen Precompiler reinhängen kann, um das selbst zu implementieren.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (28. Okt 2012 um 19:23 Uhr)
  Mit Zitat antworten Zitat