aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Kiryukhin <alexander@kiryukhin.su>2018-09-06 20:41:20 +0300
committerGitHub <noreply@github.com>2018-09-06 20:41:20 +0300
commit2a629d37dda54f8a8d559473a5167b512910f75b (patch)
tree954c50f2644212742442e0027efb081620d2a109
parentaa1a092a9e231e8f923ab40365dff092c2908903 (diff)
parent7b657db13f0b76432ca0039e45f4b8f5e09879c2 (diff)
Merge pull request #27 from NeonXP/devv0.3
Dev
-rw-r--r--src/NXP/Classes/Calculator.php2
-rw-r--r--src/NXP/Classes/TokenFactory.php6
-rw-r--r--src/NXP/MathExecutor.php4
3 files changed, 8 insertions, 4 deletions
diff --git a/src/NXP/Classes/Calculator.php b/src/NXP/Classes/Calculator.php
index 41e0d9f..b584d69 100644
--- a/src/NXP/Classes/Calculator.php
+++ b/src/NXP/Classes/Calculator.php
@@ -40,7 +40,7 @@ class Calculator
if ($token instanceof TokenVariable) {
$variable = $token->getValue();
if (!array_key_exists($variable, $variables)) {
- throw new UnknownVariableException();
+ throw new UnknownVariableException($variable);
}
$value = $variables[$variable];
array_push($stack, new TokenNumber($value));
diff --git a/src/NXP/Classes/TokenFactory.php b/src/NXP/Classes/TokenFactory.php
index 2b1e00e..85c4a62 100644
--- a/src/NXP/Classes/TokenFactory.php
+++ b/src/NXP/Classes/TokenFactory.php
@@ -73,7 +73,7 @@ class TokenFactory
$class = new \ReflectionClass($operatorClass);
if (!in_array('NXP\Classes\Token\InterfaceToken', $class->getInterfaceNames())) {
- throw new UnknownOperatorException;
+ throw new UnknownOperatorException($operatorClass);
}
$this->operators[] = $operatorClass;
@@ -162,10 +162,10 @@ class TokenFactory
if (isset($this->functions[$token])) {
return new TokenFunction($this->functions[$token]);
} else {
- throw new UnknownFunctionException();
+ throw new UnknownFunctionException($token);
}
}
- throw new UnknownTokenException();
+ throw new UnknownTokenException($token);
}
}
diff --git a/src/NXP/MathExecutor.php b/src/NXP/MathExecutor.php
index 9e7ce25..c5c7add 100644
--- a/src/NXP/MathExecutor.php
+++ b/src/NXP/MathExecutor.php
@@ -91,6 +91,10 @@ class MathExecutor
*/
public function setVar($variable, $value)
{
+ if (!is_numeric($value)) {
+ throw new \Exception("Variable ({$variable}) value must be a number ({$value}) type ({gettype($value)})");
+ }
+
$this->variables[$variable] = $value;
return $this;