diff options
author | Bruce Wells <bruce.wells@simparel.com> | 2019-11-27 19:19:42 +0300 |
---|---|---|
committer | Bruce Wells <bruce.wells@simparel.com> | 2019-11-27 19:19:42 +0300 |
commit | 44a13487b5a89951d244ab7a5e723cf7ec893a54 (patch) | |
tree | 88cafa1f3fe84e1db662470851a68947973cadda /src/NXP/Classes/Token/TokenUnequal.php | |
parent | adf43bc705fd2d839a639c162f53407434867206 (diff) | |
parent | f975f0bfbc6ac28f0a868b2c237cca071c37c39e (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.php | 53 |
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); + } +} |