aboutsummaryrefslogtreecommitdiff
path: root/src/NXP/Classes/Calculator.php
diff options
context:
space:
mode:
Diffstat (limited to 'src/NXP/Classes/Calculator.php')
-rw-r--r--src/NXP/Classes/Calculator.php20
1 files changed, 6 insertions, 14 deletions
diff --git a/src/NXP/Classes/Calculator.php b/src/NXP/Classes/Calculator.php
index 1ceac84..980a52b 100644
--- a/src/NXP/Classes/Calculator.php
+++ b/src/NXP/Classes/Calculator.php
@@ -36,25 +36,17 @@ class Calculator
{
$stack = [];
foreach ($tokens as $token) {
- if ($token instanceof TokenNumber) {
- array_push($stack, $token);
- }
- if ($token instanceof TokenStringDoubleQuoted) {
- array_push($stack, $token);
- }
- if ($token instanceof TokenStringSingleQuoted) {
- array_push($stack, $token);
- }
- if ($token instanceof TokenVariable) {
+ if ($token instanceof TokenNumber || $token instanceof TokenStringDoubleQuoted || $token instanceof TokenStringSingleQuoted) {
+ $stack[] = $token;
+ } else if ($token instanceof TokenVariable) {
$variable = $token->getValue();
if (!array_key_exists($variable, $variables)) {
throw new UnknownVariableException($variable);
}
$value = $variables[$variable];
- array_push($stack, new TokenNumber($value));
- }
- if ($token instanceof InterfaceOperator || $token instanceof TokenFunction) {
- array_push($stack, $token->execute($stack));
+ $stack[] = new TokenNumber($value);
+ } else if ($token instanceof InterfaceOperator || $token instanceof TokenFunction) {
+ $stack[] = $token->execute($stack);
}
}
$result = array_pop($stack);