AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Delphi-Parser mit Anwendung "projektweite Suche nach Syntax-Elementen"

Delphi-Parser mit Anwendung "projektweite Suche nach Syntax-Elementen"

Ein Thema von DenkDirNix · begonnen am 19. Apr 2020 · letzter Beitrag vom 23. Apr 2021
Antwort Antwort
Seite 2 von 2     12
DenkDirNix
Registriert seit: 13. Dez 2018
Moinsen,

ich habe ein altes Tool (aus 2003 für Delphi7) mal etwas aufgefrischt und würde mich über freundliche oder hilfreiche Kommentare freuen. Motivation war die Unzulänglichkeit der IDE für die projektweite Suche im Quelltext und die Funktion "Referenzen suchen" (find References).

Was tut das Tool
  • Input ist ein übersetzbares Delphi-Projekt, eine Library oder Package. Die Entwicklung basiert auf dem Sprachumfang von Delphi 10.3.3.
  • Source-Files werden geparst und alle Elemente entsprechend der statischen Blockstruktur mit Typ-Informationen in einen TreeView einsortiert. Elemente sind im wesentlichen die Identifier, aber auch Pascal-Direktiven und -Attribute, Compiler-Direktiven und -Schalter, Literale und Dateinamen sowie falls gewünscht die Keywords.
  • Alle Referenzen (also textuelle Vorkommen) dieser Ids werden daneben als Liste von Code-Snippets angezeigt. Dazu der Referenz-Typ, also deklarierend, lesend, schreibend, weiterreichend. Alle Identifier in diesen Code-Snippets sind hyperlinked zum TreeView (per DoppelClick).

Nutzen
  • Zusätzlich zum üblichen funktionsbezogen-sequentiellen Blick auf die Anweisungen im Quellcode bekommt man schnellen Zugriff auf den "Lebenslauf" eines Identifiers.
  • schnelles projektweites und intelligentes (weil syntax- statt text-basiertes) Suchen und Umbenennen
  • Anbindung an IDE per Drag&Drop: Ziehen einer Referenz in die IDE springt zu dieser Codestelle
  • Filterung nach speziellen Nutzungen (z.B. ungenutzte Variablen, Generics, Overloads ,...)

Specials
  • Units dürfen fehlen. Nicht deklarierte Elemente werden in einer <Unresolved-unscoped>-Liste geführt. Natürlich ist solch ein Ergebnis nicht mehr exakt, trotzdem kann man idR damit arbeiten.
  • Ids aus System.pas sind rudimentär integriert, können nach Bedarf ergänzt werden.
  • Anzeige als Nassi-Shneiderman-Diagramm

Anzeige und Bedienung
  • siehe Hilfe-Datei

Aktueller Download aus meiner DropBox.
Miniaturansicht angehängter Grafiken
refpicmain.jpg   refpicoptions.jpg   refpicfilters.jpg   refpicfilteredname.jpg   refpicfilteredhierarchie.jpg  

refpicfilteredgenerics.jpg   diagramm.jpg  

Geändert von DenkDirNix (10. Apr 2021 um 10:07 Uhr) Grund: neue Version
 
DenkDirNix

 
Delphi 10.3 Rio
 
#11
  Alt 22. Apr 2021, 18:12
Neue Funktion in 0.9.6:
Für Identifier-Referenzen können alternativ zu den Code-Snippets im Original-Format auch Nassi-Shneiderman-Diagramme angezeigt werden.
Einfach übers Popup-Menü der Liste von Referenzen gehen oder per Doppelclick in den freien Bereich einer solchen Referenz.

P.S.:
Vielleicht findet sich ja bei dieser Gelegenheit doch noch jemand, der zu meinen Syntax-Fragen (siehe voriger Post #10) etwas sagen kann?
Miniaturansicht angehängter Grafiken
diagramm.jpg   diagramm2.jpg  

Geändert von DenkDirNix (23. Apr 2021 um 18:50 Uhr)
  Mit Zitat antworten Zitat
Delphi.Narium

 
Delphi 7 Professional
 
#12
  Alt 23. Apr 2021, 11:08
Code:
- Compiler-Direktive $K    // ist beim automatischen Einfügen per Ctrl-O-O dabei
https://stackoverflow.com/questions/...tion-switches: {$K-} Smart callbacks
Zitat von http://pascal.net.ru/%24K+Smart+Callbacks+Switch:
$K: Smart Callbacks Switch

Controls the generation of smart callbacks for procedures and functions that are exported by an application.

Syntax: {$K+} or {$K-}
Default: {$K+}
Type: Global
Menu Command: Options|Compiler|Smart callbacks
Target

Windows target
Remarks

When an application is compiled in the $K- state, it is required to use MakeProcInstance and FreeProcInstance Windows API routines when creating callback routines.

In the $K+ state, there is no need to use MakeProcInstance and FreeProcInstance.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 +2. Es ist jetzt 15:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf