Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Delphi-Grammatik (https://www.delphipraxis.net/134984-delphi-grammatik.html)

jbg 11. Jun 2009 12:24

Re: Delphi-Grammatik
 
Zitat:

Zitat von mjustin
Oder kann man dcc32.exe unter msbuild so aufrufen, dass die Unit-Abhängigkeiten aufgelistet werden?

Es gibt zwar den --depends Kommandozeilenparameter, nur macht der irgendwie nichts. Eine Alternative wäre sich in der IDE in die OpenFile Funktion die der Compiler aufruft, einzuklinken (hooking). Man bekommt dann alle vom Compiler aus geöffneten Dateien mit. (So arbeitet z.B. mein DDevExtensions Plugin um den Fortschrittsbanken im Compile-Dialog anzeigen zu können).

himitsu 11. Jun 2009 12:27

Re: Delphi-Grammatik
 
Zitat:

Zitat von mjustin
- die globalen IDE Bibliotheks- und Suchpfade (die auch Variablen enthalten können)
1- die Build-Konfiguration des Projekts (die auch hierarchisch sein kann), mit weiteren Source-Pfaden
2- {$IFDEF} und {$IF} & Co.
3- explizit angegebene Units in der DPR Datei
4- Unit-Aliase
5- Namespaces (!), siehe DCC32 Option -NS

1: die kann man ja aus der Registry aus lesen und bei mehreren Compilern/IDEs eine Auswahlbox anbieten
2: das würde sich im geparsten Baum "leicht finden und auswerten lassen (wenn sowas vorm/beim Parsen nicht entfernt würde)
3/4: da ja eh alle nötigen Units/Projektdateien ausgelesen würden, wäre das auch kein Problem

Aber ohne die Datei "qualifiziert" zu parsen, ist es nahezu unmöglich auch nur die Uses-Abschnitte in einer Datei sicher zu finden.

[add]
CreateFile zu hooken bring jetzt in "meinem" Fall nicht viel,
da ich so zwar die Reinfolge der Dateien bekomm, wie sie geöffnet werden, aber eine "optimale" Reinfolge läßt sich dann dennoch nicht bestimmen, da man ja immernoch nicht weiß wer wann was aufruft.

Wenn die Dateien komplett geparst sind, könnte man eventuell sogar bestimmen ob eine Datei wirklich benötigt wird ... man müßte ja theoretisch dann nur die geparsten Dateibäume durchgehen und schauen was von wo verwendet wird. :stupid:

also im Prinzip muß man nur das nachmachen, was der COmpiler auch macht ... wobei es dann natürlich viel schöner wäre, wenn man dafür den Compiler direkt ansprechen könnte :(

schöni 11. Jun 2009 16:33

Re: Delphi-Grammatik
 
Zitat:

Zitat von himitsu
Schonmal bei Embarcadero angefragt?

Hab ich nicht, weil der Compiler Generator, den ich mir runter geladen habe, nicht von Embarcadero stammt. Ist denn die Beschreibungssprache so standardisiert, das dieser Aspekt egal ist? Programmiersprachen, um den Rechner eine Aufgabe der Praxis ausführen zu lassen, gibt es schließlich auch viele verschiedene.

Zitat:

Zitat von himitsu
Es wäre ja auch für die praktisch, wenn sie zumindestens intern soetwas in der Art hätte, damit sie selber wüßten, was da so alles abläuft :stupid:

Das werden die schon wissen. Wie soll der Compiler sonst weiter entwickelt werden? Wie sollte der dann gewartet werden?

Zitat:

Zitat von himitsu
Ansonsten klingt es interessant und würde bestimmt auch hierfür gut zu gebrauchen sein
> Unit-Abhängigkeiten visualisieren

Auch ne Anwendung. Mich interessiert dann noch ein Übersetzer von C++ Code nach Pascal (Delphi), falle eine Bibliothek, die ich einsetzen will nur in C++ vorliegt, ich aber diese Bibliothek lieber in Delphi geschrieben hätte. Denkbar wäre auch ein Übersetzer von Delphi nach Freepascal derart, das der Code danach 100% portabel ist. Ohne Änderung, versteht sich. h2Pas.exe, mit Freepascal ausgeliefert, leistet das nur für die Headerdateien und dort auch noch unvollständig, falls ich mich richtig erinnere. Kann natürlich sein, das h2Pas inzwischen alle Konstrukte übersetzen kann. Aber dann auch nur für die Headerdateien. Die *.c Dateien müssen aber auch noch übersetzt werden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:57 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz