AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Codevervollständigung nachprogrammieren?
Thema durchsuchen
Ansicht
Themen-Optionen

Codevervollständigung nachprogrammieren?

Ein Thema von Nintendo · begonnen am 19. Apr 2012 · letzter Beitrag vom 21. Apr 2012
Antwort Antwort
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#1

AW: Codevervollständigung nachprogrammieren?

  Alt 20. Apr 2012, 03:57
Nun gibt es den Delphi Comppiler Generator, mit dem ich mittels regulärer Ausdrücke die Pascal Grammatik beschreiben kann.
Nein. Die Grammatik wird mittels (z.B.) einer BNF beschrieben. Mit regulären Ausdrücken kann man die Symbole der Sprache 'Delphi' beschreiben.
Oder mittels PEG ... und ich bin mir sicher es gibt noch mind. ein halbes Dutzend anderer Methoden der Darstellung. Und PEGs nutzen eine Untermenge von regulären Ausdrücken, wenn auch nicht PCRE

... ist ja ein übliches Vorurteil: Regex == PCRE

Wo gibt es eine aussagekräftige Doku zu regulären Ausdrücken, möglichst mit Beispielen?
Jeffrey Friedl: "Reguläre Ausdrücke" ... ist die detaillierteste Beschreibung die ich kenne. Wenn du eine "hands-on"-Variante brauchst, nimmste das Buch vom Autor von PowerGREP und RegexBuddy, Jan Goyvaerts ... das "Regular Expressions Cookbook", k.A. ob's das schon auf Deutsch gibt.

Kenn der Highlighter den Unterschied zwischen 'if' und 'then' ? Nein.
Und die Schlußfolgerung? Meines Erachtens bedeutet die Tatsache, daß ein Parser detailliertere Kenntnisse hat als ein anderer nicht, daß man ihn nicht für die Untermenge benutzen kann für die der andere einsetzbar ist.

Welchen dieser Ansätze würdet Ihr vorziehen.
einen Parser bauen, der einen Syntaxbaum erstellt. Der Cursor ist in einem der Knoten dieses Baumes. Jeder Knoten hat eine Liste der möglichen Nachfolger => Codecompletion/proposal.
Dem schließe ich mich an.
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Codevervollständigung nachprogrammieren?

  Alt 20. Apr 2012, 08:56
... ist ja ein übliches Vorurteil: Regex == PCRE
Wobei es der Name eigentlich auch schon verrät.
Perl Compatible Regular Expressions

Und die Schlußfolgerung?
Jupp, man könnte ihn ja dennoch erstmal für die Zerlegung nehmen und kann danach, mit einfacheren Mitteln, mit diesen Daten weiterarbeiten.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Nintendo

Registriert seit: 16. Feb 2009
82 Beiträge
 
#3

AW: Codevervollständigung nachprogrammieren?

  Alt 20. Apr 2012, 19:54
Hallooo,

Danke erst noch mal für Eure Tipps. Ich werde nun erst mal das "Regular Expressions Cookbook" durcharbeiten.

@Asserbad:

Ja, das Reguläre Ausdrücke Kochbuch gibt es inzwischen auf Deutsch und zwar hier:

http://www.oreilly.de/catalog/regexcbger/

Ich denke, parsen ist die günstigste, weil flexibelste Variante, die mit passendem Parser auch für andere Programmiersprachen funktioniert. Die OpenTools API zu verwenden düfrte höchtens für ein IDE Plugin der Delphi IDE was bringen, vielleicht um die Funktion "Klasse vervollständigen" in D7 Personal nachzurüsten. Für ein eigenständiges Programm halte ich parsen für günstiger.

Und nun sowie die nächsten Tage und Wochen mach ich mich erst mal an die Lektüre. Das KOchbuch hab ich runter geladen. Die anderen Bücher kommen später bei Bedarf dran.

.
  Mit Zitat antworten Zitat
Iwo Asnet

Registriert seit: 11. Jun 2011
313 Beiträge
 
#4

AW: Codevervollständigung nachprogrammieren?

  Alt 21. Apr 2012, 01:01
Kenn der Highlighter den Unterschied zwischen 'if' und 'then' ? Nein.
Und die Schlußfolgerung? Meines Erachtens bedeutet die Tatsache, daß ein Parser detailliertere Kenntnisse hat als ein anderer nicht, daß man ihn nicht für die Untermenge benutzen kann für die der andere einsetzbar ist.
Die Schlußfolgerung ist die, das ein Highlighter keine Kenntnisse der Grammatik besitzen muss, aber ein Codecompletion-Tool schon. So wie die SynEdit-Teile aufgebaut sind, sind sie 'dumme' (aber sehr nützliche) Schlüsselworteinfärber. Daraus folgt dann zwingend, das ein CC-Tool mehr sein muss, als ein Highlighter.

Weiterhin kann ein Highlighter keinen Parser verwenden, weil er auch die Codeteile nach Syntaxfehlern korrekt einfärbt. Ich kenne einfach keine Parsertechnologie, die nach Fehlern garantiert immer korrekt wieder aufsetzen kann.

Diesen Gedankengang wollte ich dem Fragesteller überlassen.

Geändert von Iwo Asnet (21. Apr 2012 um 01:04 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


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 11:34 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