public ConditionCompiler(string expression)
        {
            var input   = new AntlrInputStream(expression);
            var lexer   = new QueryLanguageLexer(input);
            var tokens  = new CommonTokenStream(lexer);
            var parser  = new QueryLanguageParser(tokens);
            var visitor = new LogicalExpressionVisitor();

            _condition = visitor.Visit(parser.condition().LogicalExpression);
        }
Esempio n. 2
0
        public List <string> GetQueries(string query)
        {
            var input  = new AntlrInputStream(query);
            var lexer  = new QueryLanguageLexer(input);
            var tokens = new CommonTokenStream(lexer);
            var parser = new QueryLanguageParser(tokens);

            IParseTree tree = parser.queryChain();

            var walker   = new ParseTreeWalker();
            var listener = new QueryLanguageSepartionListener();

            walker.Walk(listener, tree);
            return(listener.QueryList);
        }
Esempio n. 3
0
        public ConditionCompiler(string expression)
        {
            var input   = new AntlrInputStream(expression);
            var lexer   = new QueryLanguageLexer(input);
            var tokens  = new CommonTokenStream(lexer);
            var parser  = new QueryLanguageParser(tokens);
            var visitor = new LogicalExpressionVisitor();

            OriginalExpression = expression;
            Expression         = visitor.Visit(parser.condition().LogicalExpression);
            if (Expression == null)
            {
                throw new ArgumentException($"Given expression '{expression}' cannot be parsed.");
            }
        }
Esempio n. 4
0
        public SingleQuery Parse(string query)
        {
            var input  = new AntlrInputStream(query);
            var lexer  = new QueryLanguageLexer(input);
            var tokens = new CommonTokenStream(lexer);
            var parser = new QueryLanguageParser(tokens);

            IParseTree tree = parser.query();

            var walker   = new ParseTreeWalker();
            var listener = new QueryLanguageListener();

            walker.Walk(listener, tree);
            return(listener.RootQuery);
        }