public int countFieldsInStruct(Struct s) throws UnsupportedConversionException { int count = 0; for (Declaration declaration : s.getDeclarations()) { if (declaration instanceof VariablesDeclaration) { count += ((VariablesDeclaration) declaration).getDeclarators().size(); } } for (SimpleTypeRef parentName : s.getParents()) { Struct parent = result.structsByName.get(parentName.getName()); if (parent == null) { throw new UnsupportedConversionException(s, "Cannot find parent " + parentName + " of struct " + s); } count += countFieldsInStruct(parent); } return count; }
public int countFieldsInStruct(Struct s) throws UnsupportedConversionException { int count = 0; for (Declaration declaration : s.getDeclarations()) { if (declaration instanceof VariablesDeclaration) { count += ((VariablesDeclaration) declaration).getDeclarators().size(); } } for (SimpleTypeRef parentName : s.getParents()) { Struct parent = result.structsByName.get(parentName.getName()); if (parent == null) { throw new UnsupportedConversionException(s, "Cannot find parent " + parentName + " of struct " + s); } count += countFieldsInStruct(parent); } return count; }
public int countFieldsInStruct(Struct s) throws UnsupportedConversionException { int count = 0; for (Declaration declaration : s.getDeclarations()) { if (declaration instanceof VariablesDeclaration) { count += ((VariablesDeclaration) declaration).getDeclarators().size(); } } for (SimpleTypeRef parentName : s.getParents()) { Struct parent = result.structsByName.get(parentName.getName()); if (parent == null) { throw new UnsupportedConversionException(s, "Cannot find parent " + parentName + " of struct " + s); } count += countFieldsInStruct(parent); } return count; }
public int countFieldsInStruct(Struct s) throws UnsupportedConversionException { int count = 0; for (Declaration declaration : s.getDeclarations()) { if (declaration instanceof VariablesDeclaration) { count += ((VariablesDeclaration) declaration).getDeclarators().size(); } } for (SimpleTypeRef parentName : s.getParents()) { Struct parent = result.structsByName.get(parentName.getName()); if (parent == null) { throw new UnsupportedConversionException(s, "Cannot find parent " + parentName + " of struct " + s); } count += countFieldsInStruct(parent); } return count; }
public boolean isVirtual(Struct struct) { Identifier name = getActualTaggedTypeName(struct); Boolean bVirtual = structsVirtuality.get(name); if (bVirtual == null) { boolean hasVirtualParent = false, hasVirtualMembers = false; for (SimpleTypeRef parentName : struct.getParents()) { Struct parentStruct = result.structsByName.get(parentName.getName()); if (parentStruct == null) { if (result.config.verbose) { System.out.println("Failed to resolve parent '" + parentName + "' for struct '" + name + "'"); } continue; } if (isVirtual(parentStruct)) { hasVirtualParent = true; break; } } for (Declaration mb : struct.getDeclarations()) { if (mb.hasModifier(ModifierType.Virtual)) { hasVirtualMembers = true; break; } } bVirtual = hasVirtualMembers && !hasVirtualParent; structsVirtuality.put(name, bVirtual); } return bVirtual; } protected String ioVarName = "io", ioStaticVarName = "IO";
public boolean isVirtual(Struct struct) { Identifier name = getActualTaggedTypeName(struct); Boolean bVirtual = structsVirtuality.get(name); if (bVirtual == null) { boolean hasVirtualParent = false, hasVirtualMembers = false; for (SimpleTypeRef parentName : struct.getParents()) { Struct parentStruct = result.structsByName.get(parentName.getName()); if (parentStruct == null) { if (result.config.verbose) { System.out.println("Failed to resolve parent '" + parentName + "' for struct '" + name + "'"); } continue; } if (isVirtual(parentStruct)) { hasVirtualParent = true; break; } } for (Declaration mb : struct.getDeclarations()) { if (mb.hasModifier(ModifierType.Virtual)) { hasVirtualMembers = true; break; } } bVirtual = hasVirtualMembers && !hasVirtualParent; structsVirtuality.put(name, bVirtual); } return bVirtual; } protected String ioVarName = "io", ioStaticVarName = "IO";
for (Declaration d : struct.getDeclarations()) { if (d instanceof Function) { f = (Function) d;
for (Declaration d : structJavaClass.getDeclarations()) { if (!(d instanceof VariablesDeclaration)) { continue;
for (Declaration d : structJavaClass.getDeclarations()) { if (!(d instanceof VariablesDeclaration)) { continue;
for (Declaration d : structJavaClass.getDeclarations()) { if (!(d instanceof VariablesDeclaration)) { continue;
for (Declaration d : structJavaClass.getDeclarations()) { if (!(d instanceof VariablesDeclaration)) { continue;
protected void doVisitStruct(Struct struct) { visitTaggedTypeRef(struct); visit(struct.getDeclarations()); visit(struct.getProtocols()); visit(struct.getParents()); }
private void addAllocIfMissing(Struct in, String allocName) { Identifier n = in.getTag(); if (n.equals("NSObject") || n.equals("NSClass")) { return; } boolean hasAlloc = false; for (Declaration d : in.getDeclarations()) { if (d instanceof Function) { Function f = (Function) d; if (f.getArgs().isEmpty() && allocName.equals(f.getName())) { hasAlloc = true; break; } } } if (!hasAlloc) { in.addDeclaration(new Function(Function.Type.ObjCMethod, ident(allocName), typeRef(in.getTag())).addModifiers(ModifierType.Static)); } }
private void addAllocIfMissing(Struct in, String allocName) { Identifier n = in.getTag(); if (n.equals("NSObject") || n.equals("NSClass")) { return; } boolean hasAlloc = false; for (Declaration d : in.getDeclarations()) { if (d instanceof Function) { Function f = (Function) d; if (f.getArgs().isEmpty() && allocName.equals(f.getName())) { hasAlloc = true; break; } } } if (!hasAlloc) { in.addDeclaration(new Function(Function.Type.ObjCMethod, ident(allocName), typeRef(in.getTag())).addModifiers(ModifierType.Static)); } }
private void fixUnNamedChildren(Struct struct) { List<TaggedTypeRefDeclaration> trs = getUnnamedTaggedTypeRefs(struct.getDeclarations()); if (trs.isEmpty()) { return; } Set<Identifier> ids = listChildIdentifiers(struct); for (TaggedTypeRefDeclaration td : trs) { TaggedTypeRef tr = td.getTaggedTypeRef(); if (!(tr instanceof Struct)) { continue; } Struct s = (Struct) tr; switch (s.getType()) { case CStruct: case CUnion: String n = chooseNameSuffix(tr); int i = 1; Identifier fieldName; while (!ids.add(fieldName = ident("field" + i))) { i++; } //tr.setTag(idTag); td.replaceBy(new VariablesDeclaration(tr, new Declarator.DirectDeclarator(fieldName.toString()))); break; } } }
private void fixUnNamedChildren(Struct struct) { List<TaggedTypeRefDeclaration> trs = getUnnamedTaggedTypeRefs(struct.getDeclarations()); if (trs.isEmpty()) { return; } Set<Identifier> ids = listChildIdentifiers(struct); for (TaggedTypeRefDeclaration td : trs) { TaggedTypeRef tr = td.getTaggedTypeRef(); if (!(tr instanceof Struct)) { continue; } Struct s = (Struct) tr; switch (s.getType()) { case CStruct: case CUnion: String n = chooseNameSuffix(tr); int i = 1; Identifier fieldName; while (!ids.add(fieldName = ident("field" + i))) { i++; } //tr.setTag(idTag); td.replaceBy(new VariablesDeclaration(tr, new Declarator.DirectDeclarator(fieldName.toString()))); break; } } }
implode(e.getBody().getDeclarations(), "\n" + indent); append("\n");
public void visitEnumItem(EnumItem e) { formatComments(e, false, true, true); append(e.getName()); if (!e.getArguments().isEmpty()) { if (e.getType() == Type.C) { append(" = ", e.getArguments().get(0)); } else { append("("); implode(e.getArguments(), ", "); append(")"); } } if (e.getBody() != null) { append(" {\n\t", indent); indent(); implode(e.getBody().getDeclarations(), "\n" + indent); deindent(); append("\n", indent, "}"); } space(e.getCommentAfter() != null).append(e.getCommentAfter()); }
for (Declaration d : callbackStruct.getDeclarations()) { if (d instanceof Function) { callbackStruct.addAnnotations(callbackStruct.getAnnotations());
for (Declaration d : callbackStruct.getDeclarations()) { if (d instanceof Function) { callbackStruct.addAnnotations(callbackStruct.getAnnotations());