TermiNexus
3e1ed0992b
fix(ast): 修正实参位前导 * 的优先级,*p + n 解析为 (*p) + n
规范 rule 5 允许把 c.Deref(x) 写作 *x,但语法分析器在实参位置对前导 * 取整条表达式作为操作数:*buf + *length 被解析成 *(buf + *length),*length + data_len 成 *(length + data_len),多解引用一层。表现为 zlib decompressobj 全部失效(decompress 返回 0 字节、eof 恒 0、unused_data 取不到),requests/download 同类语句亦受影响。
改为:实参位 *expr 只按 _parse_factor 取紧绑定操作数,经新增 Parser.starred_seed 挂起,由 _parse_factor 顶部接手,再交由上层续接二元运算。*p[0](即 *(p[0]))、*p**2(即 *(p**2))等结合性保持原 C/Python 语义。
验证:全量 77/77 顺序回归一次通过;ZlibTest 内部断言由 74 passed / 6 failed 变为 79 passed / 0 failed。
2026-10-05 15:04:01 +08:00
..
2026-10-02 22:33:15 +08:00
2026-09-23 17:42:03 +08:00
2026-10-05 09:04:46 +08:00
2026-09-27 12:01:15 +08:00
2026-10-02 23:15:13 +08:00
2026-09-23 17:42:03 +08:00
2026-10-05 15:04:01 +08:00
2026-10-02 23:15:13 +08:00
2026-10-05 09:04:46 +08:00