@@ -23,9 +23,31 @@ public class CSharpToCppTransformer : TextTransformer
2323 // Platform.Collections.Methods.Lists
2424 // Platform::Collections::Methods::Lists
2525 ( new Regex ( @"(namespace[^\r\n]+?)\.([^\r\n]+?)" ) , "$1::$2" , 20 ) ,
26+ // Insert markers
27+ // EqualityComparer<T> _equalityComparer = EqualityComparer<T>.Default;
28+ // EqualityComparer<T> _equalityComparer = EqualityComparer<T>.Default;/*~_comparer~*/
29+ ( new Regex ( @"(?<declaration>EqualityComparer<(?<type>[^>\n]+)> (?<comparer>[a-zA-Z0-9_]+) = EqualityComparer<\k<type>>\.Default;)" ) , "${declaration}/*~${comparer}~*/" , 0 ) ,
30+ // /*~_equalityComparer~*/..._equalityComparer.Equals(Minimum, value)
31+ // /*~_equalityComparer~*/...Minimum == value
32+ ( new Regex ( @"(?<before>/\*~(?<comparer>[a-zA-Z0-9_]+)~\*/(.|\n)+\W)\k<comparer>\.Equals\((?<left>[^,\n]+), (?<right>[^)\n]+)\)" ) , "${before}${left} == ${right}" , 50 ) ,
33+ // Remove markers
34+ // /*~_equalityComparer~*/
35+ //
36+ ( new Regex ( @"\r?\n[^\n]+/\*~[a-zA-Z0-9_]+~\*/\r\n([ \t]*\r\n)?" ) , Environment . NewLine , 10 ) ,
37+ // Insert markers
38+ // Comparer<T> _comparer = Comparer<T>.Default;
39+ // Comparer<T> _comparer = Comparer<T>.Default;/*~_comparer~*/
40+ ( new Regex ( @"(?<declaration>Comparer<(?<type>[^>\n]+)> (?<comparer>[a-zA-Z0-9_]+) = Comparer<\k<type>>\.Default;)" ) , "${declaration}/*~${comparer}~*/" , 0 ) ,
41+ // /*~_comparer~*/..._comparer.Compare(Minimum, value) <= 0
42+ // /*~_comparer~*/...Minimum <= value
43+ ( new Regex ( @"(?<before>/\*~(?<comparer>[a-zA-Z0-9_]+)~\*/(.|\n)+\W)\k<comparer>\.Compare\((?<left>[^,\n]+), (?<right>[^)\n]+)\)\s*(?<comparison>[<>=]=?)\s*0(?<after>\D)" ) , "${before}${left} ${comparison} ${right}${after}" , 50 ) ,
44+ // Remove markers
45+ // private static readonly Comparer<T> _comparer = Comparer<T>.Default;/*~_comparer~*/
46+ //
47+ ( new Regex ( @"\r?\n[^\n]+/\*~[a-zA-Z0-9_]+~\*/\r\n([ \t]*\r\n)?" ) , Environment . NewLine , 10 ) ,
2648 // Comparer<TArgument>.Default.Compare(maximumArgument, minimumArgument) < 0
2749 // maximumArgument < minimumArgument
28- ( new Regex ( @"Comparer<[^>\n]+>\.Default\.Compare\(\s*(?<first>[^,)\n]+),\s*(?<second>[^\)\n]+)\s*\)\s*(?<comparison>[<>=]=?)\s*0" ) , "${first} ${comparison} ${second}" , 0 ) ,
50+ ( new Regex ( @"Comparer<[^>\n]+>\.Default\.Compare\(\s*(?<first>[^,)\n]+),\s*(?<second>[^\)\n]+)\s*\)\s*(?<comparison>[<>=]=?)\s*0(?<after>\D) " ) , "${first} ${comparison} ${second}${after }" , 0 ) ,
2951 // out TProduct
3052 // TProduct
3153 ( new Regex ( @"(?<before>(<|, ))(in|out) (?<typeParameter>[a-zA-Z0-9]+)(?<after>(>|,))" ) , "${before}${typeParameter}${after}" , 10 ) ,
0 commit comments