# 用户理解材料（AI 辅助参考）

1. 为什么需要库？很多 RFC 用 ABNF 描述允许的字节格式。库将文本规则变成可复用校验器；认证、权限和业务含义仍由调用者完成。
2. AST 是什么？`x = 1*2("a" / "b")` 对应 Repeat(1,2,Choice(...))；记录规则含义与源位置，不是新语言编译器。
3. 替代不是先到先得。`("a" / "ab") "c"` 必须接受 `abc`，所以保留全部成功结束位置，让后续序列继续尝试。
4. 为什么拒绝左递归？`x = x / "a"` 读取字节前又调用自身。先算哪些表达式可能为空，再查不消耗输入的引用循环。
5. 非生产性是什么？`a = b`、`b = a` 不能产生有限字符串；与可产生字符串但存在左递归的规则分别诊断。
6. 右递归为何允许？`x = "a" [x]` 递归前消耗字节；深度/工作预算仍防止超长输入占满资源。
7. 空重复如何结束？恰好 n 次的结束偏移集合稳定后，以后次数集合相同，可判定最小次数，不靠任意截断放过。
8. 预算失败是什么？不能确定。即使一个分支已找到全匹配，当前算法其他分支耗尽预算时仍报告 BudgetExceeded。
9. 错误位置是什么？字节偏移从 0 开始，文法行列从 1 开始。识别失败是所有真实尝试的最远位置，不是唯一“期望位置”。
10. 怎么解释验证？测试分组内含 256 字节的多 core 断言与正常/错误/预算路径；差分只覆盖正则子集，未做完整 ABNF 第三方解析器认证。

本人申报前可运行三个例子并解释以上问题。AI 辅助代码与测试通过不替代本人理解，
也不保证赛事一次验收。开发始于 9/30，应如实说明预研与十月新增工作。
