2017-05-06 55 views
2

假設LL語法LL語法和FIRST

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

的一大塊,我試圖找到第一(聲明)

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

我的問題是。 FIRST(R)是否正確?或以下:

FIRST(R) = {print} 

回答

0

沒有,FIRST(R)只是print,假設print是一個令牌。

+0

謝謝你的回答!嗯!那麼,爲了運行FIRST算法,我們是否必須將右側分割爲令牌? –

+0

你必須拆分終端和非終端的右側。然後你可以申請[規則](https://www.cs.virginia.edu/~cs415/reading/FirstFollowLL.pdf) –

+0

嗯!那麼,「打印(可變)」是否由兩個非終端組成? –