private static State ParseAfterMember(Reader r, IList <ExpressionNode> nodes) { if (ParseMemberAccessor(r)) { return(State.BeforeMember); } else if (ParseStreamOperator(r)) { nodes.Add(new StreamNode()); return(State.AfterMember); } else { var args = ArgumentListParser.Parse(r, '[', ']'); if (args != null) { if (args.Count == 0) { throw new ExpressionParseException(r.Position, "Indexer may not be empty."); } nodes.Add(new IndexerNode(args)); return(State.AfterMember); } } return(State.End); }
private State ParseIndexer(Reader r, List <ExpressionNode> nodes) { var args = ArgumentListParser.Parse(r, '[', ']'); if (args.Count == 0) { throw new ExpressionParseException(r.Position, "Indexer may not be empty."); } nodes.Add(new IndexerNode(args)); return(State.AfterMember); }