public Expression getFlatArraySizeExpression(TypeRef.Pointer.ArrayRef arrayRef, Identifier callerLibraryName) throws UnsupportedConversionException { Expression mul = null; List<Expression> dims = arrayRef.flattenDimensions(); for (int i = dims.size(); i-- != 0;) { Expression x = dims.get(i); if (x == null || x instanceof Expression.EmptyArraySize) { return null; //javaType = jr = new ArrayRef(typeRef(Pointer.class)); //break; } else { Pair<Expression, TypeRef> c = convertExpressionToJava(x, callerLibraryName, false, true, null); c.getFirst().setParenthesis(dims.size() > 1); if (mul == null) { mul = c.getFirst(); } else { mul = expr(c.getFirst(), Expression.BinaryOperator.Multiply, mul); } } } return mul; }
public Expression getFlatArraySizeExpression(TypeRef.Pointer.ArrayRef arrayRef, Identifier callerLibraryName) throws UnsupportedConversionException { Expression mul = null; List<Expression> dims = arrayRef.flattenDimensions(); for (int i = dims.size(); i-- != 0;) { Expression x = dims.get(i); if (x == null || x instanceof Expression.EmptyArraySize) { return null; //javaType = jr = new ArrayRef(typeRef(Pointer.class)); //break; } else { Pair<Expression, TypeRef> c = convertExpressionToJava(x, callerLibraryName, false, true, null); c.getFirst().setParenthesis(dims.size() > 1); if (mul == null) { mul = c.getFirst(); } else { mul = expr(c.getFirst(), Expression.BinaryOperator.Multiply, mul); } } } return mul; }
if (x instanceof Expression.Cast) { TypeRef tpe = ((Expression.Cast) x).getType(); Pair<Expression, TypeRef> casted = convertExpressionToJava(((Expression.Cast) x).getTarget(), libraryClassName, promoteNativeLongToLong, forceConstants, mappings);
if (x instanceof Expression.Cast) { TypeRef tpe = ((Expression.Cast) x).getType(); Pair<Expression, TypeRef> casted = convertExpressionToJava(((Expression.Cast) x).getTarget(), libraryClassName, promoteNativeLongToLong, forceConstants, mappings);
Expression m = convertExpressionToJava(dim, libraryClassName, false, true, null).getFirst(); m.setParenthesis(false); sizes.add(m);
Expression m = convertExpressionToJava(dim, libraryClassName, false, true, null).getFirst(); m.setParenthesis(false); sizes.add(m);
Expression c = convertExpressionToJava(x, libraryClassName, false, true, null).getFirst(); res = expr(res, Expression.BinaryOperator.Multiply, c);
Expression c = convertExpressionToJava(x, libraryClassName, false, true, null).getFirst(); res = expr(res, Expression.BinaryOperator.Multiply, c);