]> rtime.felk.cvut.cz Git - l4.git/blob - tools/preprocess/TODO
update
[l4.git] / tools / preprocess / TODO
1 BUGS:
2
3 - Namespace declarations are unsupported.
4
5 - Forward-declared, out-of-line defined nested classes are
6   unsupported.
7
8 - Preprocess does not automatically export declarations of public
9   variables and static class data to the generated header file.
10
11 - Conditional compilation (preprocessor) is unsupported on file
12   top-level (preprocessor expressions inside blocks are OK), with the
13   exception that code commented out using "#if 0" is detected
14   correctly and deleted.
15
16 IDEAS:
17
18 - Preprocess' source code should be modularized so that the parser can 
19   be used independently from the output generator.  This would enable
20   us writing other interesting applications based on the parsed source 
21   code:
22
23   . Enforce naming conventions
24   . Rewrite .cpp files according to user-specified rules; this could
25     eventually be extented so that Preprocess can support a
26     refactoring browser.
27   . Aspect weaving (aspect-oriented programming)
28   . Automatically generate insulation (wrappers, protocol classes,
29     procedural interface) for a specified class
30   . Support class invariants, and pre- and postconditions
31
32 - When should we backdate newly-generated files?  Obviously, if the
33   newly generated file and its previous version are the same.  There
34   are circumstances, however, when clients using a generated header
35   file do not have to be recompiled: 
36
37   . Only line-number changes
38   . "friend" additions
39   . Relaxation of protection rules
40   . (and a number of other circumstances; see [Lakos])
41
42 - Preprocess should be configurable not only via command-line
43   arguments, but also using a config file.
44