From 25314fd2aed81aa5281bc3d93dbcc7919368ebe1 Mon Sep 17 00:00:00 2001 From: Bicker Date: Wed, 22 May 2019 17:45:37 +0200 Subject: Initial commit --- .../unary_operators/negative_operator.py | 23 ++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 ql/ast/nodes/expressions/unary_operators/negative_operator.py (limited to 'ql/ast/nodes/expressions/unary_operators/negative_operator.py') diff --git a/ql/ast/nodes/expressions/unary_operators/negative_operator.py b/ql/ast/nodes/expressions/unary_operators/negative_operator.py new file mode 100644 index 0000000..359ed2e --- /dev/null +++ b/ql/ast/nodes/expressions/unary_operators/negative_operator.py @@ -0,0 +1,23 @@ +from ql.ast.nodes.expressions.unary_operators.unary_operator import UnaryOperatorNode +from ql.types.decimal import QLDecimal +from ql.types.integer import QLInteger +from ql.types.money import QLMoney +from ql.types.undefined import QLUndefined + + +class NegativeOperatorNode(UnaryOperatorNode): + def __init__(self, metadata, expression_type, expression, value): + super(NegativeOperatorNode, self).__init__(metadata, expression_type, expression, value) + self.__valid_types = { + QLDecimal: QLDecimal, + QLInteger: QLInteger, + QLMoney: QLMoney} + + def get_result_type(self): + if self.__valid_types.get(self.expression.expression_type): + return self.__valid_types.get(self.expression.expression_type) + + return QLUndefined + + def evaluate(self): + self.value = -self.expression.value -- cgit v1.2.3