Skip to content
Snippets Groups Projects
Commit 5d18ef31 authored by Arthur Jacquin's avatar Arthur Jacquin
Browse files

Fixing some errors

parent be0e6142
No related tags found
No related merge requests found
"""
Expression module defines the structure of an expression.
"""
from calculator.operators import Operator
from typing import Union
from calculator.operators import Operator
Term: type = int
Token: type = Union[Operator, Term]
......@@ -12,6 +12,7 @@ class OperatorExpression:
"""
OperatorExpression class is an expression that contains an operator and two sub-expressions.
"""
def __init__(self, operator: Operator, left, right):
self.operator = operator
self.left = left
......@@ -28,6 +29,7 @@ class TermExpression:
"""
TermExpression class is an expression that contains a single term.
"""
def __init__(self, value: Term):
self.value = value
......
"""
Operator module contains the Operator class and a list of standard operators.
"""
class Operator:
"""
Operator class is a binary operator with a symbol, a precedence and an evaluation function.
"""
def __init__(self, symbol, precedence, evaluate_function):
self.symbol = symbol
self.precedence = precedence
......@@ -17,4 +20,8 @@ class Operator:
return self.evaluate_function(left, right)
STANDARD_OPERATORS = { '+': Operator('+', 1, lambda a, b: a + b),'-': Operator('-', 1, lambda a, b: a - b),'*': Operator('×', 2, lambda a, b: a * b),'/': Operator('/', 2, lambda a, b: a / b)}
STANDARD_OPERATORS = {
'+': Operator('+', 1, lambda a, b: a + b),
'-': Operator('-', 1, lambda a, b: a - b),
'*': Operator('×', 2, lambda a, b: a * b),
'/': Operator('/', 2, lambda a, b: a / b)}
from calculator.calculator import Calculator
from fastapi import FastAPI
from fastapi.requests import Request
from fastapi.templating import Jinja2Templates
from calculator.calculator import Calculator
app = FastAPI()
templates = Jinja2Templates(directory="calculator/templates")
calc = Calculator()
@app.get("/")
async def root(request: Request):
"""
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment