# DExTer : Debugging Experience Tester # ~~~~~~ ~ ~~ ~ ~~ # # Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. # See https://llvm.org/LICENSE.txt for license information. # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception import os class LocIR: """Data class which represents a source location.""" def __init__(self, path: str, lineno: int, column: int): if path: path = os.path.normcase(path) self.path = path self.lineno = lineno self.column = column def __str__(self): return '{}({}:{})'.format(self.path, self.lineno, self.column) def __eq__(self, rhs): return (os.path.exists(self.path) and os.path.exists(rhs.path) and os.path.samefile(self.path, rhs.path) and self.lineno == rhs.lineno and self.column == rhs.column) def __lt__(self, rhs): if self.path != rhs.path: return False if self.lineno == rhs.lineno: return self.column < rhs.column return self.lineno < rhs.lineno def __gt__(self, rhs): if self.path != rhs.path: return False if self.lineno == rhs.lineno: return self.column > rhs.column return self.lineno > rhs.lineno