#2026·Graphite

问题跟踪: 数学表达式解析器/计算器

作者: Keavon创建于 2024年10月9日更新于 2026年9月17日
标签Help WantedGood First Issue

这是我们在[`/librarys/math-parser']的图书馆(https://GitHub.com/GraphiteEditor/Graphite/tree/master/librarys/math-parser),它使用一个解析框架,在运行时取出一个字符串并计算其结果,包括单位和维度分析.

□ 路线图

  • Scalars (实数)
  • 第1条(复数)
  • [ ]矢量1/分量2/分量3和分量2/分量3(至四分位数)
  • [ ]地图(线和相邻地图)
  • [ ]静态打字:类型(数值对矩阵),值阶梯,矩阵钻石(Linear/Affine × 2D/3D),以及改进
  • [ ]单位
  • 文档
  • 报告出错 *(部分完成:解析出错带字节跨度并输入评价出错,但没有源片渲染) *
  • 编入Graphene AST

□ 运算符

  • 插件操作员:
  • 添加:
  • 减法:-', −`
  • [x]乘法: *,×,.
  • [x]分区:`/',
  • [ ]Modulo: %(已下架,结果取出modulus的标志,而(-3.2)% 2'是0.8',与Modulo节点的默认相匹配;`x%把'将一个角度包装成一个革命')
  • 指标:
  • 等数:
  • 不等于:!=;;
  • 少于或等于:
  • 大于或等于: ,
  • [x]小于: ++
  • 比: >
  • 或:||,
  • 还有: &&,
  • 前缀运算符:
  • Unary Plus: +
  • 一等分数:-',
  • 不:! ' , ¬`
  • 后缀操作员:
  • [x]因果:`!
  • 分组操作员:
  • 父母:`(.)'
  • Magnitude 栏: * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

□ 连锁比较 像`a < b < c'这样的链条是一个n-ary 上游:每次比较只读出最初的操作和单个结果合并在一起,因此任何比较的结果都无助于再次比较。

  • a < b < c ' 和较长的连锁店维护相邻的每对对搭配之间的关系,如间隔标记(0 ' x < 1 ' ),永远不要C-型`(a < b) < c'
  • 一条链必须留在一个方向的家族内,QQ/QQ/QQ或QQ/;混合方向是一个解析错误 -a!=b!=c'声称,所有对子都是不同的,与Mathematica的不平等'相匹配(完全不是Python的相邻-pairs读取)

□ 函数

  • [x]特里格:
  • [x]sin()'、cos()'、`tan()'
  • csc()'、sec()'、`cot()'
  • 反三:
  • [x]asin()'、acos()'、atan()'、atan2()'
  • [x]asc()'、asec()'、`acot()'
  • 双曲:
  • 辛()'、可什()'、`tan()'
  • [x]csch()'、shech()'、`coth()'
  • [x]反双曲:
  • [x]asinh()'、acosh()'、`atanh()'
  • [x]acsch()'、asech()'、`acoth()'
  • 对数:
  • 自然对数:`ln()'
  • 对数基础N:`logN ()'(别名: . . . . . . .

内容来源: GraphiteEditor/Graphite