//complete
start ::= template.
//template
template ::= template_elements.
template ::= template template_elements.
template ::= .
//template elements
template_elements(res) ::= COMMENT.
template_elements(res) ::= tag(t).
//tag
tag(res) ::= LDEL exp(e) RDEL.
//exp
exp(res) ::= value(v).
exp(res) ::= exp(e1) OP(o) exp(e2).
//value
value(res) ::= variable(v).
//variable
variable(res) ::= DOLLAR ID(i).
有谁知道冲突在哪里?
更新
如果我删除exp(res) ::= exp(e1) OP(o) exp(e2).
,只会有两个冲突,但我不知道为什么会导致冲突......
更新2
为什么这里可以:
template ::= template_elements.
template ::= template template_elements.
template ::= .