private static WhereCondition GenerateStatementNode(SelectSQLParser.WhereStmtContext whereStmt)
        {
            var andOr = whereStmt.AND_OR();
            var subWhereStmts = whereStmt.whereStmt();
            var whereCondition = whereStmt.whereCondition();

            if (whereCondition != null && !whereCondition.IsEmpty)   //普通单项where条件
                return GenerateConditionNode(whereCondition);

            if (subWhereStmts == null || subWhereStmts.Length<2)
                throw new MissingWhereConditionException();

            //父节点,非单项where条件
            var stmtNode = new WhereCondition(WhereConditionNodeType.Statement);

            var leftWhereStmt = subWhereStmts.First();
            var rightWhereStmt = subWhereStmts.Last();

            stmtNode.Statement_LeftNode = GenerateStatementNode(leftWhereStmt);
            stmtNode.Statement_Operator = andOr.GetText();
            stmtNode.Statement_RightNode = GenerateStatementNode(rightWhereStmt);

            return stmtNode;
        }
        public override void EnterWhereStmts(SelectSQLParser.WhereStmtsContext context)
        {
            var whereStmt = context.whereStmt();

            if (whereStmt == null || whereStmt.IsEmpty)
                throw new MissingWhereConditionException();

            this.SelectStmt.WhereCondition = GenerateStatementNode(whereStmt);
        }