例如
E -> E+T | T
将会
E -> T E'
E' -> +T E' | null
如果我有生产
B -> B == C | C
这些是正确的作品吗?
B -> C B'
B' -> ==C B' | null
我遇到问题的另一个运算符是'!',我知道它比我语法中的所有内容都具有更高的优先级,除了“()”我想出了这个但不确定它是否正确。
T -> U T'
T' -> *U T' | /U T' | null
U -> ! ident | F
F -> (A) | idlit | ftncall
ftncall -> ident(params)