all repos — calc @ 168142049029d45a2e0dd423b296de40d3f2dfab

a simple python calculator

main.py (view raw)

 1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
import sys

from intepreter import Interpreter
from lexer import Lexer
from parser import Parser


def main():
    print('->', end=' ')
    sys.stdout.flush()
    for line in sys.stdin:
        lexer = Lexer(line)
        tokens = lexer.lex()
        # for token in tokens:
        #     print(token)

        parser = Parser(tokens)
        ast = parser.parse()
        # print(ast)

        interpreter = Interpreter(ast)
        interpreter.run()
        print('->', end=' ')
        sys.stdout.flush()


if __name__ == '__main__':
    main()