Dev2.Common.Dev2TokenOp.IsMultiTokenMatch C# (CSharp) Method

IsMultiTokenMatch() private method

private IsMultiTokenMatch ( char canidate, int fromIndex, bool isReversed ) : bool
canidate char
fromIndex int
isReversed bool
return bool
        private bool IsMultiTokenMatch(char[] canidate, int fromIndex, bool isReversed)
        {
            bool result = true;

            int cnt = 0;
            int canidateIdx = fromIndex;

            if (isReversed)
            {
                cnt = _tokenParts.Length - 1;
            }

            if ((canidateIdx - (_tokenParts.Length - 1)) >= 0 && isReversed || !isReversed)
            {
                while (cnt < _tokenParts.Length && cnt >= 0 && canidateIdx >= 0 && canidateIdx < canidate.Length && result)
                {
                    if (canidate[canidateIdx] != _tokenParts[cnt])
                    {
                        result = false;
                    }
                    if (!isReversed)
                    {
                        canidateIdx++;
                        cnt++;
                    }
                    else
                    {
                        canidateIdx--;
                        cnt--;
                    }
                }
            }
            else
            {
                result = false; // no way we can match, not enough chars ;)
            }

            return result;
        }