示例#1
0
        public override bool Get(TextBuffer text_buffer)
        {
            int start_index = text_buffer.CurrentIndex;
            int length      = 1;

            while (true)
            {
                char ch   = text_buffer.NextChar();
                char code = Tokenizer.GetCode(ch);
                if (code == Tokenizer.Letter || code == Tokenizer.Digit)
                {
                    ++length;
                }
                else
                {
                    break;
                }
            }
            string str = text_buffer.SubString(start_index, length);

            if (!ms_reserved_words.TryGetValue(str, out m_type))
            {
                m_type       = TokenType.IDENTIFIER;
                m_raw_string = str;
            }
            return(true);
        }
示例#2
0
        public override bool Get(TextBuffer text_buffer)
        {
            int start_index = text_buffer.CurrentIndex + 1;
            int length      = 0;

            while (true)
            {
                char ch = text_buffer.NextChar();
                if (text_buffer.Eof())
                {
                    break;
                }
                if (Tokenizer.GetCode(ch) == Tokenizer.Quote)
                {
                    break;
                }
                ++length;
            }
            m_raw_string = text_buffer.SubString(start_index, length);
            return(true);
        }
示例#3
0
        public override bool Get(TextBuffer text_buffer)
        {
            int start_index = text_buffer.CurrentIndex;
            int length      = 1;

            while (true)
            {
                char ch = text_buffer.NextChar();
                if (ch == '.' || Tokenizer.GetCode(ch) == Tokenizer.Digit)
                {
                    ++length;
                }
                else
                {
                    break;
                }
            }
            string str = text_buffer.SubString(start_index, length);

            m_value = FixPoint.Parse(str);
            return(true);
        }