Skip to content

合法的 >= 与 or 条件在 datastruct.circlequeue 中被误报 SyntaxError #369

Description

@pikasTech

目标合并分支: master

问题

Linux GTest 的 datastruct.circlequeue 在解析以下现有脚本时返回 SyntaxError: invalid syntax

if index >= len(self.queue) or index < 0:
    ...

该表达式中的 >=、函数调用、or< 均属于当前已支持子集,不能在 parser 阶段误拒绝。

复现证据

  • 基线提交:3c696e17872693d0b8727e7ddf77e02832eb2544
  • Linux 隔离构建屏蔽 LVGL、网络、MQTT、requests 和 crypto 后运行 datastruct.circlequeue
  • 当前 runtime 优化候选失败;在同一隔离树仅恢复基线 PikaObj.c 后仍以相同第 37 行和相同错误失败,因此不是对象路径优化回归。
  • 需要在完整 Linux 默认包构建中再次确认,排除隔离生成 binding 的影响。

期望

  • 上述条件稳定解析并按 Python 3 布尔短路语义运行。
  • 增加最小合法邻接测试,覆盖 >=、函数调用、or< 的组合。
  • 若完整默认构建不复现,应修正或隔离 datastruct.circlequeue 的配置合同,避免核心回归产生伪失败。

边界

  • 不扩大语法子集。
  • 不改变 parser/VM 大架构。
  • parser 只处理正确性与错误可见性,不做 parser 性能优化。
  • default/minimal 分别验证,记录 text/data/bss 净变化。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions