2017-05-06 2 views
2

Supposons un morceau de la grammaire LLgrammaire LL et FIRST

STATEMENT ::= ε | R 
R   :: = print (variable) 

Et j'essaie de trouver la première (Déclaration)

FIRST(STATEMENT) = FIRST(ε) + FIRST(R) 
FIRST(R) = { print (variable) } 

Ma question est. La PREMIÈRE (R) est-elle correcte? Ou le ci-dessous:

FIRST(R) = {print} 

Répondre

0

Non, FIRST (R) est juste print, en supposant que print est un jeton.

+0

Merci pour votre réponse !! Hmmm !!! Donc, devons-nous diviser le côté droit en jetons afin d'exécuter FIRST algorithme? –

+0

Vous devez diviser le côté droit dans les terminaux et les non-terminaux. Ensuite, vous pouvez appliquer les [règles] (https://www.cs.virginia.edu/~cs415/reading/FirstFollowLL.pdf) –

+0

Hmmm !! Alors, le "print (variable)" est-il composé de deux non-terminaux? –