コード例 #1
0
ファイル: Lexer.cs プロジェクト: jojo253/Pixeval
        public TokenInfo?NextToken()
        {
            switch (_currentChar)
            {
            case char.MaxValue:
                return(null);

            case '@':
                var at = new TokenInfo(TokenKind.At, "@", _rawString.Forward..(_rawString.Forward + 1));
                _rawString.Advance();
                return(at);

            case '{':
                var lBrace = new TokenInfo(TokenKind.LBrace, "{", _rawString.Forward..(_rawString.Forward + 1));
                _rawString.Advance();
                return(lBrace);

            case '}':
                var rBrace = new TokenInfo(TokenKind.RBrace, "}", _rawString.Forward..(_rawString.Forward + 1));
                _rawString.Advance();
                return(rBrace);

            case ':':
                var colon = new TokenInfo(TokenKind.Colon, ":", _rawString.Forward..(_rawString.Forward + 1));
                _rawString.Advance();
                return(colon);

            default:
                return(PlainText());
            }
        }