0

I verwendet this tool die SLR (1) Parsing-Tabelle für diese LL (1)/LR (1) Grammatik (die eine kleine Teilmenge von XML erzeugt) zu erzeugen:Ist diese Grammatik SLR (1)?

document ::= element EOF 
element ::= < elementPrefix 
elementPrefix ::= NAME attribute elementSuffix 
attribute ::= NAME = STRING attribute 
attribute ::= EPSILON 
elementSuffix ::= > elementOrData endTag 
elementSuffix ::= /> 
elementOrData ::= < elementPrefix elementOrData 
elementOrData ::= DATA elementOrData 
elementOrData ::= EPSILON 
endTag ::= </ NAME > 

das Werkzeug korrekt erzeugt die Tabelle und assoziierter Automat, der vorschlägt, dass die Grammatik SLR (1) ist. Ist das wirklich so? Ich verstehe, dass jede LR (0) Grammatik auch SLR (1) ist, aber ich war mir nicht sicher, wie das mit LL (1)/LR (1) Grammatiken zusammenhängt.

+0

Sie können dieses Tool verwenden (http://zaa.ch/jison/try/usf/), um zu sehen, ob Ihre Grammatik in SLR ist. – cagryInside

Antwort

1

LL (1) und SLR (1) sind beide Teilmengen von LR (1). Sie haben keine einfache Beziehung zueinander.

+0

Also, wenn eine Grammatik LR (1) ist, muss es unbedingt SLR (1) sein? –

+1

Nein, ich sagte, dass SLR (1) eine Teilmenge von LR (1) ist. Es ist in der Tat eine richtige Teilmenge. – rici

Verwandte Themen