joséfelipetto/math-expression-parser

一个用于解析和解决所有类型数值表达式的组件

dev-master 2020-04-09 00:22 UTC

This package is not auto-updated.

Last update: 2024-09-29 04:24:27 UTC


README

一个基于PHP的数学表达式解析器。

要求

  • PHP 7.1

安装

您可以通过使用composer安装该组件。

composer require josefelipetto/math-expression-parser

如何使用

您可以通过两种方式使用:

  • 使用已安装依赖的ExpressionParser外观,并返回结果,如下所示
use Parser\Facades\ExpressionParser;

$result = ExpressionParser::parse('(2+2)^(2*2)/1+3+5');

assert($result === 264); 
  • 或者,您可以实际上使用您自己的Lexer和/或AST实现,通过提供类依赖项,如下所示
use Parser\Evaluator;
use Parser\Lexer; // Or your Lexer
use Parser\Syntactic; // Or your AST

$evaluator = new Evaluator(new Syntactic(new Lexer('(2+2)^(2*2)/1+3+5')));
    
assert($evaluator->parse() === 264);

语法

解析器接受以下运算符:+ ; - ; . ; * ; / ; ^ ; ( ; )