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-09-30 00:25:55 +08:00
2026-08-17 11:01:35 +08:00
2026-09-29 17:00:36 +08:00
2026-09-29 17:00:20 +08:00
2026-09-29 16:59:46 +08:00
2026-09-29 16:59:21 +08:00
2026-09-29 16:47:50 +08:00
2026-09-29 16:47:20 +08:00
S
Description
GVSDS(TM) Viper SE Runtime Environment and Library (VRTE)
15 MiB
0 Stars 1 Watchers 0 Forks
Languages
C++ 76.8%
C 22%
CMake 1.2%