Ejemplo n.º 1
0
    // Token: 0x06004A2B RID: 18987 RVA: 0x0011DDC4 File Offset: 0x0011BFC4
    public bool MatchSymbol(string text, int offset, int textLength, out global::BMSymbol symbol)
    {
        int count = this.mSymbols.Count;

        if (count > 0)
        {
            textLength -= offset;
            if (textLength > 0)
            {
                for (int i = 0; i < count; i++)
                {
                    global::BMSymbol bmsymbol = this.mSymbols[i];
                    int length = bmsymbol.sequence.Length;
                    if (length != 0 && textLength >= length)
                    {
                        if (string.Compare(bmsymbol.sequence, 0, text, offset, length) == 0)
                        {
                            symbol = bmsymbol;
                            if (length < textLength && ++i < count)
                            {
                                int num = length;
                                do
                                {
                                    bmsymbol = this.mSymbols[i];
                                    length   = bmsymbol.sequence.Length;
                                    if (textLength >= length && length > num)
                                    {
                                        if (string.Compare(bmsymbol.sequence, 0, text, offset, length) == 0)
                                        {
                                            num    = length;
                                            symbol = bmsymbol;
                                        }
                                    }
                                }while (++i < count);
                            }
                            return(true);
                        }
                    }
                }
            }
        }
        symbol = null;
        return(false);
    }
Ejemplo n.º 2
0
    // Token: 0x06004A2A RID: 18986 RVA: 0x0011DD54 File Offset: 0x0011BF54
    public global::BMSymbol GetSymbol(string sequence, bool createIfMissing)
    {
        int i     = 0;
        int count = this.mSymbols.Count;

        while (i < count)
        {
            global::BMSymbol bmsymbol = this.mSymbols[i];
            if (bmsymbol.sequence == sequence)
            {
                return(bmsymbol);
            }
            i++;
        }
        if (createIfMissing)
        {
            global::BMSymbol bmsymbol2 = new global::BMSymbol();
            bmsymbol2.sequence = sequence;
            this.mSymbols.Add(bmsymbol2);
            return(bmsymbol2);
        }
        return(null);
    }