public EXPRARRAYINDEX CreateArrayIndex(EXPR pArray, EXPR pIndex) { CType pType = pArray.type; if (pType != null && pType.IsArrayType()) { pType = pType.AsArrayType().GetElementType(); } else if (pType == null) { pType = GetTypes().GetReqPredefAgg(PredefinedType.PT_INT).getThisType(); } EXPRARRAYINDEX pResult = new EXPRARRAYINDEX(); pResult.kind = ExpressionKind.EK_ARRAYINDEX; pResult.type = pType; pResult.flags = 0; pResult.SetArray(pArray); pResult.SetIndex(pIndex); return(pResult); }
protected override EXPR VisitARRAYINDEX(EXPRARRAYINDEX pExpr) { Debug.Assert(pExpr != null); Debug.Assert(alwaysRewrite || currentAnonMeth != null); EXPR arr = Visit(pExpr.GetArray()); EXPR args = GenerateIndexList(pExpr.GetIndex()); if (args.isLIST()) { EXPR Params = GenerateParamsArray(args, PredefinedType.PT_EXPRESSION); return GenerateCall(PREDEFMETH.PM_EXPRESSION_ARRAYINDEX2, arr, Params); } return GenerateCall(PREDEFMETH.PM_EXPRESSION_ARRAYINDEX, arr, args); }
protected virtual EXPR VisitARRAYINDEX(EXPRARRAYINDEX pExpr) { return(VisitEXPR(pExpr)); }
protected virtual EXPR VisitARRAYINDEX(EXPRARRAYINDEX pExpr) { return VisitEXPR(pExpr); }
public EXPRARRAYINDEX CreateArrayIndex(EXPR pArray, EXPR pIndex) { CType pType = pArray.type; if (pType != null && pType.IsArrayType()) { pType = pType.AsArrayType().GetElementType(); } else if (pType == null) { pType = GetTypes().GetReqPredefAgg(PredefinedType.PT_INT).getThisType(); } EXPRARRAYINDEX pResult = new EXPRARRAYINDEX(); pResult.kind = ExpressionKind.EK_ARRAYINDEX; pResult.type = pType; pResult.flags = 0; pResult.SetArray(pArray); pResult.SetIndex(pIndex); return pResult; }