Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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();
        }