<< zurück
Ein Earley-Parser und seine partielle Umkehrung
Lexer:
space := "[ 	

]+" number := "[0-9]+" plus := "[+]" minus := "[-]" star := "[*]" slash := "[/]" left_paren := "[(]" right_paren := "[)]"
Grammatik:
Space := : no_space | space : some_space Number := Space number : 1 Plus := Space plus : 1 Minus := Space minus : 1 Star := Space star : 1 Slash := Space slash : 1 Left_paren := Space left_paren : 1 Right_paren := Space right_paren : 1 Atom := Number : 0 | Left_paren Term Right_paren : 1 Prod := Atom : 0 | Prod Star Atom : mul 0 2 | Prod Slash Atom : div 0 2 Sum := Prod : 0 | Sum Plus Prod : add 0 2 | Sum Minus Prod : sub 0 2 Term := Sum : 0 Start := Term Space : term 0
Text:
(1)-(2*(3+4)/5)
XML:
Parsen
Schreiben
Syntaxbaum aktualisieren
Syntaxbaum
Noch kein Syntaxbaum vorhanden.
grün
Text aus der Eingabe
blau
Knoten des Syntaxbaums