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); }
public QueryBuilderQueryGenerator(QueryBuilderMappingMetadata metadata) { StartArg = null; PipelineOperators = new List <AlgebraOperator>(); this.metadata = metadata; }