コード例 #1
0
        private static int CompareElementAccessExpression(IElementAccessExpression left, IElementAccessExpression right)
        {
            // Standard left,right and null checks
            if (left == null && right == null)
            {
                return(0);
            }
            if (left == null)
            {
                return(1);
            }
            if (right == null)
            {
                return(-1);
            }

            var result = CompareExpression(left.Expression, right.Expression);

            if (result != 0)
            {
                return(result);
            }

            return(CompareExpression(left.ArgumentExpression, right.ArgumentExpression));
        }
コード例 #2
0
 public override IAssignableExpression VisitElementAccessExpression(IElementAccessExpression expr,
                                                                    IList <IStatement> body)
 {
     return(new IndexAccessExpression
     {
         Reference = ToVariableRef(expr.Operand, body),
         Indices = GetArgumentList(expr.ArgumentList, body)
     });
 }
コード例 #3
0
 public ElementAccessCompiler(IElementAccessExpression elementAccessExpression, AbstractILCompilerParams @params) : base(@params)
 {
     myElementAccessExpression = elementAccessExpression;
 }