The Common Lisp Abstract Syntax Tree language extension gives you a full blown, environment and macro-aware parser and walker for CL code.

The result of invoking the clast:parse function on a piece of CL code is to built an AST which can be used to query the code content and proceed to transform it in a variety of ways.

Topic: language extension