Exemple #1
0
<?php

require_once 'Calculator.php';
$calculator = new Calculator();
//var_dump(range(1,100));
$calculator->run('+', range(1, 100));
echo $calculator;
var_dump('--------- run +1');
$calculator->run('+', [1]);
echo $calculator;
var_dump('--------- run *2');
$calculator->run('*', [2]);
echo $calculator;
var_dump('--------- reset');
$calculator->reset();
echo $calculator;
var_dump('--------- new add');
$calculator->run('+', [1, 100]);
echo $calculator;
Exemple #2
0
                    return $lval - $rval;
                    break;
                case '*':
                    return $lval * $rval;
                    break;
                case '/':
                    return $lval / $rval;
                    break;
                default:
                    throw new \PHParsec\ParseException('Invalid operator: ' . $op, $this->_i);
                    break;
            }
        };
    }
    public function operator()
    {
        return $this->choice([$this->char('+'), $this->char('-'), $this->char('*'), $this->char('/')]);
    }
}
$c = new Calculator();
while (true) {
    if (false === ($l = readline('> '))) {
        break;
    }
    try {
        $f = $c->reset($l)->expression();
        print "# " . $f() . "\n";
    } catch (\Exception $e) {
        print $e->getMessage() . "\n";
    }
}