Initial import of files for generating Doxygen documentation.
[ohcount] / src / ohcount.h
1 // ohcount.h written by Mitchell Foral. mitchell<att>caladbolg.net.
2 // See COPYING for license information.
3
4 #ifndef OHCOUNT_H
5 #define OHCOUNT_H
6
7 /**
8  * @mainpage Ohcount
9  *
10  * The Ohloh source code line counter
11  *
12  * This program is free software; you can redistribute it and/or modify
13  * it under the terms of the GNU General Public License Version 2 as
14  * published by the Free Software Foundation.
15  *
16  * Ohcount is specifically licensed under GPL v2.0, and no later version.
17  *
18  * This program is distributed in the hope that it will be useful,
19  * but WITHOUT ANY WARRANTY; without even the implied warranty of
20  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
21  * GNU General Public License for more details.
22  *
23  * You should have received a copy of the GNU General Public License
24  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
25  *
26  * @section overview Overview
27  *
28  * Ohcount is a program for counting lines of source code. It was originally
29  * developed at Ohloh and used to generate the reports at www.ohloh.net
30  *
31  * Ohcount supports multiple languages within a single file: for example a
32  * complex HTML document might include regions of both CSS and Javascript.
33  *
34  * Ohcount has 4 main components:
35  *
36  * @li A detector which determines the primary language family used by a
37  *   particular source file.
38  * @li A parser which provides a line-by-line breakdown of the contents of a
39  *   source file.
40  * @li Another detector which tries to determine the license(s) the source file
41  *   is licensed under.
42  * @li A final detector for gestalts.
43  *
44  * The command line tool allows you to profile individual files or whole
45  * directory trees.
46  *
47  * @section requirements System Requirements
48  *
49  * Ohcount is supported on Mac OSX 10.5 and Ubuntu 6.06 LTS. Other Linux
50  * environments should also work, but your mileage may vary. Windows is not
51  * supported.
52  *
53  * @section download Download
54  *
55  * Ohcount source code is available as a Git repository:
56  *
57  *   git clone http://git.ohloh.net/git/ohcount.git
58  *
59  * @section build Building Ohcount
60  *
61  * In order to build Ohcount, the following is required:
62  *
63  * @li GNU C compiler - http://gcc.gnu.org/
64  * @li Ragel 6.3 or later - http://research.cs.queensu.ca/~thurston/ragel/
65  * @li GNU gperf - http://www.gnu.org/software/gperf/
66  * @li PCRE - http://pcre.sourceforge.net/
67  *
68  * Run the 'build' script to build Ohcount.
69  *
70  * @code
71  * $ ./build
72  * @endcode
73  *
74  * You may then link or copy 'bin/ohcount' to your system's PATH.
75  *
76  * @section start First Steps
77  *
78  * To measure lines of code, simply pass file or directory names to the
79  * bin/ohcount executable:
80  *
81  * @code
82  * $ ohcount helloworld.c
83  * @endcode
84  *
85  * Directories will be probed recursively. If you do not pass any parameters,
86  * the current directory tree will be counted.
87  *
88  * You can use the ohcount 'detect' option to simply determine the language
89  * family of each source file. The files will not be parsed or counted. For
90  * example, to find all of the Ruby files in the current directory tree:
91  *
92  * @code
93  * $ ohcount --detect | grep ^ruby
94  * @endcode
95  *
96  * The 'annotate' option presents a line-by-line accounting of the languages
97  * used in a source code file. For example:
98  *
99  * @code
100  * $ ohcount --annotate ./test/src_dir/php1.php
101  * @endcode
102  *
103  * More options can be found by typing:
104  *
105  * @code
106  * $ ohcount --help
107  * @endcode
108  *
109  * @section docs Additional Documentation
110  *
111  * See the Related Pages tab at the top of the page.
112  *
113  * @section contact Contact Ohloh
114  *
115  * For more information visit the Ohloh website: http://labs.ohloh.net
116  *
117  * You can reach Ohloh via email at: info@ohloh.net
118  */
119
120 #define COMMAND_ANNOTATE 1
121 #define COMMAND_DETECT 2
122 #define COMMAND_HELP 3
123 #define COMMAND_GESTALT 4
124 #define COMMAND_INDIVIDUAL 5
125 #define COMMAND_LICENSES 6
126 #define COMMAND_RAWENTITIES 7
127 #define COMMAND_SUMMARY 8
128
129 #endif