protected static boolean isVarArgs(Arg arg) { if (arg.isVarArg()) { return true; } String t = arg.getValueType() + ""; return t.equals("va_list") || t.equals("__builtin_va_list") || t.equals("__gnuc_va_list"); } public void convertCallback(FunctionSignature functionSignature, Signatures signatures, DeclarationsHolder out, Identifier libraryClass) {
protected static boolean isVarArgs(Arg arg) { if (arg.isVarArg()) { return true; } String t = arg.getValueType() + ""; return t.equals("va_list") || t.equals("__builtin_va_list") || t.equals("__gnuc_va_list"); } public void convertCallback(FunctionSignature functionSignature, Signatures signatures, DeclarationsHolder out, Identifier libraryClass) {
@Override public void addDeclaration(Declaration d) { implementations.addDeclaration(d); if (d instanceof Function) { Function f = (Function) d; List<Arg> args = f.getArgs(); List<TypeRef> trs = new ArrayList<TypeRef>(2); trs.add(f.getValueType()); if (!args.isEmpty()) { trs.add(args.get(0).getValueType()); } for (TypeRef tr : trs) { if (tr instanceof SimpleTypeRef) { Identifier id = ((SimpleTypeRef) tr).getName(); if (result.isFakePointer(id)) { result.addFunctionReifiableInFakePointer(id, declarations.getResolvedJavaIdentifier(), f); } } } } }
@Override public void addDeclaration(Declaration d) { implementations.addDeclaration(d); if (d instanceof Function) { Function f = (Function) d; List<Arg> args = f.getArgs(); List<TypeRef> trs = new ArrayList<TypeRef>(2); trs.add(f.getValueType()); if (!args.isEmpty()) { trs.add(args.get(0).getValueType()); } for (TypeRef tr : trs) { if (tr instanceof SimpleTypeRef) { Identifier id = ((SimpleTypeRef) tr).getName(); if (result.isFakePointer(id)) { result.addFunctionReifiableInFakePointer(id, declarations.getResolvedJavaIdentifier(), f); } } } } }
String rt = getScalaType(f.getValueType()); for (Arg a : args) { String vt = getScalaType(a.getValueType()); String n = a.getName(); argTypes.add(vt);
String rt = getScalaType(f.getValueType()); for (Arg a : args) { String vt = getScalaType(a.getValueType()); String n = a.getName(); argTypes.add(vt);
public void visitArg(Arg e) { implode(e.getAnnotations(), "\n"); if (e.getValueType() != null) { if (e.getName() != null) { variableDeclarationToString(e.getValueType(), e.getName(), e.isVarArg()); if (e.getDefaultValue() != null) { append(" = ").append(e.getDefaultValue()); } } else { append(e.getValueType()).append(e.isVarArg() ? "..." : null); } } else { append("..."); } }
if (name == null && !isNamedFunctionType(arg.getValueType())) { missing.add(new Pair<Arg, Integer>(arg, i)); } else if (name != null) { } else { try { base = chooseArgNameFromType(p.getFirst().getValueType()); } catch (UnsupportedConversionException ex) { base = "arg";
if (name == null && !isNamedFunctionType(arg.getValueType())) { missing.add(new Pair<Arg, Integer>(arg, i)); } else if (name != null) { } else { try { base = chooseArgNameFromType(p.getFirst().getValueType()); } catch (UnsupportedConversionException ex) { base = "arg";
public TypeRef createMutatedType() { TypeRef vt = getValueType(); if (vt == null) return null; if (getDeclarator() != null) { MutableByDeclarator type = getDeclarator().mutateType(vt); if (type instanceof TypeRef) return (TypeRef)getDeclarator().mutateType(vt); else { assert false; return null; } } return vt; }
@Override public void visitArg(Arg arg) { Declarator d = arg.getDeclarator(); if (d == null) { TypeRef tr = arg.getValueType(); if (tr instanceof TypeRef.Pointer) { TypeRef target = ((TypeRef.Pointer)tr).getTarget(); if (target instanceof TypeRef.FunctionSignature) { TypeRef.FunctionSignature fs = (TypeRef.FunctionSignature) target; Identifier name = fs.getFunction() == null ? null : fs.getFunction().getName(); if (name != null) { arg.setDeclarator(new DirectDeclarator(name.toString())); fs.getFunction().setName(null); } } } } else if (!(d instanceof DirectDeclarator)) { MutableByDeclarator type = d.mutateType(arg.getValueType()); if (type instanceof TypeRef) { arg.setValueType((TypeRef) type); arg.setDeclarator(new DirectDeclarator(d.resolveName(), d.getBits(), arg.getDefaultValue())); } else { type = null; } } super.visitArg(arg); } private static final boolean mutateDeclaratorTypes = true;
@Override public void visitArg(Arg arg) { Declarator d = arg.getDeclarator(); if (d == null) { TypeRef tr = arg.getValueType(); if (tr instanceof TypeRef.Pointer) { TypeRef target = ((TypeRef.Pointer)tr).getTarget(); if (target instanceof TypeRef.FunctionSignature) { TypeRef.FunctionSignature fs = (TypeRef.FunctionSignature) target; Identifier name = fs.getFunction() == null ? null : fs.getFunction().getName(); if (name != null) { arg.setDeclarator(new DirectDeclarator(name.toString())); fs.getFunction().setName(null); } } } } else if (!(d instanceof DirectDeclarator)) { MutableByDeclarator type = d.mutateType(arg.getValueType()); if (type instanceof TypeRef) { arg.setValueType((TypeRef) type); arg.setDeclarator(new DirectDeclarator(d.resolveName(), d.getBits(), arg.getDefaultValue())); } else { type = null; } } super.visitArg(arg); } private static final boolean mutateDeclaratorTypes = true;
if (at == null && methodType != null) { if (iArg < methodType.getArgs().size()) { at = methodType.getArgs().get(iArg).getValueType(); } else { at = null;
if (at == null && methodType != null) { if (iArg < methodType.getArgs().size()) { at = methodType.getArgs().get(iArg).getValueType(); } else { at = null;
protected void collectParamComments(Function f) { for (Arg arg : f.getArgs()) { arg.moveAllCommentsBefore(); TypeRef argType = arg.getValueType(); if (argType != null) { if (!result.config.noComments) { argType.moveAllCommentsBefore(); arg.addToCommentBefore(argType.getCommentBefore()); } argType.stripDetails(); } if (arg.getCommentBefore() != null) { if (!result.config.noComments) { f.addToCommentBefore("@param " + arg.getName() + " " + Element.cleanComment(arg.getCommentBefore())); } arg.stripDetails(); } } }
protected void collectParamComments(Function f) { for (Arg arg : f.getArgs()) { arg.moveAllCommentsBefore(); TypeRef argType = arg.getValueType(); if (argType != null) { if (!result.config.noComments) { argType.moveAllCommentsBefore(); arg.addToCommentBefore(argType.getCommentBefore()); } argType.stripDetails(); } if (arg.getCommentBefore() != null) { if (!result.config.noComments) { f.addToCommentBefore("@param " + arg.getName() + " " + Element.cleanComment(arg.getCommentBefore())); } arg.stripDetails(); } } }
int iArg = 0; for (Arg arg : fDirect.getArgs()) { if (isFakePointerRef(result, arg.getValueType())) { if (iArg == 0 && arg.getValueType().toString().equals(thisFakePtrRefStr)) { thisLocation = iArg;
int iArg = 0; for (Arg arg : fDirect.getArgs()) { if (isFakePointerRef(result, arg.getValueType())) { if (iArg == 0 && arg.getValueType().toString().equals(thisFakePtrRefStr)) { thisLocation = iArg;
TypeRef tr = resolveTypeDef(arg.getValueType()); NodeType argNodeType = getNodeType(tr); Expression typeTest = null; argDeclExpr = arrowMethodCall(argExpr.clone(), "ToString"); argType = typeRef(v8Ident("Handle", v8Ident("String"))); argUsageExpr = cast(transformTypeForCast(arg.getValueType()), expr(UnaryOperator.Dereference, methodCall(ident("v8", "String", "AsciiValue"), methodCall(argExpr.clone(), Expression.MemberRefStyle.Dot, templateIdent(ident("As"), varRef(v8Ident("Object")))))); argType = new TypeRef.Pointer(typeRef(ident("char")), Declarator.PointerStyle.Pointer); argUsageExpr = cast(transformTypeForCast(arg.getValueType()), varRef(arg.getName())); break; case Boolean: argDeclExpr = arrowMethodCall(argExpr.clone(), "To" + t); argType = typeRef(v8Ident("Handle", v8Ident(t))); argUsageExpr = cast(arg.getValueType().clone(), arrowMethodCall(expr(UnaryOperator.Dereference, varRef(arg.getName())), "Value")); break; case VAList:
TypeRef tr = resolveTypeDef(arg.getValueType()); NodeType argNodeType = getNodeType(tr); Expression typeTest = null; argDeclExpr = arrowMethodCall(argExpr.clone(), "ToString"); argType = typeRef(v8Ident("Handle", v8Ident("String"))); argUsageExpr = cast(transformTypeForCast(arg.getValueType()), expr(UnaryOperator.Dereference, methodCall(ident("v8", "String", "AsciiValue"), methodCall(argExpr.clone(), Expression.MemberRefStyle.Dot, templateIdent(ident("As"), varRef(v8Ident("Object")))))); argType = new TypeRef.Pointer(typeRef(ident("char")), Declarator.PointerStyle.Pointer); argUsageExpr = cast(transformTypeForCast(arg.getValueType()), varRef(arg.getName())); break; case Boolean: argDeclExpr = arrowMethodCall(argExpr.clone(), "To" + t); argType = typeRef(v8Ident("Handle", v8Ident(t))); argUsageExpr = cast(arg.getValueType().clone(), arrowMethodCall(expr(UnaryOperator.Dereference, varRef(arg.getName())), "Value")); break; case VAList: