Exemplo n.º 1
0
        public static QueryGenerator ParseQuery(string query, QueryBuilderMappingMetadata metadata)
        {
            ICharStream  queryStream = CharStreams.fromstring(query);
            ITokenSource queryLexer  = new QueryBuilderQueriesLexer(queryStream);
            ITokenStream queryTokens = new CommonTokenStream(queryLexer);
            QueryBuilderQueriesParser queryParser = new QueryBuilderQueriesParser(queryTokens);

            queryParser.BuildParseTree = true;

            IParseTree tree = queryParser.query();

            QueryBuilderQueryGenerator generator = new QueryBuilderQueryGenerator(metadata);

            ParseTreeWalker.Default.Walk(generator, tree);

            QueryGenerator queryGen = new QueryGenerator(generator.StartArg, generator.PipelineOperators);

            queryGen.SetStartMap(metadata.ERMongoMapping);

            return(queryGen);
        }
Exemplo n.º 2
0
 public QueryBuilderQueryGenerator(QueryBuilderMappingMetadata metadata)
 {
     StartArg          = null;
     PipelineOperators = new List <AlgebraOperator>();
     this.metadata     = metadata;
 }