diff options
Diffstat (limited to 'src/NXP/Classes/Token/TokenDivision.php')
-rw-r--r-- | src/NXP/Classes/Token/TokenDivision.php | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/src/NXP/Classes/Token/TokenDivision.php b/src/NXP/Classes/Token/TokenDivision.php new file mode 100644 index 0000000..479a4ec --- /dev/null +++ b/src/NXP/Classes/Token/TokenDivision.php @@ -0,0 +1,54 @@ +<?php +/** +* This file is part of the MathExecutor package +* +* (c) Alexander Kiryukhin +* +* For the full copyright and license information, please view the LICENSE +* file that was distributed with this source code +*/ + +namespace NXP\Classes\Token; + +/** +* @author Alexander Kiryukhin <alexander@symdev.org> +*/ +class TokenDivision extends AbstractOperator +{ + /** + * @return string + */ + public static function getRegex() + { + return '\/'; + } + + /** + * @return int + */ + public function getPriority() + { + return 2; + } + + /** + * @return string + */ + public function getAssociation() + { + return self::LEFT_ASSOC; + } + + /** + * @param InterfaceToken[] $stack + * @return $this + */ + public function execute(&$stack) + { + $op2 = array_pop($stack); + $op1 = array_pop($stack); + $result = $op1->getValue() / $op2->getValue(); + + return new TokenNumber($result); + } +} |