aboutsummaryrefslogtreecommitdiff
path: root/src/NXP/Classes/Token/TokenUnequal.php
diff options
context:
space:
mode:
authorBruce Wells <bruce.wells@simparel.com>2019-11-27 19:19:42 +0300
committerBruce Wells <bruce.wells@simparel.com>2019-11-27 19:19:42 +0300
commit44a13487b5a89951d244ab7a5e723cf7ec893a54 (patch)
tree88cafa1f3fe84e1db662470851a68947973cadda /src/NXP/Classes/Token/TokenUnequal.php
parentadf43bc705fd2d839a639c162f53407434867206 (diff)
parentf975f0bfbc6ac28f0a868b2c237cca071c37c39e (diff)
Merge branch 'master' of https://github.com/neonxp/MathExecutor
# Conflicts: # .gitignore # tests/MathTest.php
Diffstat (limited to 'src/NXP/Classes/Token/TokenUnequal.php')
-rw-r--r--src/NXP/Classes/Token/TokenUnequal.php53
1 files changed, 53 insertions, 0 deletions
diff --git a/src/NXP/Classes/Token/TokenUnequal.php b/src/NXP/Classes/Token/TokenUnequal.php
new file mode 100644
index 0000000..c8c5d1a
--- /dev/null
+++ b/src/NXP/Classes/Token/TokenUnequal.php
@@ -0,0 +1,53 @@
+<?php
+
+namespace NXP\Classes\Token;
+
+use NXP\Exception\IncorrectExpressionException;
+
+class TokenUnequal extends AbstractOperator
+{
+ /**
+ * @return string
+ */
+ public static function getRegex()
+ {
+ return '\!\=';
+ }
+
+ /**
+ * @return int
+ */
+ public function getPriority()
+ {
+ return 140;
+ }
+
+ /**
+ * @return string
+ */
+ public function getAssociation()
+ {
+ return self::LEFT_ASSOC;
+ }
+
+ /**
+ * @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("!= requires two operators");
+ }
+
+ $result = $op1->getValue() != $op2->getValue();
+
+ return new TokenNumber($result);
+ }
+}