diff options
author | Bruce Wells <brucekwells@gmail.com> | 2019-01-16 04:04:16 +0300 |
---|---|---|
committer | Bruce Wells <brucekwells@gmail.com> | 2019-01-16 04:04:16 +0300 |
commit | 47df3edbb6c437a049deee356db84f58edcba681 (patch) | |
tree | 866692bf5b60b9523e3b9b271fdb71f9fd890edf /src/NXP/Classes/Calculator.php | |
parent | 265cff175eb1c0be4b59d937286059532361820f (diff) |
Fixed comma operator
Added unit tests for expressions in function arguments.
Changed array_push to $var[] = native code.
Diffstat (limited to 'src/NXP/Classes/Calculator.php')
-rw-r--r-- | src/NXP/Classes/Calculator.php | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/src/NXP/Classes/Calculator.php b/src/NXP/Classes/Calculator.php index 62dbc17..980a52b 100644 --- a/src/NXP/Classes/Calculator.php +++ b/src/NXP/Classes/Calculator.php @@ -36,21 +36,17 @@ class Calculator { $stack = []; foreach ($tokens as $token) { - if ($token instanceof TokenNumber) { - array_push($stack, $token); - } else if ($token instanceof TokenStringDoubleQuoted) { - array_push($stack, $token); - } else if ($token instanceof TokenStringSingleQuoted) { - array_push($stack, $token); + 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)); + $stack[] = new TokenNumber($value); } else if ($token instanceof InterfaceOperator || $token instanceof TokenFunction) { - array_push($stack, $token->execute($stack)); + $stack[] = $token->execute($stack); } } $result = array_pop($stack); |