waughj/math-parser

Simple Lisp-like math parser.

Installs: 19

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 0

pkg:composer/waughj/math-parser

v0.1.0 2019-12-02 21:44 UTC

This package is auto-updated.

Last update: 2025-09-29 02:21:10 UTC


README

Simple Lisp-like math parser.

Example

use WaughJ\MathParser\MathParser;

$math = new MathParser();
echo( $math->parse( '(+ 2 2)' ) );

Prints "4".

To use a different parser:

use WaughJ\MathParser\MathParser;

$math = new MathParser( new LisphpParser( [ ',' ] ) );
echo( $math->parse( '(*,2,5)' ) );

Prints "10".

To create a new custom function:

use WaughJ\MathParser\MathParser;
use WaughJ\MathParser\MathParserExceptionInvalidFunctionCall;

$math = new MathParser();
$math->addFunction
(
    'double',
    function( array $args )
    {
        $arg_count = count( $args );
        if ( $arg_count < 1 )
        {
            throw new MathParserExceptionInvalidFunctionCall
            (
                "Call to function “double” given no arguments. Needs at least 1."
            );
        }
        return array_shift( $args ) * 2;
    }
);
echo( $math->parse( '(double 222)' ) );

Prints "444".

Changelog

0.1.0

  • Initial stable version.