public override void EnterSqlStatement([NotNull] MySqlParser.SqlStatementContext context)
 {
     base.EnterSqlStatement(context);
     IsAdministrationStatement = context.administrationStatement() != null;
     IsDmlStatement            = context.dmlStatement() != null;
     IsDdlStatement            = context.ddlStatement() != null;
     IsPreparedStatement       = context.preparedStatement() != null;
     IsReplicationStatement    = context.replicationStatement() != null;
     IsTransactionStatement    = context.transactionStatement() != null;
     IsUtilityStatement        = context.utilityStatement() != null;
 }
示例#2
0
        public void Parse(string query, IParseTreeListener[] listeners)
        {
            ICharStream stream = CharStreams.fromstring(query);

            stream = new ToUpperStream(stream);
            ITokenSource lexer  = new MySqlLexer(stream);
            ITokenStream tokens = new CommonTokenStream(lexer);
            var          parser = new MySqlParser(tokens)
            {
                BuildParseTree = true,
            };

            // both is possible, let's detect every type of sql
            this.context = parser.sqlStatement();
            //var statement = parser.dmlStatement();
            //var statement = parser.selectStatement();

            // listener pattern
            RegisterListener(listeners);
        }