2017 © Pedro Peláez
 

library math-executor

Simple math expressions calculator - extension of http://github.com/NeonXP/MathExecutor

image

z/math-executor

Simple math expressions calculator - extension of http://github.com/NeonXP/MathExecutor

  • Tuesday, October 10, 2017
  • by zRosenthal
  • Repository
  • 2 Watchers
  • 2 Stars
  • 1,168 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 1 Open issues
  • 1 Versions
  • 6 % Grown

The README.md

Simple math expressions calculator, (*1)

Install via Composer

All instructions to install here: https://packagist.org/packages/Z/math-executor, (*2)

Sample usage:

require "vendor/autoload.php";

$calculator = new \Z\MathExecutor();

print $calculator->execute("1 + 2 * (2 - (4+10))^2 + sin(10)");

Functions:

Default functions: * sin * cos * tn * asin * acos * atn * min * max * avg, (*3)

Add custom function to executor:, (*4)

$executor->addFunction('abs', function($arg) {
    return abs($arg);
}, 1);

Operators:

Default operators: + - * / ^, (*5)

Add custom operator to executor:, (*6)

MyNamespace/ModulusToken.php:, (*7)

<?php
namespace MyNamespace;

use Z\Classes\Token\AbstractOperator;

class ModulusToken extends AbstractOperator
{
    /**
     * Regex of this operator
     * @return string
     */
    public static function getRegex()
    {
        return '\%';
    }

    /**
     * Priority of this operator
     * @return int
     */
    public function getPriority()
    {
        return 3;
    }

    /**
     * Associaion of this operator (self::LEFT_ASSOC or self::RIGHT_ASSOC)
     * @return string
     */
    public function getAssociation()
    {
        return self::LEFT_ASSOC;
    }

    /**
     * Execution of this operator
     * @param InterfaceToken[] $stack Stack of tokens
     * @return TokenNumber            Result of execution
     */
    public function execute(&$stack)
    {
        $op2 = array_pop($stack);
        $op1 = array_pop($stack);
        $result = $op1->getValue() % $op2->getValue();

        return new TokenNumber($result);
    }
}

And adding to executor:, (*8)

$executor->addOperator('MyNamespace\ModulusToken');

Variables:

Default variables:, (*9)

$pi = 3.14159265359
$e = 2.71828182846

You can add own variable to executor:, (*10)

```php $executor->setVars(array( 'var1' => 0.15, 'var2' => 0.22 ));, (*11)

$executor->execute("$var1 + $var2");, (*12)

The Versions

10/10 2017

dev-master

9999999-dev

Simple math expressions calculator - extension of http://github.com/NeonXP/MathExecutor

  Sources   Download

GPLv2

The Development Requires

by Zachary Rosenthal

parser math expression calculator