Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.
That's quite a bit of work... There are some built-in functionalities in the extraction tools, but probably not what you are looking for. Some of the optimizer/yield improvement tools can do similar actions, at least internally. I do not think you can access those through skill.
Unless you are looking to reverse engineer something unknown, I would suggest to have the designer add properties to subblock/components to help such a script. For example, in differential pairs, add properties on the transistors to tell what they match/group with, etc.
Finding names is easy; figuring out function, there's too much
variation and arbitrariness in just the naming so you'd have to
get into feature recognition (and there too, styles can mess you
up - especially if it's all "named nets" that you have to squint at
and combine in your mind, to recognize topology yourself).
And distinguishing between an op amp and a continuous-time
I think just getting cell-by-cell content / hierarchy is a more
manageable task, might just fall out of a hierarchical netlist