diff options
author | Bruce Wells <brucekwells@gmail.com> | 2019-11-27 20:39:25 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-11-27 20:39:25 +0300 |
commit | f24038043894da8e9de2f437559d95f4fe93b305 (patch) | |
tree | 2b01f4b6c9a695da3246eebc4828372abd659d06 /src/NXP/Classes/Token/TokenNotEqual.php | |
parent | f975f0bfbc6ac28f0a868b2c237cca071c37c39e (diff) |
Version 1.1 (#51)V1.1.0
* Update README.md and more function support
Diffstat (limited to 'src/NXP/Classes/Token/TokenNotEqual.php')
-rw-r--r-- | src/NXP/Classes/Token/TokenNotEqual.php | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/src/NXP/Classes/Token/TokenNotEqual.php b/src/NXP/Classes/Token/TokenNotEqual.php new file mode 100644 index 0000000..21c9454 --- /dev/null +++ b/src/NXP/Classes/Token/TokenNotEqual.php @@ -0,0 +1,53 @@ +<?php + +namespace NXP\Classes\Token; + +use NXP\Exception\IncorrectExpressionException; + +class TokenNotEqual 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); + } +} |