prot1vogas/expression-parser

简单的表达式解析器

0.3.0 2022-02-11 23:56 UTC

README

pipeline status

简单的表达式解析器。

兼容PHP 5.4及以上版本。

基本用法

$parser = new Parser(new TokenTypesFactory(), new Lexer());
$evaluator = new Evaluator();
$expression = $parser->parse("2 + 2");
echo $evaluator->execute($expression);

功能

  • 二元运算符 + - * / % ^
  • 一元运算符 - sqrt ! sin cos tan
  • 括号
  • 浮点变量
  • 常量 pi, e

您可以重写 TokenTypesFactory 以添加自定义运算符、变量或括号。有一些标记类型类

  • 二元运算符
  • 一元运算符
  • 变量
  • 括号

例如,可以在 getUnaryOperations 方法中添加新的运算符 'func',如下所示

$operations[] = new UnaryOperation('func', function ($args) {
    return $args[0] / 2;
}, 15, UnaryOperation::PREFIX_NOTATION);