Skip to content

Commit 5816417

Browse files
committed
Made some objects non-global
1 parent b213168 commit 5816417

10 files changed

Lines changed: 587 additions & 604 deletions

File tree

Coco/CharClass.py

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ class CharClass(object):
3636

3737
charSetSize = 256 # must be a multiple of 16
3838

39-
def __init__(self, name: str, s: Union[Set[int], Set[Union[int, str]]]) -> None:
39+
def __init__(self, name: str, s: Union[Set[int], Set[Union[int, str]]], trace: Trace) -> None:
4040
assert isinstance(name, str)
4141
assert isinstance(s, set)
4242
if name == "#":
@@ -45,6 +45,7 @@ def __init__(self, name: str, s: Union[Set[int], Set[Union[int, str]]]) -> None:
4545
self.n = len(__class__.classes) # class number
4646
self.name = name # class name
4747
self.set = s # set representing the class
48+
self.trace = trace
4849
self.__class__.classes.append(self)
4950

5051
@staticmethod
@@ -81,11 +82,11 @@ def Ch(ch):
8182
@staticmethod
8283
def WriteClasses():
8384
for c in __class__.classes:
84-
Trace.Write(str(c.name), -10)
85-
Trace.Write(": ")
85+
self.trace.Write(str(c.name), -10)
86+
self.trace.Write(": ")
8687
c.WriteSet()
87-
Trace.WriteLine()
88-
Trace.WriteLine()
88+
self.trace.WriteLine()
89+
self.trace.WriteLine()
8990

9091
def WriteSet(self):
9192
s = self.set.copy()
@@ -105,6 +106,6 @@ def WriteSet(self):
105106
while i < mx and (i in s):
106107
i += 1
107108
if j < (i - 1):
108-
Trace.Write(str(self.__class__.Ch(j)) + ".." + str(self.__class__.Ch(i - 1)) + " ")
109+
self.trace.Write(str(self.__class__.Ch(j)) + ".." + str(self.__class__.Ch(i - 1)) + " ")
109110
else:
110-
Trace.Write(str(self.__class__.Ch(j) + " "))
111+
self.trace.Write(str(self.__class__.Ch(j) + " "))

Coco/CodeGenerator.py

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,24 +13,23 @@ class CodeGenerator(object):
1313
ls = "\n"
1414
indent_unit = "\t"
1515

16-
sourceDir = None
17-
outputDir = None
18-
frameDir = None
19-
20-
def __init__(self) -> None:
16+
def __init__(self, sourceDir, outputDir, frameDir) -> None:
2117
self._frameFile = None
2218
self._outputFile = None
19+
self.sourceDir = sourceDir
20+
self.outputDir = outputDir
21+
self.frameDir = frameDir
2322

2423
def openFiles(self, frameFileName: str, sourceFileName: str, outputFileName: str, backup: bool = False) -> None:
2524
if isinstance(frameFileName, str):
2625
frameFileName = [frameFileName]
2726

2827
self._frameFile = None
2928
for frameName in frameFileName:
30-
fr = self.__class__.sourceDir / frameName
29+
fr = self.sourceDir / frameName
3130
if not fr.is_file():
32-
if self.__class__.frameDir is not None:
33-
fr = self.__class__.frameDir / frameName
31+
if self.frameDir is not None:
32+
fr = self.frameDir / frameName
3433
try:
3534
self._frameFile = fr.open("rt", encoding="utf-8")
3635
break
@@ -41,7 +40,7 @@ def openFiles(self, frameFileName: str, sourceFileName: str, outputFileName: str
4140
raise RuntimeError("-- Compiler Error: Cannot open " + frameFileName[0])
4241

4342
try:
44-
fn = self.__class__.outputDir / outputFileName
43+
fn = self.outputDir / outputFileName
4544
if backup and fn.is_file():
4645
backup = fn.parent / (fn.name + ".old")
4746
if backup.is_file():

0 commit comments

Comments
 (0)