<?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;
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"; } }