title: Is there an alternative to ctags that works better?
body: <p>I have just discovered the taglist plugin for vim, and read about <a href="http://amix.dk/blog/post/19329">how to use it with ctags</a>.</p>
  
  <p>However, disappointingly ctags is a very simple parser.</p>
  
  <p>Is there an alternative that is more complete?</p>
  
  <p>Specifically I'm looking for something that:</p>
  
  <ul>
  <li><p>expands <code>#define(x, y) x ## y</code> style macros for function declarations </p></li>
  <li><p>processes <code>#include</code> statements</p></li>
  <li><p>allows include paths to be specified for dependencies</p></li>
  </ul>
  
  <p>I see that clang provides a programatic api for accessing the c AST, so surely this isn't terribly hard to do? </p>
  
  <p>Has someone already done it?</p>
  
  <p>-- </p>
  
  <p>Edit:</p>
  
  <p>These ones don't cut it:</p>
  
  <ul>
  <li><p><strong>clang_indexer</strong> - Doesn't compile; when it does (after hacking), doesn't work (endless errors).</p></li>
  <li><p><strong>clang_complete</strong> - Doesn't seem any better than ctags. No context specific recommendations, no struct completion, no function arguments, no macro expansion; just a list of symbols and the file they came from.</p></li>
  </ul>