Example #1
0
        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))));
                }
            }
        }
Example #2
0
        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
        }
Example #3
0
        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
        }