diff options
author | Bruce Wells <bruce.wells@simparel.com> | 2019-11-27 19:39:51 +0300 |
---|---|---|
committer | Bruce Wells <bruce.wells@simparel.com> | 2019-11-27 20:33:50 +0300 |
commit | 84f3f967b71fc39bf61be13e46c89158ad0a34a9 (patch) | |
tree | 2b01f4b6c9a695da3246eebc4828372abd659d06 /src/NXP/Classes/Token/TokenNotEqual.php | |
parent | 44a13487b5a89951d244ab7a5e723cf7ec893a54 (diff) |
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); + } +} |