Skip to content
Snippets Groups Projects
Select Git revision
  • 1a06081d807a6d8507f3299fba4317550b6d4f69
  • master default
2 results

raytracer.cpython-34.pyc

Blame
  • Expression.py 723 B
    from typing import Union
    from Operators import Operator
    
    Term: type = float
    Token: type = Union[Operator, Term]
    
    
    class OperatorExpression:
        def __init__(self, operator: Operator, left, right):
            self.operator = operator
            self.left = left
            self.right = right
    
        def __repr__(self):
            return f"({self.left} {self.operator} {self.right})"
    
        def __call__(self) -> Term:
            return self.operator(self.left(), self.right())
    
    
    class TermExpression:
        def __init__(self, value: Term):
            self.value = value
    
        def __repr__(self):
            return str(self.value)
    
        def __call__(self) -> Term:
            return self.value
    
    
    Expression: type = Union[OperatorExpression, TermExpression]