internal static Expression parseElementAccess(CsExpression pStatement, bool pForce, bool pGetSetter, FactoryExpressionCreator pCreator) { //expression "[" expression-list "]" CsElementAccess stat = (CsElementAccess)pStatement; List <CsExpression> l = new List <CsExpression>(); foreach (CsArgument csArgument in stat.argument_list.list) { l.Add(csArgument.expression); } return(getIndexerExpression(stat, l, pCreator.Parse(stat.expression), pForce, pGetSetter, pCreator)); }
public TheIndexer GetIndexer(CsExpression pIndexer) { CsBaseIndexerAccess csbia = pIndexer as CsBaseIndexerAccess; CsIndexer i; CsEntityProperty p; if (csbia != null) { p = (CsEntityProperty)csbia.entity; if (p == null) { return(null); } i = (CsIndexer)p.decl; if (i == null) { return(null); } return(_indexers.ContainsKey(i) ? _indexers[i] : null); } CsElementAccess csea = pIndexer as CsElementAccess; if (csea != null) { p = (CsEntityProperty)csea.entity; if (p == null) { return(null); } i = (CsIndexer)p.decl; if (i == null) { return(null); } return(_indexers.ContainsKey(i) ? _indexers[i] : null); } throw new NotImplementedException(); }