AGB  ·  Datenschutz  ·  Impressum  







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

Parser für Klammern

Ein Thema von ford42 · begonnen am 9. Okt 2015 · letzter Beitrag vom 9. Okt 2015
Antwort Antwort
ford42

Registriert seit: 2. Okt 2015
60 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Parser für Klammern

  Alt 9. Okt 2015, 08:39
Hey,
ich sollte erst einen Parser für */+- schreiben, das ist mir auch gelungen.
Doch nun ist noch die Aufgabe dazu gekommen, dass ich noch einen Parser für Klammern einbauen soll.

Ich hatte zwar schon eine Idee, aber dann hab ich gemrkt, dass ich einen Denkfehler drin hatte und sie deshalb nicht funktionieren würde.


Kann mir bitte jemand einen Tipp für ein KonZept/Algorithmus geben?


Grüße ford42

PS: Sry, für die vielen Threads, aber ich weiß gerade sonst echt nicht weiter. :/

EDIT: Wenn es nur eine innere Klammer geben würde, würde meine Idee funktionieren, aber weil es mehrere innere Klammern gibt funktioniert sie nicht mehr.

Meine Idee:
Die Position für die offenen Klammern in ein Array schreiben
Das selbe für die schließende Klammern

Dann den letzten Wert von dem Array für die offenen Klammern als Startgrenze und der erste Wert von den schließenden Klammern als Endgrenze nehmen.
Die Sachen was in dieser Grenze steht mit dem vorhandenem Parser verrechnen, das Ergebnis mit den 2 Klammern und dem Inhalt ersetzen und die nächste Grenze ermitteln + ausrechnen + ersetzen,...

Geändert von ford42 ( 9. Okt 2015 um 08:46 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Parser für Klammern

  Alt 9. Okt 2015, 08:58
In deinem letzten Beitrag sind dir drei Lösungen offeriert worden, die alle Ausdrücke mit Klammern verarbeiten.

Wo ist denn jetzt das Problem?
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
ford42

Registriert seit: 2. Okt 2015
60 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

AW: Parser für Klammern

  Alt 9. Okt 2015, 09:05
Soweit ich das verstehe, waren das alles fertig Lösungen, ich würde lieber mit ner Idee was programmieren, da somit der Lernefekt vlt auch größer ist.

Grüße ford42
  Mit Zitat antworten Zitat
Benutzerbild von JasonDX
JasonDX
(CodeLib-Manager)

Registriert seit: 5. Aug 2004
Ort: München
1.062 Beiträge
 
#4

AW: Parser für Klammern

  Alt 9. Okt 2015, 09:30
Der beste Weg ist, sich mit kontextfreien Grammatiken zu beschäftigen, und Algorithmen zu suchen (bspw. CYK), die diese erkennen können.
Dann kannst du eine Grammatik für deine Terme mit Klammern schreiben, und auf Basis eines erkennenden Algorithmus dann deinen Parser schreiben. (Oder nimmst dann Lex und Yacc für letzteren Teil).

Vorteil: Du musst eine Grammatik schreiben, und damit klar definieren, was ein gültiger Term ist, und was nicht. Vermeidet viel Kopfzerbrechen beim debuggen.
Mike
Passion is no replacement for reason
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.354 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Parser für Klammern

  Alt 9. Okt 2015, 09:35
Ich werfe mal den Begriff "Rekursion" in den Raum.
Peter
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: Parser für Klammern

  Alt 9. Okt 2015, 10:02
Soweit ich das verstehe, waren das alles fertig Lösungen, ich würde lieber mit ner Idee was programmieren, da somit der Lernefekt vlt auch größer ist.

Grüße ford42
Kann man jetzt daraus schliessen, dass du dir die Links noch nicht einmal angeschaut hast?

Du solltest dir auf jeden Fall das hier anschauen.
http://www.delphipraxis.net/1317773-post3.html (Beitrag 3)
Erklärung und Source ... aber nicht PlugAndPlay
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
ford42

Registriert seit: 2. Okt 2015
60 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

AW: Parser für Klammern

  Alt 9. Okt 2015, 10:29
Soweit ich das verstehe, waren das alles fertig Lösungen, ich würde lieber mit ner Idee was programmieren, da somit der Lernefekt vlt auch größer ist.

Grüße ford42
Kann man jetzt daraus schliessen, dass du dir die Links noch nicht einmal angeschaut hast?

Du solltest dir auf jeden Fall das hier anschauen.
http://www.delphipraxis.net/1317773-post3.html (Beitrag 3)
Erklärung und Source ... aber nicht PlugAndPlay
Doch, habe ich natürlich.

Nur mir fällt es sehr schwer diesen Parser mit meiner GUI und dem Controller zu verbinden.
Klar ich hätte das GUI und den Controller umbauen könnten, aber ich wollte es auch so hinbekommen, ohne dass ich alles umbauen muss.
  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 15:14 Uhr.
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