Seite 1 von 1

Ex11 A2: validate() - Definition von WORD

Verfasst: 31. Jan 2010 11:00
von Bjoern
Hallo,

kann es sein, dass die Definition von WORD neben [a-Z] auch den Unterstrich enthalten müsste, damit die Meta-Grammatik validiert? Der Ausdruck "NO_DOUBLE_QUOTE" kann nämlich nach der Grammatik weder als Terminal, noch als Expression validiert werden, bliebe also nur WORD, oder habe ich da was übersehen?

Edit: Und direkt noch eine Frage: soll der Validator nur Eingaben in EBNF-Notation prüfen oder auch Eingaben in BNF?

Danke schonmal!

Gruß,
Björn

Re: Ex11 A2: validate() - Definition von WORD

Verfasst: 31. Jan 2010 11:57
von Sebastian Hartte
Bjoern hat geschrieben:kann es sein, dass die Definition von WORD neben [a-Z] auch den Unterstrich enthalten müsste, damit die Meta-Grammatik validiert? Der Ausdruck "NO_DOUBLE_QUOTE" kann nämlich nach der Grammatik weder als Terminal, noch als Expression validiert werden, bliebe also nur WORD, oder habe ich da was übersehen?
Dein Gedankengang sieht korrekt aus. So scheint man keine Grammatiken mit NO_DOUBLE_QUOTE ausdrücken zu können.
Edit: Und direkt noch eine Frage: soll der Validator nur Eingaben in EBNF-Notation prüfen oder auch Eingaben in BNF?
Der Validator soll genau das Prüfen was die instanzierte Grammatik definiert. Also EBNF z.B. dann wenn es sich um die EBNF-Meta-Grammatik handelt.

Die Aufgabenstellung sagt dazu:
Die Validierung beinhaltet nur: zu bestimmen ob ein gegebener Input-String der gegebenen Grammatik genügt.
Gegeben heißt hierbei nicht im Aufgabenblatt gegeben sondern in Form eurer Objekte ;-)

Gruß,
Sebastian

Re: Ex11 A2: validate() - Definition von WORD

Verfasst: 31. Jan 2010 12:55
von Bjoern
Hi Sebastian,

danke für deine schnelle Antwort. Dann lasse ich beim validate() für WORD auch den Unterstrich zu, damit klappt's dann auch beim validate() für die kompletten EBNF-Produktionsregeln.
Und was den Input-String angeht, da hatte ich grad nen Denkfehler... dann ist jetzt alles klar :)

Gruß,
Björn

Re: Ex11 A2: validate() - Definition von WORD

Verfasst: 31. Jan 2010 14:39
von mf1008
Hallo,

noch eine anschließende Frage.
In der Definiton von NO_DOUBLE_QUOTE bzw. NO_SINGLE_QUOTE heißt es
Ein beliebiges Zeichen außer " bzw. '
Damit lässt sich aber nicht die Grammatik der Boolschen Ausdrücke mit der Meta-Grammatik validieren.
Ist, wie bei WORD, eine beliebig lange Folge gemeint?

Re: Ex11 A2: validate() - Definition von WORD

Verfasst: 31. Jan 2010 17:55
von rhaban
Hallo,

müssen wir nicht die Produktionen kennen um den recursive descent parser implementieren zu können? Die können aber in jeder Grammatik anders aus sehen. Wo ist mein Denkfehler? :(

Grüße

Re: Ex11 A2: validate() - Definition von WORD

Verfasst: 31. Jan 2010 17:56
von Sebastian Hartte
rhaban hat geschrieben:müssen wir nicht die Produktionen kennen um den recursive descent parser implementieren zu können? Die können aber in jeder Grammatik anders aus sehen. Wo ist mein Denkfehler? :(
Die Produktionen hast Du doch in deiner Datenstruktur gespeichert.

Gruß,
Sebastian

Re: Ex11 A2: validate() - Definition von WORD

Verfasst: 31. Jan 2010 18:10
von rhaban
Nachdem die Grammatik erstellt wurde ja, davor kenne ich sie aber doch noch nicht. Wenn ich sie nicht kenne kann ich doch nicht für jede Regel eine Methode erstellen? :s

Re: Ex11 A2: validate() - Definition von WORD

Verfasst: 31. Jan 2010 18:35
von Sebastian Hartte
rhaban hat geschrieben:Nachdem die Grammatik erstellt wurde ja, davor kenne ich sie aber doch noch nicht. Wenn ich sie nicht kenne kann ich doch nicht für jede Regel eine Methode erstellen? :s
In der Aufgabenstellung steht ja "typischerweise". Du musst das nicht genauso lösen.

Gruß,
Sebastian

Re: Ex11 A2: validate() - Definition von WORD

Verfasst: 31. Jan 2010 21:24
von ice-breaker
mf1008 hat geschrieben:Ist, wie bei WORD, eine beliebig lange Folge gemeint?
jup ;)