-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfuncDirTable.py
More file actions
42 lines (35 loc) · 1.43 KB
/
Copy pathfuncDirTable.py
File metadata and controls
42 lines (35 loc) · 1.43 KB
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
42
# Kirin Programming Language
# FuncDirTable class
# Jose Juan Zavala Iglesias | A01281362
# Angel Seiji Morimoto Burgos | A01281380
from funcDirRow import FuncDirRow
from kirinMappers import typeToCode
from kirinMappers import codeToType
class FuncDirTable(object):
def __init__(self):
self.table = {}
def has(self, blockID, blockParams, blockDimsX, blockDimsY):
return (blockID, blockParams, blockDimsX, blockDimsY) in self.table
def add(self, blockID, blockParams, blockDimsX, blockDimsY, funcDirRow):
self.table[(blockID, blockParams, blockDimsX, blockDimsY)] = funcDirRow
# Print for debugging
if blockParams is not None:
if len(blockParams) == 0:
blockParamsStr = "()"
else:
blockParamsStr = "("
for param in blockParams:
if type(param) is str:
blockParamsStr = blockParamsStr + param + ", "
else:
blockParamsStr = blockParamsStr + codeToType.get(param) + ", "
blockParamsStr = list(blockParamsStr.strip())
blockParamsStr[len(blockParamsStr) - 1] = ')'
blockParamsStr = "".join(blockParamsStr)
else:
blockParamsStr = "None"
print("created function with:", blockID, blockParamsStr, funcDirRow)
def getFuncDirRow(self, blockId, blockParams, blockDimsX, blockDimsY):
return self.table[(blockId, blockParams, blockDimsX, blockDimsY)]
def getVarTable(self, blockID, blockParams, blockDimsX, blockDimsY):
return self.table[(blockID, blockParams, blockDimsX, blockDimsY)].varTable