On Windows, if the substitution contains a back reference, it would
removed due to the replacement of the escape character in lit. Create a
helper class to avoid this which will simply ignore the replacement and
mark the substitution as having capture groups being referenced.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327082
91177308-0d34-0410-b5e6-
96231b3b80d8
else:
return self.parent.root
+class SubstituteCaptures:
+ """
+ Helper class to indicate that the substitutions contains backreferences.
+
+ This can be used as the following in lit.cfg to mark subsitutions as having
+ back-references::
+
+ config.substutions.append(('\b[^ ]*.cpp', SubstituteCaptures('\0.txt')))
+
+ """
+ def __init__(self, substitution):
+ self.substitution = substitution
+
+ def replace(self, pattern, replacement):
+ return self.substitution
+
+ def __str__(self):
+ return self.substitution
+