Esempio n. 1
0
        private string _Collect(CharacterClass expect, char ch)
        {
            CharacterBuffer buf = new CharacterBuffer(ch);

            while (true)
            {
                int cur = _reader.Peek();
                if (cur == -1)
                {
                    break;
                }
                ch = (char)cur;
                CharacterClass cc = _settings.Classifier [ch];
                if ((cc & expect) == 0)
                {
                    break;
                }
                buf.Write((char)_reader.Read());
            }
            return(buf.ToString());
        }
Esempio n. 2
0
        private string _CollectUntil(char[] stop, char[] disallowed)
        {
            CharacterBuffer buf = new CharacterBuffer();

            while (true)
            {
                int cur = _reader.Read();
                if (cur == -1)
                {
                    throw new IOException();
                }
                char ch = (char)cur;
                if (Array.IndexOf(stop, ch) >= 0)
                {
                    break;
                }
                if (Array.IndexOf(disallowed, ch) >= 0)
                {
                    throw new ApplicationException();
                }
                buf.Write(ch);
            }
            return(buf.ToString());
        }