public static int lastIndexOf(global::System.String me, global::System.String str, global::haxe.lang.Null <int> startIndex) { unchecked { int sIndex = ((!(startIndex.hasValue)) ? ((me.Length - 1)) : ((startIndex).@value)); if ((sIndex >= me.Length)) { sIndex = (me.Length - 1); } else if ((sIndex < 0)) { return(-1); } if (startIndex.hasValue) { int d = ((me.Length - sIndex) - str.Length); if ((d < 0)) { sIndex += d; } int i = (sIndex + 1); while ((i-- > 0)) { bool found = true; { int _g = 0; int _g1 = str.Length; while ((_g < _g1)) { int j = _g++; if ((me[(i + j)] != str[j])) { found = false; break; } } } if (found) { return(i); } } return(-1); } else { return(me.LastIndexOf(((string)(str)), ((int)(sIndex)), ((global::System.StringComparison)(global::System.StringComparison.Ordinal)))); } } }
public static int lastIndexOf(global::System.String me, global::System.String str, object startIndex) { unchecked { #line 54 "C:\\HaxeToolkit\\haxe\\std\\cs\\internal\\StringExt.hx" int sIndex = (((startIndex == default(object))) ? ((me.Length - 1)) : (((int)(global::haxe.lang.Runtime.toInt(startIndex))))); if ((sIndex >= me.Length)) { #line 56 "C:\\HaxeToolkit\\haxe\\std\\cs\\internal\\StringExt.hx" sIndex = (me.Length - 1); } else if ((sIndex < 0)) { #line 58 "C:\\HaxeToolkit\\haxe\\std\\cs\\internal\\StringExt.hx" return(-1); } #line 61 "C:\\HaxeToolkit\\haxe\\std\\cs\\internal\\StringExt.hx" if ((startIndex != default(object))) { #line 65 "C:\\HaxeToolkit\\haxe\\std\\cs\\internal\\StringExt.hx" int d = ((me.Length - sIndex) - str.Length); if ((d < 0)) { #line 67 "C:\\HaxeToolkit\\haxe\\std\\cs\\internal\\StringExt.hx" sIndex += d; } #line 70 "C:\\HaxeToolkit\\haxe\\std\\cs\\internal\\StringExt.hx" int i = (sIndex + 1); while ((i-- > 0)) { #line 72 "C:\\HaxeToolkit\\haxe\\std\\cs\\internal\\StringExt.hx" bool found = true; { #line 73 "C:\\HaxeToolkit\\haxe\\std\\cs\\internal\\StringExt.hx" int _g = 0; #line 73 "C:\\HaxeToolkit\\haxe\\std\\cs\\internal\\StringExt.hx" int _g1 = str.Length; #line 73 "C:\\HaxeToolkit\\haxe\\std\\cs\\internal\\StringExt.hx" while ((_g < _g1)) { #line 73 "C:\\HaxeToolkit\\haxe\\std\\cs\\internal\\StringExt.hx" int j = _g++; if ((me[(i + j)] != str[j])) { #line 75 "C:\\HaxeToolkit\\haxe\\std\\cs\\internal\\StringExt.hx" found = false; break; } } } #line 80 "C:\\HaxeToolkit\\haxe\\std\\cs\\internal\\StringExt.hx" if (found) { #line 81 "C:\\HaxeToolkit\\haxe\\std\\cs\\internal\\StringExt.hx" return(i); } } #line 84 "C:\\HaxeToolkit\\haxe\\std\\cs\\internal\\StringExt.hx" return(-1); } else { #line 86 "C:\\HaxeToolkit\\haxe\\std\\cs\\internal\\StringExt.hx" return(me.LastIndexOf(((string)(str)), ((int)(sIndex)), ((global::System.StringComparison)(global::System.StringComparison.Ordinal)))); } } #line default }
public static int lastIndexOf(global::System.String me, global::System.String str, global::haxe.lang.Null <int> startIndex) { unchecked { #line 61 "/opt/haxe/std/cs/internal/StringExt.hx" int sIndex = ((!(startIndex.hasValue)) ? ((me.Length - 1)) : ((startIndex).@value)); if ((sIndex >= me.Length)) { #line 63 "/opt/haxe/std/cs/internal/StringExt.hx" sIndex = (me.Length - 1); } else if ((sIndex < 0)) { #line 65 "/opt/haxe/std/cs/internal/StringExt.hx" return(-1); } #line 67 "/opt/haxe/std/cs/internal/StringExt.hx" if ((str.Length == 0)) { #line 68 "/opt/haxe/std/cs/internal/StringExt.hx" if ((!(startIndex.hasValue) || ((startIndex).@value > me.Length))) { #line 68 "/opt/haxe/std/cs/internal/StringExt.hx" return(me.Length); } else { #line 68 "/opt/haxe/std/cs/internal/StringExt.hx" return((startIndex).@value); } } #line 72 "/opt/haxe/std/cs/internal/StringExt.hx" if (startIndex.hasValue) { #line 76 "/opt/haxe/std/cs/internal/StringExt.hx" int d = ((me.Length - sIndex) - str.Length); if ((d < 0)) { #line 78 "/opt/haxe/std/cs/internal/StringExt.hx" sIndex += d; } #line 81 "/opt/haxe/std/cs/internal/StringExt.hx" int i = (sIndex + 1); while ((i-- > 0)) { #line 83 "/opt/haxe/std/cs/internal/StringExt.hx" bool found = true; { #line 84 "/opt/haxe/std/cs/internal/StringExt.hx" int _g = 0; #line 84 "/opt/haxe/std/cs/internal/StringExt.hx" int _g1 = str.Length; #line 84 "/opt/haxe/std/cs/internal/StringExt.hx" while ((_g < _g1)) { #line 84 "/opt/haxe/std/cs/internal/StringExt.hx" int j = _g++; if ((me[(i + j)] != str[j])) { #line 86 "/opt/haxe/std/cs/internal/StringExt.hx" found = false; break; } } } #line 91 "/opt/haxe/std/cs/internal/StringExt.hx" if (found) { #line 92 "/opt/haxe/std/cs/internal/StringExt.hx" return(i); } } #line 95 "/opt/haxe/std/cs/internal/StringExt.hx" return(-1); } else { #line 97 "/opt/haxe/std/cs/internal/StringExt.hx" return(me.LastIndexOf(((string)(str)), ((int)(sIndex)), ((global::System.StringComparison)(global::System.StringComparison.Ordinal)))); } } #line default }