【问题标题】:LL grammar and FIRSTLL 语法和 FIRST
【发布时间】:2017-05-06 21:45:26
【问题描述】:

假设有一段 LL 语法

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

我试图找到 FIRST(Statement)

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

我的问题是。 FIRST(R) 是否正确?或以下:

FIRST(R) = {print}

【问题讨论】:

    标签: ll


    【解决方案1】:

    不,FIRST(R) 只是 print,假设 print 是一个令牌。

    【讨论】:

    • 谢谢你的回答!!嗯!那么,我们是否必须将右侧拆分为令牌才能运行 FIRST 算法?
    • 您必须在终端和非终端中拆分右侧。然后你可以申请rules
    • 嗯!!那么,“打印(变量)”是否由两个非终结符组成?
    • 我不知道,这取决于语法。无论如何,我认为 print, ( 和 ) 是终端。 variable 也是一个终端,如果它没有出现在任何生产规则的左侧。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多