コード例 #1
0
        private void lexKeyWord()
        {
            int offset = reader.offset() - 1;

            StringBuilder buf = new StringBuilder();

            while (true)
            {
                int c = reader.read();
                if (c < 0)
                {
                    //tok = TokenType.EOS;
                    break;
                }
                if (!Util.isIdentifierPart((char)c))
                {
                    reader.unread();
                    break;
                }
                buf.Append((char)c);
            }
            String s     = buf.ToString();
            var    value = s;

            if (keyWordRuleDic.ContainsKey(s))
            {
                tok = TokenType.Keyword;
                var elem = keyWordRuleDic[s];
                elem.startIndex = offset;
                elem.len        = value.Length;
                resultRule      = elem;
            }
        }