关于 EcmaScript 规范 5.1,具体来说,SourceElements
产生式的语义解释是:
SourceElements : SourceElements SourceElement
(第 14.0 条)
上述产生式的语义解释让我感到困惑。
假设您有两个语句(称为 s1
和 s2
),那么根据上述子句给出的语义解释,我将设置 的结果>s1
到 headResult
。如果不是突然完成,我会将 s2
的结果设置为 tailResult
。我要么使用 tailResult 的值或 headResult 的值返回结果。
我的问题是,如果只有一个语句,我该怎么办?
我只返回s1
的结果吗?我是否检查它是否突然完成?我该如何处理该值?
我想我不知道如何将左递归转换为只有一条语句的情况。
最佳答案
SourceElements
有两种产生式:
SourceElements:
SourceElement
SourceElements SourceElement
当程序中只有一条语句时,它与第一个产生式匹配。当有多个语句时,它匹配第二个产生式,并递归。
关于javascript - 当解析树只有一条语句时如何评估产生式 `SourceElements : SourceElements SourceElement`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20623825/