SimpleTypeRef parentRef = findStructRef((Struct) parent, null); if (parentRef != null) { parentIdent = parentRef.getName(); break;
arg = new Arg((n!=null?n.getText():null), new SimpleTypeRef((t!=null?t.getText():null))); addTypeIdent((n!=null?n.getText():null));
private void parseEnums(Node signatures, SourceFile sf) { for (Node en : XMLUtils.getChildrenByName(signatures, "enum")) { String name = XMLUtils.getAttribute(en, "name"); String value = XMLUtils.getAttribute(en, "value"); if (value != null) { try { try { int i = value.matches(".*?\\.0+$") ? value.lastIndexOf('.') : -1; String v = i > 0 ? value.substring(0, i) : value; sf.addDeclaration(new VariablesDeclaration(typeRef("int").addModifiers(ModifierType.Const), new DirectDeclarator(name, expr(Integer.parseInt(v))))); } catch (NumberFormatException fex) { sf.addDeclaration(new VariablesDeclaration(typeRef("double").addModifiers(ModifierType.Const), new DirectDeclarator(name, expr(Double.parseDouble(value))))); } } catch (Exception ex) { System.err.println("Parsing of enum " + name + " with value '" + value + "' failed : " + ex); } } } }
holderStruct.addDeclaration(vd); Function pointerConstructor = new Function(Function.Type.JavaMethod, instTypeName, null, new Arg("pointer", new TypeRef.SimpleTypeRef(result.config.runtime.pointerClass.getName()))); hasOffset = false; pointerConstructor.setBody(new Statement.Block( instType = new TypeRef.SimpleTypeRef(instTypeName); struct.addDeclaration(decl(holderStruct));
List<String> preComments = new ArrayList<String>(); for (SimpleTypeRef parentName : struct.getParents()) { Struct parent = result.structsByName.get(parentName.getName()); if (parent == null) {
parent.replaceBy(null); } else { TypeRef tr = new TypeRef.SimpleTypeRef(taggedTypeRef.getTag().clone()); for (Modifier mod : taggedTypeRef.getModifiers()) { if (mod.isA(ModifierKind.StorageClassSpecifier)) {
parent.replaceBy(null); } else { TypeRef tr = new TypeRef.SimpleTypeRef(taggedTypeRef.getTag().clone()); for (Modifier mod : taggedTypeRef.getModifiers()) { if (mod.isA(ModifierKind.StorageClassSpecifier)) {
holderStruct.addDeclaration(vd); Function pointerConstructor = new Function(Function.Type.JavaMethod, instTypeName, null, new Arg("pointer", new TypeRef.SimpleTypeRef(result.config.runtime.pointerClass.getName()))); hasOffset = false; pointerConstructor.setBody(new Statement.Block( instType = new TypeRef.SimpleTypeRef(instTypeName); struct.addDeclaration(decl(holderStruct));
if (!struct.getParents().isEmpty()) { for (SimpleTypeRef parentName : struct.getParents()) { Struct parent = result.structsByName.get(parentName.getName()); if (parent == null) {
if (!struct.getParents().isEmpty()) { for (SimpleTypeRef parentName : struct.getParents()) { Struct parent = result.structsByName.get(parentName.getName()); if (parent == null) {
type = new SimpleTypeRef((i!=null?i.getText():null));
if (tr instanceof TypeRef.SimpleTypeRef) { TypeRef.SimpleTypeRef str = (TypeRef.SimpleTypeRef) tr; Identifier name = str.getName(); if (name != null) { if (result.enumItemsFullName.contains(name)) {
if (tr instanceof TypeRef.SimpleTypeRef) { TypeRef.SimpleTypeRef str = (TypeRef.SimpleTypeRef) tr; Identifier name = str.getName(); if (name != null) { if (result.enumItemsFullName.contains(name)) {
public void reifyFakePointer(Struct ptClass, Identifier fullLibraryClassName, String fakePointerName, Signatures signatures) { Identifier resolvedFakePointer = result.getFakePointer(fullLibraryClassName, ident(fakePointerName)); List<Pair<Identifier, Function>> functionsReifiableInFakePointers = result.getFunctionsReifiableInFakePointer(resolvedFakePointer); String thisFakePtrRefStr = typeRef(resolvedFakePointer).toString();
conv.type = ConvType.Pointer; conv.isTypedPointer = true; conv.typeRef = typeRef(result.getFakePointer(libraryClassName, ((TypeRef.SimpleTypeRef) original).getName().clone())); if (structIOExpr != null) { if (conv.arrayLengths == null) { Identifier name = ((TypeRef.SimpleTypeRef) valueType).getName(); if (name != null) { conv.type = ConvType.Pointer;
Identifier name = ((TypeRef.SimpleTypeRef) simpleTypeRef).getName(); if (name == null) { return; if (simpleTypeRef.isMarkedAsResolved()) { return; simpleTypeRef.replaceBy(t); return; simpleTypeRef.replaceBy(resolveTypeDef(new TypeRef.SimpleTypeRef(fieldName), libraryClassName, true /*convertToJavaRef*/, convertEnumToJavaRef, typeDefsEncountered)); return; simpleTypeRef.replaceBy(typeRef(result.getFakePointer(libraryClassName, name))); } else { simpleTypeRef.replaceBy(resolveTypeDef(tr.clone(), libraryClassName, convertToJavaRef, convertEnumToJavaRef, typeDefsEncountered)); simpleTypeRef.replaceBy(typeRef(int.class)); return; String strs = simpleTypeRef.toString(); String trs = tr == null ? null : tr.toString(); if (trs != null && !strs.equals(trs)) { TypeRef clo = tr.clone(); simpleTypeRef.replaceBy(clo); if (depth < 30) { clo.accept(this);
conv.type = ConvType.Pointer; conv.isTypedPointer = true; conv.typeRef = typeRef(result.getFakePointer(libraryClassName, ((TypeRef.SimpleTypeRef) original).getName().clone())); if (structIOExpr != null) { if (conv.arrayLengths == null) { Identifier name = ((TypeRef.SimpleTypeRef) valueType).getName(); if (name != null) { conv.type = ConvType.Pointer;
Identifier name = ((TypeRef.SimpleTypeRef) simpleTypeRef).getName(); if (name == null) { return; if (simpleTypeRef.isMarkedAsResolved()) { return; simpleTypeRef.replaceBy(t); return; simpleTypeRef.replaceBy(resolveTypeDef(new TypeRef.SimpleTypeRef(fieldName), libraryClassName, true /*convertToJavaRef*/, convertEnumToJavaRef, typeDefsEncountered)); return; simpleTypeRef.replaceBy(typeRef(result.getFakePointer(libraryClassName, name))); } else { simpleTypeRef.replaceBy(resolveTypeDef(tr.clone(), libraryClassName, convertToJavaRef, convertEnumToJavaRef, typeDefsEncountered)); simpleTypeRef.replaceBy(typeRef(int.class)); return; String strs = simpleTypeRef.toString(); String trs = tr == null ? null : tr.toString(); if (trs != null && !strs.equals(trs)) { TypeRef clo = tr.clone(); simpleTypeRef.replaceBy(clo); if (depth < 30) { clo.accept(this);
public void reifyFakePointer(Struct ptClass, Identifier fullLibraryClassName, String fakePointerName, Signatures signatures) { Identifier resolvedFakePointer = result.getFakePointer(fullLibraryClassName, ident(fakePointerName)); List<Pair<Identifier, Function>> functionsReifiableInFakePointers = result.getFunctionsReifiableInFakePointer(resolvedFakePointer); String thisFakePtrRefStr = typeRef(resolvedFakePointer).toString();