In meinem aktuellen Compiler-Kurs habe ich verstanden, wie man die erste und folgen Sätze einer Grammatik und bisher alle Grammatiken, die ich behandelt habe habe epsilon enthalten. Jetzt werde ich gebeten, die ersten und folgen Sätze einer Grammatik ohne Epsilon zu finden, und zu bestimmen, ob es LR (0) und SLR ist. Nicht zu haben, dass epsilon mich rausgeworfen hat, also weiß ich nicht, ob ich es richtig gemacht habe. Ich würde schätzen, keine Kommentare, ob ich auf dem richtigen Weg mit dem ersten und folgen Sätze, und wie die Bestimmung beginnen, wenn es LR (0)Compilers: Erste und Folgen Sätze einer Grammatik, die nicht enthält epsilon
Betrachten Sie die folgende Grammatik beschreibt Lisp-Arithmetik:
S - > E // S ist Symbol beginnen, E ist Ausdruck
E -> (FL) // F ist mathematische Funktion, L eine Liste
L -> LI | I // I ist ein Artikel in einer Liste
I -> n | E // ein Element ist eine Zahl n oder ein Ausdruck E
F -> + | - | *
FIRST:
FIRST (S) = FIRST (E) = {(}
FIRST (L) = FIRST (i) = {n, (}
FIRST (F) = {+ -, *}
FOLLOW:
FOLLOW (S) = {$}
FOLLOW (E) = FOLLOW (L) = {), n, $}
FOLLOW (I) = {), $}
FOLLOW (F) = {), $}