Delphi-PRAXiS
Seite 1 von 2  1 2      

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)

Codewalker 2. Jun 2009 18:20


Delphi-Grammatik
 
Ich bin auf der Suche nach der Grammatik von Delphi, vorzugsweise in (E)BNF, um einen kleinen Lexer/Parser zu schreiben. Hat jemand so etwas schonmal gefunden/erstellt, weil das von vorne zu beginnen ist mehr als nur aufwändig

Die Muhkuh 2. Jun 2009 18:22

Re: Delphi-Grammatik
 
http://www.felix-colibri.com/papers/...5_grammar.html

Ist zwar Delphi 5, aber ein guter Anfang.

[edit] Unten ist noch ein Link zur Delphi 6 Grammatik inkl. Beispielprojekt (Scanner, Parser) [/edit]

Hawkeye219 2. Jun 2009 18:53

Re: Delphi-Grammatik
 
Hallo Codewalker,

Joe White hat die Delphi-Grammatik analysiert und präsentiert das Ergebnis seiner Arbeit auf dieser Seite.

Gruß Hawkeye

Florian Hämmerle 2. Jun 2009 19:46

Re: Delphi-Grammatik
 
Zitat:

Zitat von Codewalker
Ich bin auf der Suche nach der Grammatik von Delphi, vorzugsweise in (E)BNF, um einen kleinen Lexer/Parser zu schreiben. Hat jemand so etwas schonmal gefunden/erstellt, weil das von vorne zu beginnen ist mehr als nur aufwändig

klein wird der dann auf jeden Fall nicht. Selbst wenn du nur die Syntax von Delphi 1 nimmst. Aber wenns was wird :daumen hoch:

mfg Florian

Klaus01 2. Jun 2009 19:58

Re: Delphi-Grammatik
 
Guten Abend,

auch wenn es nicht gefordert war.
Die ENBF Grammatik von Pascal ,
sie ist noch so einigermaßen überschaubar.

Grüße
Klaus

Florian Hämmerle 2. Jun 2009 20:00

Re: Delphi-Grammatik
 
Zitat:

Zitat von Klaus01
Guten Abend,

auch wenn es nicht gefordert war.
Die ENBF Grammatik von Pascal ,
sie ist noch so einigermaßen überschaubar.

Grüße
Klaus

Tjo. Überschaubar kann man jetzt verschieden verstehen ;) Wenn man das alles implementiert hat man was mächtiges entstehen lassen. (so wie die Script-Engine von littleDave!)

mfg Florian

Codewalker 3. Jun 2009 11:47

Re: Delphi-Grammatik
 
Danke für die vielen Antworten. Ist alles andere als überschaubar. Im Prinzip möchte ich zu einem gegebenen Quelltext einen AST (Abstract Syntax Tree) bauen, und das scheint doch aufwändiger zu werden. Egal, dann dauerts halt :mrgreen:

schöni 11. Jun 2009 11:24

Re: Delphi-Grammatik
 
Hallo!

Ich beschäftigen mich soeben mit der EBNF der Delphi Grammatik.

Nun gibt es den Delphi Compiler Generator.


Gibt es auch irgendwo eine verständlich geschriebene Dokumentation zur Beschreibungssprace der EBNF?

Denn wenn ich eine Grammatik für eine Programmiersprache beschreiben will, brauche ich ja Wörter, die beschreiben, was ein <expression> ist. Leider hab ich den Eindruck, das hier:

http://www.felix-colibri.com/papers/...5_grammar.html

die Syntax nicht eindeutig ist. Einerseits sind Wörter wie "CASE" oder "OF" goross geschrieben. Andererseits aber ebenso Wörter wir "READ" oder "WRITEONLY". Letztere sind Anweisungen für Lexer und Parser, während "CASE" und "OF" reservierte Wörter der Programmiersprache, hier Delphi, sind.

So brauche ich also eine Sprachdefinition, wenn möglich mit Beispielen, für die Beschtreibungssprache der EBNF, der Sprachgrammatik.

Habe mir die Dokumentation zum Delphi Compiler Generator durchgelesen. Da ist die Syntax für die Beschreibung der zu parsenden Programmiersprache wiederum anders, als auf der genannten Internet - Seite. Leider ist Dokumentation der Beschreibungssprache des Delphi Compiler Generators für mich zu kurz. Gibt es da ausführlichere Beschreibungen? Evtl. Bücher?

Leider meldert der Delphi Compiler Generator auch bei den mitgelieferten Beispielprojekten Fehler, deren Ursache ich wohl erst dann erkennen werde, wenn mir die Beschreibungssprache geläufig ist. im DCG gibt es keine Hilfefunktion.

Die Syntax der Beschreibungssprache unterscheidet sich leider auch von derjenigen im oben genannten Link, obwohl mit der PC Tastatur die eben da verwendete Syntax mit englichher oder deutscher Tastatur realisierbar wäre. reservierte Wörter müssen ja dabei nicht unterstrichen sein. Unterstrichene Darstellung könnte der Syntaxeditor beim Highlighting für die reservierten Wörter übernehmen.

himitsu 11. Jun 2009 11:41

Re: Delphi-Grammatik
 
Schonmal bei Embarcadero angefragt?

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:


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

mjustin 11. Jun 2009 11:58

Re: Delphi-Grammatik
 
Zitat:

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

Ja, das wäre wirklich eine grosse Erleichterung, wenn man alle effektiv in einem Projekt verwendeten Units ermitteln könnte. Aber da gibt es so viele Stolpersteine:

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

Bis man davon auch nur zehn Prozent abdecken kann, ist man schon fast in Rente ;)

Für die Entwicklung von Qualitätsanalyse-Tools wie Pascal Analyzer, CodeHealer, EyeBol oder cnWizards wäre es wirklich eine grosse Erleichterung, wenn CodeGear für Delphi eine Möglichkeit anbieten würde, alle 'effektiven' Units eines Projekts zu ermitteln.

Oder kann man dcc32.exe unter msbuild so aufrufen, dass die Unit-Abhängigkeiten aufgelistet werden? Wie man die Pfade ermittelt, ist relativ einfach (siehe http://stackoverflow.com/questions/970994). Aber schon das simple Verwenden der in - Klausel in der Projektdatei (Unit1 in '..\ganz\weit\weg\Unit1.pas') würde einen DPR oder DPROJ Parser erfordern.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:28 Uhr.
Seite 1 von 2  1 2      

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