コード例 #1
0
ファイル: CmsqlLexerTest.cs プロジェクト: rbaarda/Cmsql
        public void Test_can_tokenize_query_with_two_parenthesized_expressions()
        {
            CmsqlLexer lexer = CreateLexerForQuery(
                "select foo from start where (foo = 'bar' and bar = 'foo') or (bla = 'test' and test = 'bla')");
            IEnumerable <int> tokens = GetTokensAsList(lexer);

            tokens.ShouldAllBeEquivalentTo(
                GetTokensAsList(
                    CmsqlLexer.SELECT,
                    CmsqlLexer.IDENTIFIER,
                    CmsqlLexer.FROM,
                    CmsqlLexer.START,
                    CmsqlLexer.WHERE,
                    CmsqlLexer.LPAREN,
                    CmsqlLexer.IDENTIFIER,
                    CmsqlLexer.EQUALS,
                    CmsqlLexer.LITERAL,
                    CmsqlLexer.AND,
                    CmsqlLexer.IDENTIFIER,
                    CmsqlLexer.EQUALS,
                    CmsqlLexer.LITERAL,
                    CmsqlLexer.RPAREN,
                    CmsqlLexer.OR,
                    CmsqlLexer.LPAREN,
                    CmsqlLexer.IDENTIFIER,
                    CmsqlLexer.EQUALS,
                    CmsqlLexer.LITERAL,
                    CmsqlLexer.AND,
                    CmsqlLexer.IDENTIFIER,
                    CmsqlLexer.EQUALS,
                    CmsqlLexer.LITERAL,
                    CmsqlLexer.RPAREN));
        }
コード例 #2
0
ファイル: CmsqlLexerTest.cs プロジェクト: rbaarda/Cmsql
        public void Test_can_tokenize_start_query()
        {
            CmsqlLexer        lexer  = CreateLexerForQuery("select foo from start");
            IEnumerable <int> tokens = GetTokensAsList(lexer);

            tokens.ShouldAllBeEquivalentTo(
                GetTokensAsList(
                    CmsqlLexer.SELECT,
                    CmsqlLexer.IDENTIFIER,
                    CmsqlLexer.FROM,
                    CmsqlLexer.START));
        }
コード例 #3
0
ファイル: CmsqlLexerTest.cs プロジェクト: rbaarda/Cmsql
        private IEnumerable <int> GetTokensAsList(CmsqlLexer lexer)
        {
            LinkedList <int> tokens = new LinkedList <int>();

            IToken token = lexer.NextToken();

            while (token.Type != -1)
            {
                tokens.AddLast(token.Type);
                token = lexer.NextToken();
            }
            return(tokens);
        }
コード例 #4
0
ファイル: CmsqlLexerTest.cs プロジェクト: rbaarda/Cmsql
        public void Test_can_tokenize_query_with_invalid_type_identifier()
        {
            CmsqlLexer lexer = CreateLexerForQuery(
                "select foo-bar from start");
            IEnumerable <int> tokens = GetTokensAsList(lexer);

            tokens.ShouldAllBeEquivalentTo(
                GetTokensAsList(
                    CmsqlLexer.SELECT,
                    CmsqlLexer.IDENTIFIER,
                    CmsqlLexer.ERRORCHAR,
                    CmsqlLexer.IDENTIFIER,
                    CmsqlLexer.FROM,
                    CmsqlLexer.START));
        }
コード例 #5
0
ファイル: CmsqlLexerTest.cs プロジェクト: rbaarda/Cmsql
        public void Test_can_tokenize_query_with_single_not_equals_condition()
        {
            CmsqlLexer        lexer  = CreateLexerForQuery("select foo from start where foo != 'bar'");
            IEnumerable <int> tokens = GetTokensAsList(lexer);

            tokens.ShouldAllBeEquivalentTo(
                GetTokensAsList(
                    CmsqlLexer.SELECT,
                    CmsqlLexer.IDENTIFIER,
                    CmsqlLexer.FROM,
                    CmsqlLexer.START,
                    CmsqlLexer.WHERE,
                    CmsqlLexer.IDENTIFIER,
                    CmsqlLexer.NOTEQUALS,
                    CmsqlLexer.LITERAL));
        }
コード例 #6
0
ファイル: CmsqlLexerTest.cs プロジェクト: rbaarda/Cmsql
        public void Test_can_tokenize_two_queries_separated_by_terminator()
        {
            CmsqlLexer        lexer  = CreateLexerForQuery("select foo from start; select bar from root");
            IEnumerable <int> tokens = GetTokensAsList(lexer);

            tokens.ShouldAllBeEquivalentTo(
                GetTokensAsList(
                    CmsqlLexer.SELECT,
                    CmsqlLexer.IDENTIFIER,
                    CmsqlLexer.FROM,
                    CmsqlLexer.START,
                    CmsqlLexer.TERMINATOR,
                    CmsqlLexer.SELECT,
                    CmsqlLexer.IDENTIFIER,
                    CmsqlLexer.FROM,
                    CmsqlLexer.ROOT));
        }