我有像 (1+1),1+(a+1) 这样的表达式的 LR 语法和 LR 表
0:E'->E
1:E->E+T
2:E->T
3: T -> T * F
4:T->F
5: F ->( E )
6:F->身份证
string[,] ActionTable =
//+ * ( ) id end E T F
{
{"" ,"" ,"S4" ,"" ,"S5" ,"" ,"1" ,"2" ,"3"}, // 0
{"S6" ,"" ,"" ,"" ,"" ,"AC" ,"" ,"" ,"" }, // 1
{"R2" ,"S7" ,"" ,"R2" ,"" ,"R2" ,"" ,"" ,""},//2
{"R4" ,"R4" ,"" ,"R4" ,"" ,"R4" ,"" ,"" ,""}, // 3
{"" ,"" ,"S4" ,"" ,"S5" ,"" ,"8" ,"2" ,"3"}, // 4
{"R6" ,"R6" ,"" ,"R6" ,"" ,"R6" ,"" ,"" ,""}, // 5
{"" ,"" ,"S4" ,"" ,"S5" ,"" ,"" ,"9" ,"3"}, // 6
{"" ,"" ,"S4" ,"" ,"S5" ,"" ,"" ,"" ,"10"},// 7
{"S6" ,"" ,"" ,"S11" ,"" ,"" ,"" ,"" ,""}, // 8
{"R1" ,"S7" ,"" ,"R1" ,"R1" ,"" ,"" ,"" ,""}, // 9
{"R3" ,"R3" ,"" ,"R3" ,"R3" ,"" ,"" ,"" ,""}, //10
{"R5" ,"R5" ,"" ,"R5" ,"R5" ,"" ,"" ,"" ,""} //11
};
我尝试检查像 1+1 或 1+(1*a)+1 这样的表达式,但解析器说这个表达式不正确。
我可以用我的语法做什么来修复它?