def parseCompositeType(type, name, src):
    typeNamePtrn = (((('(' + TYPE_PTRN) + ')(\\s+') + IDENT_PTRN) + ')((\\[[^\\]]+\\])*)\\s*;')
    matches = re.findall(typeNamePtrn, src)
    members = [Variable(t.strip(), n.strip(), a.strip()) for (t, n, a, _) in matches]
    return CompositeType(type, name, members)
def parseCompositeType(type, name, src):
    typeNamePtrn = (((('(' + TYPE_PTRN) + ')(\\s+') + IDENT_PTRN) + ')((\\[[^\\]]+\\])*)\\s*;')
    matches = re.findall(typeNamePtrn, src)
    members = [Variable(t.strip(), n.strip(), a.strip()) for (t, n, a, _) in matches]
    return CompositeType(type, name, members)