AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi-Parser und Prettyprinter

Ein Thema von dmey · begonnen am 26. Aug 2009 · letzter Beitrag vom 23. Nov 2009
 
dmey

Registriert seit: 26. Aug 2009
Ort: Hamburg
11 Beiträge
 
#4

Re: Delphi-Parser und Prettyprinter

  Alt 26. Aug 2009, 16:20
Der Präprozessor ist bisher in erster Linie dazu gedacht den Parser einfacher testen zu können. Es ist daher nur die Berechnung relativ einfacher Ausdrücke möglich. Bei den himXML-Dateien scheiterte er an: "{$IF SizeOf( x ) ..." und an "Declared( himXML.TStream )". Ich hab jetzt eine verbesserte Version hochgeladen, die diese Ausdrücke zwar parsen, aber nicht korrekt auswerten kann.

- Der Parser kannte kein "strict private". Das ist jetzt eingebaut.

- Anscheinend werden Dateien in neueren Delphi-Versionen als UTF8 gespeichert. Der TextTransformer kann zwar auch UTF8 einlesen, das wird aber im generierten Code nicht automatisch unterstützt. Deshalb hab ich zunächst als Hack eingebaut, dass ""? am Anfang der Datei überlesen wird.

- Der Parser scheitert an erweiterten Records mit Sichtabkeitsattributen etc. Das ist ein neueres Delphi-Feature. Es kommt in vier Dateien vor:

himXML.pas
himXMLi.pas
himXML_Tools.pas
OmniXMLUtils.pas

Alle anderen Dateien werden nun geparst bzw. geprettyprinted.
Die Originaldateien sind m.E. durchaus gut lesbar. Der PrettyPrinter verbessert das Bild nicht. Er ist auch mehr als Demo oder für wirklich konfusen Code gedacht. Bei verschachtelten Anweisungen macht er die Struktur deutlich.

Für diejenigen, die es interessiert hab ich das Ergebnis als zip-Datei angefügt.

Leider bin ich auf ein anderes Problem gestoßen, dass durch einen fehlerhaften regulären Ausdruck bisher verdeckt war. Vielleicht kann mir da jemand weiterhelfen: Gibt es ein eindeutiges Kriterium dafür, wann ^a ein Zeichen und wann einen Zeiger darstellt?
Angehängte Dateien
Dateityp: zip pretty_himxml_117.zip (211,4 KB, 3x aufgerufen)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:43 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz