-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.py
More file actions
35 lines (30 loc) · 815 Bytes
/
main.py
File metadata and controls
35 lines (30 loc) · 815 Bytes
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
29
30
31
32
33
34
35
#!c:\Python38\python.exe
# Davi Belini
# 27-Dec-2020
# The Pickle Programming Language.
from lexer import Lexer
from parse import Parser
from interpreter import Interpreter
from sys import argv
from os import system
from printf import printf
from SymbolTable import global_symbol_table
system("cls")
system("@echo The Pickle Programming Language.")
version = "0.0.1"
system(f"@echo @{version}")
line_number = 0
while True:
text = input(f"pickle > ")
lexer = Lexer(text)
tokens = lexer.generate_tokens()
parser = Parser(tokens)
tree = parser.generate_tree()
interpreter = Interpreter(global_symbol_table)
if not tree:
print(f"\u007b{line_number}\u007d => null")
line_number += 1
continue
else:
print(f"\u007b{line_number}\u007d => {interpreter.visit(tree)}")
line_number += 1