Filter() private method

private Filter ( char ch ) : char
ch char
return char
Ejemplo n.º 1
0
        // match a Dfa agsint a given string
        public int Match(string str, int ix, ref int action)
        {         // return number of chars matched
            int r   = 0;
            Dfa dfa = null;

            // if there is no arc or the string is exhausted, this is okay at a terminal
            if (ix >= str.Length ||
                (dfa = ((Dfa)m_map[m_tokens.Filter(str[ix])])) == null ||
                (r = dfa.Match(str, ix + 1, ref action)) < 0)
            {
                if (m_actions != null)
                {
                    action = m_actions.a_act;
                    return(0);
                }
                return(-1);
            }
            return(r + 1);
        }