/// <summary> /// In memory implementation of <see cref="ExecuteQuerySegmentedAsync{T}(TableQuery{T}, TableContinuationToken)"/> /// </summary> public override Task <TableQuerySegment <T> > ExecuteQuerySegmentedAsync <T>(TableQuery <T> query, TableContinuationToken token) { var inputStream = new AntlrInputStream(query.FilterString); var lexer = new QueryFilterLexer(inputStream); var commonTokenStream = new CommonTokenStream(lexer); var parser = new QueryFilterParser(commonTokenStream); var queryContext = parser.query(); var resultNode = new QueryFilterVisitor().Visit(queryContext) as InfixExpressionNode; var astVisitor = new AstVisitor <T>(); var result = astVisitor.VisitInfix(resultNode, _table); var resultList = new List <T>(); foreach (var key in result.Keys) { resultList.AddRange(result[key].Select(kvp => kvp.Value).Cast <T>().ToList()); } var resultSegment = TableQueryFactory.Construct(resultList); return(Task.FromResult(TableQueryFactory.Construct(resultSegment))); }