protected void valueTypeAndStorageSuffix(StoredDeclarations e) { if (e.getValueType() instanceof FunctionSignature) { FunctionSignature sig = (FunctionSignature) e.getValueType(); if (sig.getFunction() != null) { Identifier name = sig.getFunction().getName(); if (name != null && e.declarators.size() == 1) { String stoName = e.declarators.get(0).resolveName(); if (name.equals(stoName) || stoName == null) { append(sig); return; } } } } append(e.getValueType()).space(!e.getDeclarators().isEmpty()).implode(e.getDeclarators(), ", "); }
TaggedTypeRef ttr = sd.getValueType() instanceof TaggedTypeRef ? (TaggedTypeRef) sd.getValueType() : null; String idealName = null; if (ttr != null && ttr.getTag() != null) {
TaggedTypeRef ttr = sd.getValueType() instanceof TaggedTypeRef ? (TaggedTypeRef) sd.getValueType() : null; String idealName = null; if (ttr != null && ttr.getTag() != null) {
@Override protected void visitStoredDeclarations(StoredDeclarations d) { super.visitStoredDeclarations(d); if (d.getDeclarators().size() == 1) { Declarator declarator = d.getDeclarators().get(0); if (declarator instanceof FunctionDeclarator) { FunctionDeclarator fd = (FunctionDeclarator) declarator; Function f = new Function(Function.Type.CFunction, null, d.getValueType(), fd.getArgs()); f.addModifiers(fd.getTarget().getModifiers()); FunctionSignature fs = new FunctionSignature(f); d.setValueType(fs); Declarator target = fd.getTarget(); Declarator newTarget = target == null ? new DirectDeclarator(fd.resolveName(), fd.getDefaultValue()) : target.clone(); d.setDeclarators(Arrays.asList(newTarget)); d.accept(this); } } }
@Override protected void visitStoredDeclarations(StoredDeclarations d) { super.visitStoredDeclarations(d); if (d.getDeclarators().size() == 1) { Declarator declarator = d.getDeclarators().get(0); if (declarator instanceof FunctionDeclarator) { FunctionDeclarator fd = (FunctionDeclarator) declarator; Function f = new Function(Function.Type.CFunction, null, d.getValueType(), fd.getArgs()); f.addModifiers(fd.getTarget().getModifiers()); FunctionSignature fs = new FunctionSignature(f); d.setValueType(fs); Declarator target = fd.getTarget(); Declarator newTarget = target == null ? new DirectDeclarator(fd.resolveName(), fd.getDefaultValue()) : target.clone(); d.setDeclarators(Arrays.asList(newTarget)); d.accept(this); } } }