木兰语言 0.0.17.4 发现依赖库风险、不支持 in;发布 Gitee Reward 首批悬赏任务
首先号外,刚在 Gitee Reward 发布了首批三个总值 ¥916 的悬赏任务,走过路过莫错过: ¥100 【新人优先】重现一个内置函数——bytes ¥128 【进阶】补完余下三十多个内置函数 ¥688 【老手】木兰源码转换为 Python 依赖库风险 不知从何时开始,运行原始木兰的 逆向项目 时,就会报 rply 警告 ParserGeneratorWarning: Token '|=' is unused 而且任何求值都报错 “IndexError: list index out of range”。 一直没细究,本周才发现是因为木兰语法中的 “|” (位或)操作符在 rply 0.7.8 中成为了保留字,详见此 issue,就是在今年一月 rply 发布了 0.7.8 后就有此问题。 具体说,木兰逆向中有 @pg_.production('bin_expr : expr | expr') 这一语法规则,也就是表达式的位或运算,而在 rply 0.7.8 中包含了 这个 PR,将 | 作为语法规则的“或者”,也即 BNF 中 | 的原始语义。导致木兰的位或语法规则不能再识别。...