aboutsummaryrefslogtreecommitdiff
path: root/src/NXP/Classes/Token/TokenMultiply.php
diff options
context:
space:
mode:
authorBruce Wells <bruce.wells@simparel.com>2018-10-24 21:16:11 +0300
committerBruce Wells <bruce.wells@simparel.com>2018-10-24 23:01:01 +0300
commitb9f72a001bca4772a003248595ad20b13a5b2277 (patch)
treebf38dac0f68746efbf5adf31e3a7e94b56bc7db0 /src/NXP/Classes/Token/TokenMultiply.php
parent12d41b160bbf8c26601819fcc1f7628c48bc7a00 (diff)
Additional validation for bad expressions (*+ for example)
Diffstat (limited to 'src/NXP/Classes/Token/TokenMultiply.php')
-rw-r--r--src/NXP/Classes/Token/TokenMultiply.php10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/NXP/Classes/Token/TokenMultiply.php b/src/NXP/Classes/Token/TokenMultiply.php
index e6fd960..8b173b9 100644
--- a/src/NXP/Classes/Token/TokenMultiply.php
+++ b/src/NXP/Classes/Token/TokenMultiply.php
@@ -10,6 +10,8 @@
namespace NXP\Classes\Token;
+use NXP\Exception\IncorrectExpressionException;
+
/**
* @author Alexander Kiryukhin <alexander@symdev.org>
*/
@@ -41,12 +43,20 @@ class TokenMultiply extends AbstractOperator
/**
* @param InterfaceToken[] $stack
+ *
* @return $this
+ *
+ * @throws \NXP\Exception\IncorrectExpressionException
*/
public function execute(&$stack)
{
$op2 = array_pop($stack);
$op1 = array_pop($stack);
+
+ if ($op1 === null || $op2 === null) {
+ throw new IncorrectExpressionException("Multiplication requires two operators");
+ }
+
$result = $op1->getValue() * $op2->getValue();
return new TokenNumber($result);