]> rtime.felk.cvut.cz Git - l4.git/blob - tools/preprocess/README
Inital import
[l4.git] / tools / preprocess / README
1 `preprocess' -- A C++ preprocessor.
2 -----------------------------------
3
4 This program is a preprocessor for C++ modules.  With this tool, you
5 write unit-style single-source-file modules in C++ (e.g., foo.cpp),
6 from which the tool extracts three C++ source files that can then be
7 processed using the standard C++ compiler toolchain:
8
9 - A public header file (foo.h)
10
11 - A private header file containing all non-public type definitions
12   (foo_i.h).  This facilitates debugging modules that need access to
13   implementation-specific data structures.
14
15 - An implementation file (foo.cc)
16
17 Features: 
18
19 - Modules contain two sections.  The "INTERFACE:" section contains
20   the public interface to the module; the "IMPLEMENTATION:" section
21   contains everything else.  The preprocessor puts "INTERFACE:"
22   declarations into the public header file and tries to hide
23   everything else.
24
25 - The preprocessor automatically expands class declarations using
26   member-function definitions found in the file.  Function labelled
27   PUBLIC, PROTECTED and PRIVATE are put into the corresponding section
28   of the class.  This feature saves typing effort and reduces
29   duplication.
30
31 - Functions declared "inline" are exported automatically, along with
32   all the functions and types they need (these dependencies must be
33   declared in the module file).  This feature can be turned off so that
34   all functions labeled "inline" are hidded and generated out-of-line.
35
36 For more documentation, please refer to the documentation (manpage,
37 webpage) in directory "doc" (requires Doxygen), or go to the online
38 documentation at <http://os.inf.tu-dresden.de/~hohmuth/prj/preprocess/>.