diff options
Diffstat (limited to 'tools/checker/file_format/c1visualizer/struct.py')
-rw-r--r-- | tools/checker/file_format/c1visualizer/struct.py | 44 |
1 files changed, 26 insertions, 18 deletions
diff --git a/tools/checker/file_format/c1visualizer/struct.py b/tools/checker/file_format/c1visualizer/struct.py index 991564eff4..9428a0e5f6 100644 --- a/tools/checker/file_format/c1visualizer/struct.py +++ b/tools/checker/file_format/c1visualizer/struct.py @@ -12,49 +12,57 @@ # See the License for the specific language governing permissions and # limitations under the License. +import os + +from common.immutables import ImmutableDict from common.logger import Logger from common.mixins import PrintableMixin -class C1visualizerFile(PrintableMixin): - def __init__(self, fileName): - self.fileName = fileName +class C1visualizerFile(PrintableMixin): + def __init__(self, filename): + self.base_file_name = os.path.basename(filename) + self.full_file_name = filename self.passes = [] + self.instruction_set_features = ImmutableDict() - def addPass(self, new_pass): + def set_isa_features(self, features): + self.instruction_set_features = ImmutableDict(features) + + def add_pass(self, new_pass): self.passes.append(new_pass) - def findPass(self, name): + def find_pass(self, name): for entry in self.passes: if entry.name == name: return entry return None def __eq__(self, other): - return isinstance(other, self.__class__) \ - and self.passes == other.passes + return (isinstance(other, self.__class__) + and self.passes == other.passes + and self.instruction_set_features == other.instruction_set_features) class C1visualizerPass(PrintableMixin): - - def __init__(self, parent, name, body, startLineNo): + def __init__(self, parent, name, body, start_line_no): self.parent = parent self.name = name self.body = body - self.startLineNo = startLineNo + self.start_line_no = start_line_no if not self.name: - Logger.fail("C1visualizer pass does not have a name", self.fileName, self.startLineNo) + Logger.fail("C1visualizer pass does not have a name", self.filename, self.start_line_no) if not self.body: - Logger.fail("C1visualizer pass does not have a body", self.fileName, self.startLineNo) + Logger.fail("C1visualizer pass does not have a body", self.filename, self.start_line_no) - self.parent.addPass(self) + self.parent.add_pass(self) @property - def fileName(self): - return self.parent.fileName + def filename(self): + return self.parent.base_file_name def __eq__(self, other): - return isinstance(other, self.__class__) \ - and self.name == other.name \ - and self.body == other.body + return (isinstance(other, self.__class__) + and self.name == other.name + and self.body == other.body) |