summaryrefslogtreecommitdiffstats
path: root/debuginfo-tests/dexter/dex/dextIR/LocIR.py
diff options
context:
space:
mode:
Diffstat (limited to 'debuginfo-tests/dexter/dex/dextIR/LocIR.py')
-rw-r--r--debuginfo-tests/dexter/dex/dextIR/LocIR.py45
1 files changed, 45 insertions, 0 deletions
diff --git a/debuginfo-tests/dexter/dex/dextIR/LocIR.py b/debuginfo-tests/dexter/dex/dextIR/LocIR.py
new file mode 100644
index 00000000000..52a56a8fe80
--- /dev/null
+++ b/debuginfo-tests/dexter/dex/dextIR/LocIR.py
@@ -0,0 +1,45 @@
+# 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
OpenPOWER on IntegriCloud