1<html> 2<head> 3<title>Exuberant Ctags: Why?</title> 4</head> 5<body> 6 7<h1>What makes this implementation of ctags desirable?</h1> 8 9<ol> 10 11<p> 12<li> 13Supports <a href="languages.html">many programming languages</a>. 14</li> 15</p> 16 17<p> 18<li>It is capable of generating tags for <strong><em>all</em></strong> types 19 of C/C++ language tags, including all of the following: 20 <p> 21 <menu> 22 <li type=disk>class names 23 <li type=disk>macro definitions 24 <li type=disk>enumeration names 25 <li type=disk>enumerators 26 <li type=disk>function definitions 27 <li type=disk>function prototypes/declarations 28 <li type=disk>class, interface, struct, and union data members 29 <li type=disk>structure names 30 <li type=disk>typedefs 31 <li type=disk>union names 32 <li type=disk>variables (definitions and external declarations) 33 </menu> 34</li> 35</p> 36 37<p> 38<li>It is far less easily fooled by C code containing <code>#if</code> 39 preprocessor conditional constructs, using a conditional path selection 40 algorithm to resolve complicated choices, and a fall-back algorithm when 41 this one fails. 42</li> 43</p> 44 45<p> 46<li>Supports user-defined languages, using regular expressions. 47</li> 48</p> 49 50<p> 51<li>Supports output of Emacs-style TAGS files. 52</li> 53</p> 54 55<p> 56<li>Can also be used to print out a list of selected objects found in source 57 files. 58</li> 59</p> 60 61<p> 62<li>Compiles on UNIX, MSDOS, Windows 95/98/NT, OS/2, QNX, Amiga, QDOS, VMS, 63 Macintosh, and Cray. 64</li> 65</p> 66 67</ol> 68 69<hr> 70<a href="http:index.html">Back to <strong>Exuberant Ctags</strong></a> 71 72</body> 73</html> 74