![]() |
Parser für Klammern
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,... |
AW: Parser für Klammern
In deinem letzten Beitrag sind dir drei Lösungen offeriert worden, die alle Ausdrücke mit Klammern verarbeiten.
Wo ist denn jetzt das Problem? |
AW: Parser für Klammern
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 |
AW: Parser für Klammern
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. |
AW: Parser für Klammern
Ich werfe mal den Begriff "Rekursion" in den Raum.
|
AW: Parser für Klammern
Zitat:
Du solltest dir auf jeden Fall das hier anschauen. ![]() Erklärung und Source ... aber nicht PlugAndPlay |
AW: Parser für Klammern
Zitat:
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. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:08 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 by Thomas Breitkreuz