You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

数学表达式递归下降解析器扩展函数支持时报列表索引越界错误

Python递归下降数学表达式解析器混合运算IndexError问题

已验证正常运行的功能

  • 基础版本可正确处理整数、浮点数的常规四则运算
  • Token扫描模块可正常将输入字符串转换为形如[5.0, '+', ...]的结构化token列表
  • 无内置函数的表达式可正确生成抽象语法树,输出准确的求值结果
  • 单函数嵌套表达式可正常解析,典型可运行样例为cbrt( 4*3-4 )

异常触发条件

在扩展log、ln、sqrt、cbrt类内置函数支持后,只要输入包含多元素混合运算表达式,程序就会抛出IndexError: list index out of range。
可稳定复现的输入样例包括:

  • cbrt( 8 )+ log( 10 )
  • 5+sqrt( 4 )
  • 3*log( 4-9 )
  • sqrt( 4 ) - ln( 2.7 )

报错定位信息

异常栈显示,错误触发于power函数内判断a[i] == '^'的代码行。

已完成的代码模块范围

目前已搭建完完整的解析链路,覆盖全部以下模块:

  • 递归下降解析逻辑:expect_token、atom、power、negation、multiplication、addition、expression、抽象语法树生成逻辑
  • 辅助能力模块:scan词法扫描函数、evaluate求值函数、算子调度表、内置函数支持列表

当前诉求

定位代码缺陷的具体位置,获取可直接落地的修复方案。

内容的提问来源于stack exchange,提问作者Leo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.27 22:54:00