public static List<SimpleIdentifier> getClassSimpleIdentifiers(String className) { List<SimpleIdentifier> elts = new ArrayList<SimpleIdentifier>(); for (String s : className.split("[.$]")) { if (s.length() > 0) { elts.add(new SimpleIdentifier(s)); } } return elts; }
public static Identifier ident(QualificationSeparator separator, String... components) { if (components == null) { return null; } List<SimpleIdentifier> list = new ArrayList<SimpleIdentifier>(); for (String o : components) { if (o != null && (o = o.trim()).length() > 0) { for (String elt : o.split("\\.|::")) { list.add(new SimpleIdentifier(elt)); } } } if (list.isEmpty()) { return null; } if (list.size() == 1) { return list.get(0); } QualifiedIdentifier id = new QualifiedIdentifier(separator); id.setIdentifiers(list); return id; }
Expression vr = varRef(new SimpleIdentifier(decl.resolveName())); Statement deleteStat = stat(methodCall(expr(typeRef(BridJ.class)), "delete", referenced ? methodCall(vr, "get") : vr)); deleteStat.setCommentAfter("// object would end up being deleted by the GC later, but in C++ it would be deleted here.");
namespace.setName(new SimpleIdentifier((ns!=null?ns.getText():null)));
name = new SimpleIdentifier(stoName); Function f = SyntaxUtils.as(arg.getParentElement(), Function.class); if (f != null) { name = new SimpleIdentifier(f.getName() + "_" + arg.getName()); break; name = new SimpleIdentifier("callback");
expr.setFunction(new VariableRef(new SimpleIdentifier((methodName!=null?methodName.getText():null)))); expr.setTarget(target); expr.setMemberRefStyle(MemberRefStyle.SquareBrackets);
name = new SimpleIdentifier(stoName); Function f = SyntaxUtils.as(arg.getParentElement(), Function.class); if (f != null) { name = new SimpleIdentifier(f.getName() + "_" + arg.getName()); break; name = new SimpleIdentifier("callback");
if ( state.backtracking==0 ) { identifier = new SimpleIdentifier((i!=null?i.getText():null)); }
declarations.add(decl(Struct.forwardDecl(new SimpleIdentifier((n1!=null?n1.getText():null)), Struct.Type.ObjCClass))); defineTypeIdentifierInParentScope((n1!=null?n1.getText():null)); declarations.add(decl(Struct.forwardDecl(new SimpleIdentifier((nx!=null?nx.getText():null)), Struct.Type.ObjCClass))); defineTypeIdentifierInParentScope((nx!=null?nx.getText():null));
Expression vr = varRef(new SimpleIdentifier(decl.resolveName())); Statement deleteStat = stat(methodCall(expr(typeRef(BridJ.class)), "delete", referenced ? methodCall(vr, "get") : vr)); deleteStat.setCommentAfter("// object would end up being deleted by the GC later, but in C++ it would be deleted here.");
if (mutatedType instanceof Function) { Function f = (Function) mutatedType; f.setName(new SimpleIdentifier(vs.resolveName())); decl = (Function) mutatedType; decl.importDetails(v, false);
if (mutatedType instanceof Function) { Function f = (Function) mutatedType; f.setName(new SimpleIdentifier(vs.resolveName())); decl = (Function) mutatedType; decl.importDetails(v, false);
public Identifier getActualTaggedTypeName(TaggedTypeRef struct) { Identifier structName = null; Identifier tag = struct.getTag(); if (tag == null || tag.isPlain() && tag.toString().startsWith("_")) { TypeDef parentDef = as(struct.getParentElement(), TypeDef.class); if (parentDef != null) { structName = new Identifier.SimpleIdentifier(JNAeratorUtils.findBestPlainStorageName(parentDef)); } else if (tag != null) { String better = tag.toString().substring(1); Pair<TypeDef, Declarator> pair = result.typeDefs.get(better); if (pair != null && pair.getFirst().getValueType() != null && pair.getSecond() instanceof DirectDeclarator) { TypeRef tr = pair.getFirst().getValueType(); DirectDeclarator dd = (DirectDeclarator) pair.getSecond(); if (tr instanceof SimpleTypeRef) { if (tag.equals(((SimpleTypeRef) tr).getName())) { structName = ident(dd.resolveName()); } } else if (tr instanceof TaggedTypeRef) { if (tag.equals(((TaggedTypeRef) tr).getTag())) { structName = ident(dd.resolveName()); } } } } } if (structName == null || structName.toString().equals("")) { structName = tag; } return structName == null ? null : structName.clone(); }
public Identifier getActualTaggedTypeName(TaggedTypeRef struct) { Identifier structName = null; Identifier tag = struct.getTag(); if (tag == null || tag.isPlain() && tag.toString().startsWith("_")) { TypeDef parentDef = as(struct.getParentElement(), TypeDef.class); if (parentDef != null) { structName = new Identifier.SimpleIdentifier(JNAeratorUtils.findBestPlainStorageName(parentDef)); } else if (tag != null) { String better = tag.toString().substring(1); Pair<TypeDef, Declarator> pair = result.typeDefs.get(better); if (pair != null && pair.getFirst().getValueType() != null && pair.getSecond() instanceof DirectDeclarator) { TypeRef tr = pair.getFirst().getValueType(); DirectDeclarator dd = (DirectDeclarator) pair.getSecond(); if (tr instanceof SimpleTypeRef) { if (tag.equals(((SimpleTypeRef) tr).getName())) { structName = ident(dd.resolveName()); } } else if (tr instanceof TaggedTypeRef) { if (tag.equals(((TaggedTypeRef) tr).getTag())) { structName = ident(dd.resolveName()); } } } } } if (structName == null || structName.toString().equals("")) { structName = tag; } return structName == null ? null : structName.clone(); }
public Primitive(String name) { setName(name == null ? null : new Identifier.SimpleIdentifier(name)); }
public static Expression varRef(String name) { return new Expression.VariableRef(new SimpleIdentifier(name)); }
public Identifier eraseTemplateArguments() { return new SimpleIdentifier(getName()); } public List<Expression> getTemplateArguments() {
public MutableByDeclarator mutateType(MutableByDeclarator type) { if (type == null) return null; type = type.clone(); if (type instanceof Function) { ((Function)type).setName(new Identifier.SimpleIdentifier(getName())); } ((Element)type).importDetails(this, false); return type; } @Override
public SimpleTypeRef(String name) { this(); setName(new Identifier.SimpleIdentifier(name)); } public SimpleTypeRef(Identifier name) {
public QualifiedIdentifier derive(QualificationSeparator separator, String... subIdentifiers) { QualifiedIdentifier qi = new QualifiedIdentifier(separator); qi.add(this); for (String i : subIdentifiers) qi.add(new SimpleIdentifier(i)); return qi; } @Override