Mehrdeutige Grammatik -> Parser

CapFuture

CapFuture

Aktives Mitglied
Thread Starter
Dabei seit
23.01.2004
Beiträge
1.812
Reaktionspunkte
1
Hab folgendes Problem:

Hab eine mehrdeutige Grammatik bekommen und soll nen Parser damit bauen...
Das das nicht wirklich gut gehen kann, ist mir bewusst. Habt ihr ne Idee, wie ich daraus ne eindeutige machen kann?

G={{A,B,C},{a,b},S,P}

S::=AB
S::=BA

A::=a
A::=CAC

B::=b
B::=CBC

C::=a
C::=b
 
Such mal nach dem "dangling else"-Problem. Das deckt dein Problem ab. Im Compilerbau-Praktikum hatten wir damit auch zu kämpfen, es aber gelöst. Ist nun leider schon 1 Jahr her (müsste mich da erst nochmal reindenken), könnte aber noch ein Bison-File anbieten ;)

Horror
 
Ich muss ehrlich sein: Ich seh noch nicht ganz den Zusammenhang zwischen dem Dangling Else und meinem Problem...
 
google doch einfach mal danach wie man eine mehrdeutige grammatik parsed...
 
CapFuture schrieb:
Ich muss ehrlich sein: Ich seh noch nicht ganz den Zusammenhang zwischen dem Dangling Else und meinem Problem...

Das Dangling Else-Problem handelt auch von der Mehrdeutigkeit. Der Parser weiss dort auch nicht genau, ob die If-Clause nun zu Ende ist oder ob es ein weiter if-else-Block ist, der anfängt. Dort wird die Grammatik auch entsprechend umgeformt, sodass diese Mehrdeutigkeit beseitigt wird.

Horror
 
Thx für eure Hilfe, hab aber das Problem mit ner Holzhammer Methode gelöst:

Rekursiv alle möglichen Wörter genommen und alle Kombinationen zusammenbasteln lassen. :D

Das "Muster-Programm" der Assistenten hat übrigens bei ihrer eigenen Aufgabenstellung nicht funktioniert :D :D :D
 
Zurück
Oben Unten