有谁知道如何处理以下情况?
if-section:
if-group [ elif-groups ] [ else-group ] endif-line
if-group:
....
elif-groups:
elif-group
elif-groups elif-group
elif-group:
"#" "elif" constant-expression new-line [ group ]
else-group:
"#" "else" new-line [ group ]
endif-line:
"#" "endif" new-line
if-section之后if-section中的所有非终端以“#”开头。我认为在这种情况下,左翼因素是不可能的。是否有任何“默认解决方案”来确定我是否必须同时拨打这两个(或两个)可选的非终端中的一个?
感谢。
答案 0 :(得分:0)
我不清楚需要处理什么。当你看到[ elif-groups ]
时,你无法区分[ else-group ]
和#
,没有。但如果你向前看另一个令牌,你可以。即两个令牌足以决定。
到目前为止,这不是C ++语法中最糟糕的一点。