Fixed up doxygen to do the right thing with Ivy annotations.
authorPaul Pearce <pearce@eecs.berkeley.edu>
Mon, 31 Aug 2009 22:38:47 +0000 (15:38 -0700)
committerPaul Pearce <pearce@eecs.berkeley.edu>
Tue, 1 Sep 2009 01:32:28 +0000 (18:32 -0700)
Took Ivy's annotation macros defined in the ivy tree as deputy-include/deputy/annots.h
and moved that file into doc/include/annots.h and modified it to work with doxygen.
Including this file now has the effect of stripping out ivy annotations.
This does the right thing for things like TC, so if you say TC(variable) it
replaces that with (variable), but COUNT(n) becomes nothing.

I modified the rosdoc.cfg to include this new file, and then set it up to expand
only enumerated macros. I then (based on annots.h) enumerated all Ivy annotations
so they would expand to the definitions found in annots.h. This means doxygen will
only expand ivy macros, and will basically remove them. Other macros remain untouched.

doc/include/annots.h [new file with mode: 0644]
doc/rosdoc.cfg

diff --git a/doc/include/annots.h b/doc/include/annots.h
new file mode 100644 (file)
index 0000000..7c49bae
--- /dev/null
@@ -0,0 +1,99 @@
+#ifndef ANNOT_H
+#define ANNOT_H
+
+#define BOUND(lo, hi)   
+#define COUNT(n)        
+#define SIZE(n)         
+#define SAFE            
+#define SNT             
+#define DANGEROUS       
+
+/* Begin Experimental attributes */
+#define META(p)            
+#define HANDLER_ATOMIC              
+#define LOCK_HANDLER_ATOMIC(...)   
+#define IN_HANDLER_ATOMIC  
+#define IN_HANDLER         
+#define ASYNC              
+#define NORACE             
+#define SYNCHRONOUS        
+#define REGION(r)          
+#define NOREGION           
+#define SOMEREGION         
+#define SAMEREGION         
+#define DELETES_REGION(r)  
+#define GROUP(g)           
+#define NOGROUP            
+#define SOMEGROUP          
+#define SAMEGROUP          
+#define UNIQUE             
+#define NOALIAS            
+#define PAIRED_WITH(c)     
+#define PAIRED(c1,c2)      
+#define ARGPAIRED(c1,c2,arg) 
+#define FNPTRCALLER(fn)    
+#define INITSTRUCT(s)      
+#define NOINIT             
+#define WRITES(...)        
+#define RPROTECT           
+#define WPROTECT           
+#define RWPROTECT          
+#define R_PERMITTED(...) 
+#define W_PERMITTED(...) 
+#define RW_PERMITTED(...) 
+/* End Experimental attributes */
+
+#define BND(lo, hi)     
+#define CT(n)           
+#define SZ(n)           
+
+#define EFAT            
+#define FAT             
+
+#define NULLTERM        
+#define NT              
+#define NTS             
+#define NTC(n)          
+
+#define NTDROPATTR      
+#define NTEXPANDATTR    
+
+#define NULLABLE
+#define OPT             
+#define NONNULL         
+
+#define TRUSTED         
+#define TRUSTEDBLOCK    
+
+#define POLY           
+
+#define COPYTYPE        
+
+//specifies that Deputy's typechecker (but not optimizer) should assume
+//that this lvalue is constant. (unsound)
+#define ASSUMECONST     
+
+#define WHEN(e)         
+
+#define DMEMCPY(x, y, z) 
+#define DMEMSET(x, y, z) 
+#define DMEMCMP(x, y, z)
+
+#define DALLOC(x)       
+#define DREALLOC(x, y)  
+#define DFREE(x)        
+
+#define DVARARG(x)      
+#define DPRINTF(x)      
+
+#define NTDROP(x)       (x)
+#define NTEXPAND(x)     (x)
+#define TC(x)           (x)
+
+#define TVATTR(x)       
+#define TPATTR(x)       
+
+#define TV(x)           void * (x)
+#define TP(x)           
+
+#endif // ANNOT_H
index 0086427..ef297b2 100644 (file)
@@ -1169,13 +1169,13 @@ ENABLE_PREPROCESSING   = YES
 # compilation will be performed. Macro expansion can be done in a controlled 
 # way by setting EXPAND_ONLY_PREDEF to YES.
 
-MACRO_EXPANSION        = NO
+MACRO_EXPANSION        = YES
 
 # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES 
 # then the macro expansion is limited to the macros specified with the 
 # PREDEFINED and EXPAND_AS_DEFINED tags.
 
-EXPAND_ONLY_PREDEF     = NO
+EXPAND_ONLY_PREDEF     = YES
 
 # If the SEARCH_INCLUDES tag is set to YES (the default) the includes files 
 # in the INCLUDE_PATH (see below) will be search if a #include is found.
@@ -1186,7 +1186,7 @@ SEARCH_INCLUDES        = YES
 # contain include files that are not input files but should be processed by 
 # the preprocessor.
 
-INCLUDE_PATH           = 
+INCLUDE_PATH           = doc/include/
 
 # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard 
 # patterns (like *.h and *.hpp) to filter out the header-files in the 
@@ -1203,14 +1203,14 @@ INCLUDE_FILE_PATTERNS  =
 # undefined via #undef or recursively expanded use the := operator 
 # instead of the = operator.
 
-PREDEFINED             = 
+PREDEFINED             =
 
 # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then 
 # this tag can be used to specify a list of macro names that should be expanded. 
 # The macro definition that is found in the sources will be used. 
 # Use the PREDEFINED tag if you want to use a different macro definition.
 
-EXPAND_AS_DEFINED      = 
+EXPAND_AS_DEFINED      = BOUND COUNT SIZE SAFE SNT DANGEROUS META HANDLER_ATOMIC LOCK_HANDLER_ATOMIC IN_HANDLER_ATOMIC IN_HANDLER ASYNC NORACE SYNCHRONOUS REGION NOREGION SOMEREGION SAMEREGION DELETES_REGION GROUP NOGROUP SOMEGROUP SAMEGROUP UNIQUE NOALIAS PAIRED_WITH PAIRED ARGPAIRED FNPTRCALLER INITSTRUCT NOINIT WRITES RPROTECT WPROTECT RWPROTECT R_PERMITTED W_PERMITTED RW_PERMITTED BND CT SZ EFAT FAT NULLTERM NT NTS NTC NTDROPATTR NTEXPANDATTR NULLABLE OPT NONNULL TRUSTED TRUSTEDBLOCK POLY COPYTYPE ASSUMECONST WHEN DMEMCPY DMEMSET DMEMCMP DALLOC DREALLOC DFREE DVARARG DPRINTF NTDROP NTEXPAND TC TVATTR TPATTR TV TP
 
 # If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then 
 # doxygen's preprocessor will remove all function-like macros that are alone