Handle template expressions that may use the << or >> operators
[arduino-ctags.git] / README
blobf9554f382e8476b603da59b94179c6249e771836
1 Exuberant Ctags
2 ===============
3 Author: Darren Hiebert <dhiebert at users.sourceforge.net>
4         http://ctags.sourceforge.net
5         Instant Messaging:
6           Yahoo! ID     : dbhiebert
7           AIM ScreenName: darrenhiebert
9 Exuberant Ctags is a multilanguage reimplementation of the much-underused
10 ctags(1) program and is intended to be the mother of all ctags programs. It
11 generates indexes of source code definitions which are used by a number of
12 editors and tools. The motivation which drove the development of Exuberant
13 Ctags was the need for a ctags program which supported generation of tags
14 for all possible C language constructs (which no other ctags offers), and
15 because most were easily fooled by a number of preprocessor contructs.
18 Exuberant Ctags offers the following features:
20 1.  It supports the following languages: Assembler, AWK, ASP, BETA,
21     Bourne/Korn/Z Shell, C, C++, C#, COBOL, Eiffel, Erlang, Fortran, Java, Lisp,
22     Lua, Makefile, Pascal, Perl, PHP, PL/SQL, Python, REXX, Ruby, Scheme,
23     S-Lang, SML (Standard ML), Tcl, Vera, Verilog, VHDL, Vim, and YACC.
25 2.  It is capable of generating tags for virtually all C language constructs.
27 3.  It is very robust in parsing code. In particular, the C/C++ parser is
28     far less easily fooled by code containing #if preprocessor conditional
29     constructs, using a conditional path selection algorithm to resolve
30     complicated situations, and a fall-back algorithm when this one fails.
32 4.  Supports output of Emacs-style TAGS files (i.e. "etags").
34 5.  User-defined languages, using Posix regular expressions.
36 6.  Supports UNIX, MSDOS, Windows 95/98/NT/2000/XP, OS/2, QNX, Amiga, QDOS,
37     RISC OS, VMS, Macintosh, and Cray. Some pre-compiled binaries are
38     available on the web site.
41 Visit the Exuberant Ctags web site:
43     http://ctags.sourceforge.net
46 Which brings us to the most obvious question:
48   Q: Why is it called "Exuberant" ctags?
49   A: Because one of the meanings of the word is:
51      exuberant : produced in extreme abundance : PLENTIFUL syn see PROFUSE
53 Compare the tag file produced by Exuberant Ctags with that produced by any
54 other ctags and you will see how appropriate the name is.
57 This source code is distributed according to the terms of the GNU General
58 Public License. It is provided on an as-is basis and no responsibility is
59 accepted for its failure to perform as expected. It is worth at least as
60 much as you paid for it!
62 Exuberant Ctags was originally derived from and inspired by the ctags
63 program by Steve Kirkendall (kirkenda@cs.pdx.edu) that comes with the Elvis
64 vi clone (though almost none of the original code remains). This, too, is
65 freely available.
67 Please report any problems you find. The two problems I expect to be most
68 likely are either a tag which you expected but is missing, or a tag created
69 in error (shouldn't really be a tag). Please include a sample of code (the
70 definition) for the object which misbehaves.
73 vim:tw=76:sw=4:et: