-
Notifications
You must be signed in to change notification settings - Fork 0
/
jackcompiler.py
41 lines (34 loc) · 1.52 KB
/
jackcompiler.py
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
36
37
38
39
40
41
from jacktokenizer import JackTokenizer
from symboltable import SymbolTable
from compilationengine import CompilationEngine
from vmwriter import VMWriter
from os import listdir # alleen gebruiker bij directories.
from os.path import isdir
class JackCompiler:
def __init__(self,path_source): # Path to source directory or single file
self.path_source = path_source
def run(self):
if isdir(self.path_source):
directory_file_list = listdir(self.path_source)
for f in directory_file_list :
if f.endswith(".jack") :
tok = JackTokenizer(self.path_source + '/' + f)
vmw = VMWriter(self.path_source + '/' \
+ f.partition('.')[0] + '.vm')
eng = CompilationEngine(tok,vmw)
eng.compile_class()
else :
if f.endswith(".jack") :
tok = JackTokenizer(self.path_source + '/' + f)
vmw = VMWriter(self.path_source + '/' \
+ f.partition('.')[0] + '.vm')
eng = CompilationEngine(tok,vmw)
eng.compile_class()
if __name__ == '__main__':
# Voor Linux
progdirpath = "/home/cewijk/synx/P/jackcompiler/11/ComplexArrays"
# Voor Windows
# progdirpath = r"D:\synx\P\jackcompiler\11\Seven"
print( listdir(progdirpath)) # Get all jack files in a list.
jackcompiler = JackCompiler(progdirpath)
jackcompiler.run()