I've used the Microsoft.SqlServer.SqlParser.SqlCodeDom.SqlScript object to create a parser that found all the objects in a given query, so that i could format the whitespace to my own rules.
it's a freaking lot of work;
i'm a damn good developer as well, and familiar with parsing as well, and it'd take me a while to build something like that, just to have it return UsesSelect/UsesInsert/UsesUpdate kind of data.
i don't see the value in the end results. nice to know, but you could "see" it faster just by reading the code if the procedure.
Lowell