LL(1) 文法测试用例设计:E->TB, B->+TB|$,T->FP,P->*FP|$,F->(E)|i

测试用例:

  1. i
  2. i+i
  3. i*i
  4. (i+i)*i
  5. i*(i+i)
  6. (i+i)*(i+i)
  7. (i+i)+i*i
  8. i*(i+i)+i
  9. (i+i)*(i*i+i)
  10. (i+i)*i+i

设计原因:

  1. 测试用例 1: 最简单的情况,只有一个终结符号 i
  2. 测试用例 2: 测试加法运算。
  3. 测试用例 3: 测试乘法运算。
  4. 测试用例 4: 测试带括号的乘法和加法运算。
  5. 测试用例 5: 测试带括号的乘法和加法运算。
  6. 测试用例 6: 测试带括号的乘法和加法运算。
  7. 测试用例 7: 测试带括号的乘法和加法运算。
  8. 测试用例 8: 测试带括号的乘法和加法运算。
  9. 测试用例 9: 测试带括号的乘法和加法运算。
  10. 测试用例 10: 测试带括号的乘法和加法运算。

设计测试用例的原因是,根据 LL(1) 文法的特点,每个非终结符号的 FIRST 集合和 FOLLOW 集合是不交的,所以需要设计不同的测试用例来覆盖这些集合。同时,为了验证语法分析器的正确性,需要设计各种复杂的情况,包括带括号、多个运算符等。


原文地址: http://www.cveoy.top/t/topic/oHKu 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录