commit-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Commit-gnuradio] r10195 - in gnuradio/trunk/gnuradio-core/doc: . other


From: jcorgan
Subject: [Commit-gnuradio] r10195 - in gnuradio/trunk/gnuradio-core/doc: . other
Date: Mon, 5 Jan 2009 19:00:35 -0700 (MST)

Author: jcorgan
Date: 2009-01-05 19:00:34 -0700 (Mon, 05 Jan 2009)
New Revision: 10195

Modified:
   gnuradio/trunk/gnuradio-core/doc/Doxyfile.in
   gnuradio/trunk/gnuradio-core/doc/other/doxypy.py
   gnuradio/trunk/gnuradio-core/doc/other/group_defs.dox
Log:
Update doxygen Python generation (Firas Abbas)

Modified: gnuradio/trunk/gnuradio-core/doc/Doxyfile.in
===================================================================
--- gnuradio/trunk/gnuradio-core/doc/Doxyfile.in        2009-01-05 18:59:27 UTC 
(rev 10194)
+++ gnuradio/trunk/gnuradio-core/doc/Doxyfile.in        2009-01-06 02:00:34 UTC 
(rev 10195)
@@ -25,7 +25,7 @@
 # The PROJECT_NAME tag is a single word (or a sequence of words surrounded 
 # by quotes) that should identify the project.
 
-PROJECT_NAME           = "GNU Radio @VERSION@"
+PROJECT_NAME           = "GNU Radio @VERSION@ API"
 
 # The PROJECT_NUMBER tag can be used to enter a project or revision number. 
 # This could be handy for archiving the generated documentation or 
@@ -91,7 +91,7 @@
 # Doxygen will generate a detailed section even if there is only a brief 
 # description.
 
-ALWAYS_DETAILED_SEC    = NO
+ALWAYS_DETAILED_SEC    = YES
 
 # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all 
 # inherited members of a class in the documentation of that class as if those 
@@ -152,7 +152,7 @@
 # The new default is to treat a multi-line C++ comment block as a detailed 
 # description. Set this tag to YES if you prefer the old behaviour instead.
 
-MULTILINE_CPP_IS_BRIEF = NO
+MULTILINE_CPP_IS_BRIEF = YES
 
 # If the DETAILS_AT_TOP tag is set to YES then Doxygen 
 # will output the detailed description near the top, like JavaDoc.
@@ -199,7 +199,7 @@
 # For instance, namespaces will be presented as packages, qualified scopes 
 # will look different, etc.
 
-OPTIMIZE_OUTPUT_JAVA   = NO
+OPTIMIZE_OUTPUT_JAVA   = YES
 
 # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want 
to 
 # include (a tag file for) the STL sources as input, then you should 
@@ -249,7 +249,7 @@
 # If the EXTRACT_STATIC tag is set to YES all static members of a file 
 # will be included in the documentation.
 
-EXTRACT_STATIC         = NO
+EXTRACT_STATIC         = YES
 
 # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) 
 # defined locally in source files will be included in the documentation. 
@@ -262,7 +262,7 @@
 # the interface are included in the documentation. 
 # If set to NO (the default) only methods in the interface are included.
 
-EXTRACT_LOCAL_METHODS  = NO
+EXTRACT_LOCAL_METHODS  = YES
 
 # If this flag is set to YES, the members of anonymous namespaces will be 
extracted 
 # and appear in the documentation as a namespace called 
'anonymous_namespace{file}', 
@@ -354,7 +354,7 @@
 # Note: This option applies only to the class list, not to the 
 # alphabetical list.
 
-SORT_BY_SCOPE_NAME     = NO
+SORT_BY_SCOPE_NAME     = YES
 
 # The GENERATE_TODOLIST tag can be used to enable (YES) or 
 # disable (NO) the todo list. This list is created by putting \todo 
@@ -424,7 +424,7 @@
 # The QUIET tag can be used to turn on/off the messages that are generated 
 # by doxygen. Possible values are YES and NO. If left blank NO is used.
 
-QUIET                  = NO
+QUIET                  = YES
 
 # The WARNINGS tag can be used to turn on/off the warning messages that are 
 # generated by doxygen. Possible values are YES and NO. If left blank 
@@ -495,7 +495,8 @@
 
 FILE_PATTERNS          = *.h \
                          *.dox \
-                         *.py
+                         *.py \
+                        *.cc
 
 # The RECURSIVE tag can be used to turn specify whether or not subdirectories 
 # should be searched for input files as well. Possible values are YES and NO. 
@@ -510,17 +511,7 @@
 # We split these by top_srcdir and top_builddir (this matters in a VPATH build)
 
 EXCLUDE  = \
-       
@abs_top_builddir@/gnuradio-core/src/lib/swig/gnuradio_swig_py_filter.cc \
-       
@abs_top_builddir@/gnuradio-core/src/lib/swig/gnuradio_swig_py_filter.py \
-       
@abs_top_builddir@/gnuradio-core/src/lib/swig/gnuradio_swig_py_general.cc \
-       
@abs_top_builddir@/gnuradio-core/src/lib/swig/gnuradio_swig_py_general.py \
-       
@abs_top_builddir@/gnuradio-core/src/lib/swig/gnuradio_swig_py_gengen.cc \
-       
@abs_top_builddir@/gnuradio-core/src/lib/swig/gnuradio_swig_py_gengen.py \
-       @abs_top_builddir@/gnuradio-core/src/lib/swig/gnuradio_swig_py_io.cc \
-       @abs_top_builddir@/gnuradio-core/src/lib/swig/gnuradio_swig_py_io.py \
-       
@abs_top_builddir@/gnuradio-core/src/lib/swig/gnuradio_swig_py_runtime.cc \
-       
@abs_top_builddir@/gnuradio-core/src/lib/swig/gnuradio_swig_py_runtime.py \
-       @abs_top_builddir@/gnuradio-core/src/lib/swig/gnuradio_swig_python.py \
+       @abs_top_builddir@/gnuradio-core/src/lib/swig \
        @abs_top_builddir@/gr-atsc/src/lib/atsc.cc \
        @abs_top_builddir@/gr-atsc/src/lib/atsc.py \
        @abs_top_builddir@/gr-audio-oss/src/audio_oss.py \
@@ -536,58 +527,80 @@
        @abs_top_builddir@/gr-usrp/src/usrp1.py \
        @abs_top_builddir@/gr-video-sdl/src/video_sdl.py \
        @abs_top_builddir@/usrp/host/swig \
-       @abs_top_srcdir@/docs \
-       @abs_top_srcdir@/dtools \
-       @abs_top_srcdir@/gnuradio-core/doc/doxypy/doxypy.py \
-       @abs_top_srcdir@/gnuradio-core/doc/xml \
-       @abs_top_srcdir@/gnuradio-core/src/lib/bug_work_around_6.cc \
-       @abs_top_srcdir@/gnuradio-core/src/lib/filter/assembly.h \
-       @abs_top_srcdir@/gnuradio-core/src/lib/filter/generate_all.py \
-       @abs_top_srcdir@/gnuradio-core/src/lib/filter/generate_gr_fir_XXX.py \
-       
@abs_top_srcdir@/gnuradio-core/src/lib/filter/generate_gr_fir_filter_XXX.py \
-       
@abs_top_srcdir@/gnuradio-core/src/lib/filter/generate_gr_fir_sysconfig.py \
-       
@abs_top_srcdir@/gnuradio-core/src/lib/filter/generate_gr_fir_sysconfig_generic.py
 \
-       @abs_top_srcdir@/gnuradio-core/src/lib/filter/generate_gr_fir_util.py \
-       
@abs_top_srcdir@/gnuradio-core/src/lib/filter/generate_gr_freq_xlating_fir_filter_XXX.py
 \
-       
@abs_top_srcdir@/gnuradio-core/src/lib/filter/generate_gr_interp_fir_filter_XXX.py
 \
-       
@abs_top_srcdir@/gnuradio-core/src/lib/filter/generate_gr_rational_resampler_base_XXX.py
 \
-       @abs_top_srcdir@/gnuradio-core/src/lib/filter/generate_utils.py \
-       @abs_top_srcdir@/gnuradio-core/src/lib/filter/sse_debug.h \
-       @abs_top_srcdir@/gnuradio-core/src/lib/gengen/generate_all.py \
-       @abs_top_srcdir@/gnuradio-core/src/lib/gengen/generate_common.py \
-       @abs_top_srcdir@/gnuradio-core/src/lib/missing/bug_work_around_8.cc \
-       @abs_top_srcdir@/gnuradio-core/src/lib/runtime/gr_error_handler.cc \
-       @abs_top_srcdir@/gnuradio-core/src/python/bin \
-       @abs_top_srcdir@/gnuradio-core/src/python/build_utils.py \
-       @abs_top_srcdir@/gnuradio-core/src/python/build_utils_codes.py \
-       @abs_top_srcdir@/gnuradio-core/src/python/gnuradio/gr/gr_threading.py \
-       
@abs_top_srcdir@/gnuradio-core/src/python/gnuradio/gr/gr_threading_23.py \
-       
@abs_top_srcdir@/gnuradio-core/src/python/gnuradio/gr/gr_threading_24.py \
-       @abs_top_srcdir@/gnuradio-core/src/tests \
-       @abs_top_srcdir@/gnuradio-core/src/utils \
-       @abs_top_srcdir@/gr-atsc/src/lib/gen_encoder.py \
-       @abs_top_srcdir@/gr-atsc/src/python \
-       @abs_top_srcdir@/gr-howto-write-a-block \
-       @abs_top_srcdir@/gr-qtgui \
-       @abs_top_srcdir@/gr-sounder/src/python/usrp_sounder.py \
-       @abs_top_srcdir@/gr-trellis/doc \
-       @abs_top_srcdir@/gr-trellis/src/lib/generate_all.py \
-       @abs_top_srcdir@/gr-trellis/src/lib/generate_trellis.py \
-       @abs_top_srcdir@/usrp/doc \
-       @abs_top_srcdir@/usrp/firmware \
-       @abs_top_srcdir@/usrp/fpga \
-       @abs_top_srcdir@/usrp/host/apps \
-       @abs_top_srcdir@/usrp/host/apps-inband \
-       @abs_top_srcdir@/usrp/host/lib/inband \
-       @abs_top_srcdir@/usrp/host/lib/legacy/ad9862.h \
-       @abs_top_srcdir@/usrp/host/lib/legacy/check_data.py \
-       @abs_top_srcdir@/usrp/host/lib/legacy/circular_buffer.h \
-       @abs_top_srcdir@/usrp/host/lib/legacy/circular_linked_list.h \
-       @abs_top_srcdir@/usrp/host/lib/legacy/dump_data.py \
-       @abs_top_srcdir@/usrp/host/lib/legacy/gen_usrp_dbid.py \
-       @abs_top_srcdir@/usrp/host/lib/legacy/usrp_dbid.py \
-       @abs_top_srcdir@/usrp/host/misc \
-       @abs_top_srcdir@/usrp/host/swig
+       @abs_top_builddir@/docs \
+       @abs_top_builddir@/dtools \
+       @abs_top_builddir@/gnuradio-core/doc/other/doxypy.py \
+       @abs_top_builddir@/gnuradio-core/doc/xml \
+       @abs_top_builddir@/gnuradio-core/doc/xml-swig \
+       @abs_top_builddir@/gnuradio-core/src/lib/bug_work_around_6.cc \
+       @abs_top_builddir@/gnuradio-core/src/lib/filter/assembly.h \
+       @abs_top_builddir@/gnuradio-core/src/lib/filter/generate_all.py \
+       @abs_top_builddir@/gnuradio-core/src/lib/filter/generate_gr_fir_XXX.py \
+       
@abs_top_builddir@/gnuradio-core/src/lib/filter/generate_gr_fir_filter_XXX.py \
+       
@abs_top_builddir@/gnuradio-core/src/lib/filter/generate_gr_fir_sysconfig.py \
+       
@abs_top_builddir@/gnuradio-core/src/lib/filter/generate_gr_fir_sysconfig_generic.py
 \
+       @abs_top_builddir@/gnuradio-core/src/lib/filter/generate_gr_fir_util.py 
\
+       
@abs_top_builddir@/gnuradio-core/src/lib/filter/generate_gr_freq_xlating_fir_filter_XXX.py
 \
+       
@abs_top_builddir@/gnuradio-core/src/lib/filter/generate_gr_interp_fir_filter_XXX.py
 \
+       
@abs_top_builddir@/gnuradio-core/src/lib/filter/generate_gr_rational_resampler_base_XXX.py
 \
+       @abs_top_builddir@/gnuradio-core/src/lib/filter/generate_utils.py \
+       @abs_top_builddir@/gnuradio-core/src/lib/filter/sse_debug.h \
+       @abs_top_builddir@/gnuradio-core/src/lib/gengen/generate_all.py \
+       @abs_top_builddir@/gnuradio-core/src/lib/gengen/generate_common.py \
+       @abs_top_builddir@/gnuradio-core/src/lib/missing/bug_work_around_8.cc \
+       @abs_top_builddir@/gnuradio-core/src/lib/runtime/gr_error_handler.cc \
+       @abs_top_builddir@/gnuradio-core/src/python/bin \
+       @abs_top_builddir@/gnuradio-core/src/python/build_utils.py \
+       @abs_top_builddir@/gnuradio-core/src/python/build_utils_codes.py \
+       @abs_top_builddir@/gnuradio-core/src/python/gnuradio/gr/gr_threading.py 
\
+       
@abs_top_builddir@/gnuradio-core/src/python/gnuradio/gr/gr_threading_23.py \
+       
@abs_top_builddir@/gnuradio-core/src/python/gnuradio/gr/gr_threading_24.py \
+       @abs_top_builddir@/gnuradio-core/src/tests \
+       @abs_top_builddir@/gnuradio-core/src/utils \
+       @abs_top_builddir@/gr-atsc/src/lib/gen_encoder.py \
+       @abs_top_builddir@/gr-atsc/src/python \
+       @abs_top_builddir@/gr-howto-write-a-block \
+       @abs_top_builddir@/gr-qtgui \
+       @abs_top_builddir@/gr-sounder/src/python/usrp_sounder.py \
+       @abs_top_builddir@/gr-trellis/doc \
+       @abs_top_builddir@/gr-trellis/src/lib/generate_all.py \
+       @abs_top_builddir@/gr-trellis/src/lib/generate_trellis.py \
+       @abs_top_builddir@/usrp/doc \
+       @abs_top_builddir@/usrp/firmware \
+       @abs_top_builddir@/usrp/fpga \
+       @abs_top_builddir@/usrp/host/apps \
+       @abs_top_builddir@/usrp/host/apps-inband \
+       @abs_top_builddir@/usrp/host/lib/inband \
+       @abs_top_builddir@/usrp/host/lib/legacy/ad9862.h \
+       @abs_top_builddir@/usrp/host/lib/legacy/check_data.py \
+       @abs_top_builddir@/usrp/host/lib/legacy/circular_buffer.h \
+       @abs_top_builddir@/usrp/host/lib/legacy/circular_linked_list.h \
+       @abs_top_builddir@/usrp/host/lib/legacy/dump_data.py \
+       @abs_top_builddir@/usrp/host/lib/legacy/gen_usrp_dbid.py \
+       @abs_top_builddir@/usrp/host/lib/legacy/usrp_dbid.py \
+       @abs_top_builddir@/usrp/host/misc \
+       @abs_top_builddir@/usrp/host/swig \
+       @abs_top_builddir@/grc \
+       @abs_top_builddir@/gr-wxgui/src/python \
+       @abs_top_builddir@/gr-radio-astronomy/src/python \
+       @abs_top_builddir@/omnithread/nt.cc \
+       @abs_top_builddir@/omnithread/mach.cc \
+       @abs_top_builddir@/gr-audio-alsa/src/audio-alsa.py \
+       @abs_top_builddir@/gr-msdd6000/src/msdd.py \
+       @abs_top_builddir@/gr-usrp2/src/usrp2.py \
+       @abs_top_builddir@/usrp/host/lib/legacy/db_flexrf.h \
+       @abs_top_builddir@/usrp/host/lib/legacy/db_flexrf_mimo.h \
+       @abs_top_builddir@/usrp/host/lib/legacy/db_wbx.h \
+       @abs_top_builddir@/gnuradio-core/doc/other/shared_ptr_docstub.h \
+       @abs_top_builddir@/gnuradio-core/doc/other/vector_docstub.h \
+       @abs_top_builddir@/gnuradio-core/src/lib/missing/getopt.h \
+       @abs_top_builddir@/gnuradio-core/src/lib/filter/gr_altivec.h \
+       @abs_top_builddir@/gnuradio-examples/python/apps/hf_radio/output.py \
+       @abs_top_builddir@/gnuradio-examples/python/apps/hf_radio/ui.py \
+       @abs_top_builddir@/gr-radio-astronomy/src/lib/ra.py \
+       @abs_top_builddir@/gcell/ibm/sync/ppu_source/cond.h \
+       @abs_top_builddir@/gcell/ibm/sync/ppu_source/libsync.h \
+       @abs_top_builddir@/gcell/ibm/sync/spu_source/sync_utils.h
 
 
 # The EXCLUDE_SYMLINKS tag can be used select whether or not files or 
@@ -624,7 +637,26 @@
 
 EXCLUDE_SYMBOLS        = ad9862 \
                        numpy \
-                       usrpm
+                       usrpm \
+                       *swig* \
+                       *Swig* \
+                       *my_top_block* \
+                       *my_graph* \
+                       *app_top_block* \
+                       *am_rx_graph* \
+                       *_queue_watcher_thread* \
+                       *parse* \
+                       *MyFrame* \
+                       *MyApp* \
+                       *PyObject* \
+                       *wfm_rx_block* \
+                       *_sptr* \
+                       *debug* \
+                       *wfm_rx_sca_block* \
+                       *tv_rx_block* \
+                       *wxapt_rx_block* \
+                       *example_signal*
+                       
 
 # The EXAMPLE_PATH tag can be used to specify one or more files or 
 # directories that contain example code fragments that are included (see 
@@ -676,7 +708,7 @@
 # INPUT_FILTER) will be used to filter the input files when producing source 
 # files to browse (i.e. when SOURCE_BROWSER is set to YES).
 
-FILTER_SOURCE_FILES    = YES
+FILTER_SOURCE_FILES    = NO
 
 #---------------------------------------------------------------------------
 # configuration options related to source browsing
@@ -689,7 +721,7 @@
 # then you must also enable this option. If you don't then doxygen will 
produce 
 # a warning and turn it on anyway
 
-SOURCE_BROWSER         = NO
+SOURCE_BROWSER         = YES
 
 # Setting the INLINE_SOURCES tag to YES will include the body 
 # of functions and classes directly in the documentation.
@@ -700,7 +732,7 @@
 # doxygen to hide any special comment blocks from generated source code 
 # fragments. Normal C and C++ comments will always remain visible.
 
-STRIP_CODE_COMMENTS    = YES
+STRIP_CODE_COMMENTS    = NO
 
 # If the REFERENCED_BY_RELATION tag is set to YES (the default) 
 # then for each documented function all documented 
@@ -743,7 +775,7 @@
 # of all compounds will be generated. Enable this if the project 
 # contains a lot of classes, structs, unions or interfaces.
 
-ALPHABETICAL_INDEX     = NO
+ALPHABETICAL_INDEX     = YES
 
 # If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then 
 # the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns 
@@ -850,13 +882,13 @@
 # The TOC_EXPAND flag can be set to YES to add extra items for group members 
 # to the contents of the HTML help documentation and to the tree view.
 
-TOC_EXPAND             = NO
+TOC_EXPAND             = YES
 
 # The DISABLE_INDEX tag can be used to turn on/off the condensed index at 
 # top of each HTML page. The value NO (the default) enables the index and 
 # the value YES disables it.
 
-DISABLE_INDEX          = NO
+DISABLE_INDEX          = YES
 
 # This tag can be used to set the number of enum values (range [1..20]) 
 # that doxygen will group on one line in the generated HTML documentation.
@@ -870,13 +902,13 @@
 # Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are 
 # probably better off using the HTML help feature.
 
-GENERATE_TREEVIEW      = NO
+GENERATE_TREEVIEW      = YES
 
 # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be 
 # used to set the initial width (in pixels) of the frame in which the tree 
 # is shown.
 
-TREEVIEW_WIDTH         = 250
+TREEVIEW_WIDTH         = 180
 
 #---------------------------------------------------------------------------
 # configuration options related to the LaTeX output

Modified: gnuradio/trunk/gnuradio-core/doc/other/doxypy.py
===================================================================
--- gnuradio/trunk/gnuradio-core/doc/other/doxypy.py    2009-01-05 18:59:27 UTC 
(rev 10194)
+++ gnuradio/trunk/gnuradio-core/doc/other/doxypy.py    2009-01-06 02:00:34 UTC 
(rev 10195)
@@ -15,8 +15,8 @@
        INPUT_FILTER = "python /path/to/doxypy.py"
 """
 
-__version__ = "0.3rc2"
-__date__ = "18th December 2007"
+__version__ = "0.4.1"
+__date__ = "5th December 2008"
 __website__ = "http://code.foosel.org/doxypy";
 
 __author__ = (
@@ -45,13 +45,21 @@
 from optparse import OptionParser, OptionGroup
 
 class FSM(object):
-       """     FSM implements a finite state machine. Transitions are given as
-               4-tuples, consisting of an origin state, a target state, a 
condition
-               for the transition (given as a reference to a function which 
gets called
-               with a given piece of input) and a pointer to a function to be 
called
-               upon the execution of the given transition. 
+       """Implements a finite state machine.
+       
+       Transitions are given as 4-tuples, consisting of an origin state, a 
target
+       state, a condition for the transition (given as a reference to a 
function
+       which gets called with a given piece of input) and a pointer to a 
function
+       to be called upon the execution of the given transition. 
        """
        
+       """
+       @var transitions holds the transitions
+       @var current_state holds the current state
+       @var current_input holds the current input
+       @var current_transition hold the currently active transition
+       """
+       
        def __init__(self, start_state=None, transitions=[]):
                self.transitions = transitions
                self.current_state = start_state
@@ -66,7 +74,8 @@
                
        def makeTransition(self, input):
                """ Makes a transition based on the given input.
-                       @param  input   input to parse by the FSM
+
+               @param  input   input to parse by the FSM
                """
                for transition in self.transitions:
                        [from_state, to_state, condition, callback] = transition
@@ -76,20 +85,23 @@
                                        self.current_state = to_state
                                        self.current_input = input
                                        self.current_transition = transition
+                                       if options.debug:
+                                               print >>sys.stderr, "# FSM: 
executing (%s -> %s) for line '%s'" % (from_state, to_state, input)
                                        callback(match)
                                        return
 
-
 class Doxypy(object):
        def __init__(self):
-               self.start_single_comment_re = re.compile("^\s*(''')")
+               string_prefixes = "[uU]?[rR]?"
+               
+               self.start_single_comment_re = re.compile("^\s*%s(''')" % 
string_prefixes)
                self.end_single_comment_re = re.compile("(''')\s*$")
                
-               self.start_double_comment_re = re.compile("^\s*(\"\"\")")
+               self.start_double_comment_re = re.compile("^\s*%s(\"\"\")" % 
string_prefixes)
                self.end_double_comment_re = re.compile("(\"\"\")\s*$")
                
-               self.single_comment_re = re.compile("^\s*(''').*(''')\s*$")
-               self.double_comment_re = 
re.compile("^\s*(\"\"\").*(\"\"\")\s*$")
+               self.single_comment_re = re.compile("^\s*%s(''').*(''')\s*$" % 
string_prefixes)
+               self.double_comment_re = 
re.compile("^\s*%s(\"\"\").*(\"\"\")\s*$" % string_prefixes)
                
                self.defclass_re = re.compile("^(\s*)(def .+:|class .+:)")
                self.empty_re = re.compile("^\s*$")
@@ -141,6 +153,7 @@
                        # other lines
                        ["DEFCLASS", "DEFCLASS", self.empty_re.search, 
self.appendDefclassLine],
                        ["DEFCLASS", "DEFCLASS", self.defclass_re.search, 
self.resetCommentSearch],
+                       ["DEFCLASS", "DEFCLASS_MULTI", 
self.multiline_defclass_start_re.search, self.resetCommentSearch],
                        ["DEFCLASS", "DEFCLASS_BODY", self.catchall, 
self.stopCommentSearch],
                        
                        ### DEFCLASS_BODY
@@ -155,16 +168,16 @@
                ]
                
                self.fsm = FSM("FILEHEAD", transitions)
+               self.outstream = sys.stdout
                
                self.output = []
-               
                self.comment = []
                self.filehead = []
                self.defclass = []
                self.indent = ""
 
        def __closeComment(self):
-               """ Appends any open comment block and triggering block to the 
output. """
+               """Appends any open comment block and triggering block to the 
output."""
                
                if options.autobrief:
                        if len(self.comment) == 1 \
@@ -179,59 +192,90 @@
                        self.output.extend(self.defclass)
 
        def __docstringSummaryToBrief(self, line):
-               """     Adds \\brief to the docstrings summary line.
+               """Adds \\brief to the docstrings summary line.
                
-                       A \\brief is prepended, provided no other doxygen 
command is at the start of the line.
+               A \\brief is prepended, provided no other doxygen command is at 
the
+               start of the line.
                """
                stripped = line.strip()
                if stripped and not stripped[0] in ('@', '\\'):
                        return "\\brief " + line
                else:
                        return line
+       
+       def __flushBuffer(self):
+               """Flushes the current outputbuffer to the outstream."""
+               if self.output:
+                       try:
+                               if options.debug:
+                                       print >>sys.stderr, "# OUTPUT: ", 
self.output
+                               print >>self.outstream, "\n".join(self.output)
+                               self.outstream.flush()
+                       except IOError:
+                               # Fix for FS#33. Catches "broken pipe" when 
doxygen closes 
+                               # stdout prematurely upon usage of 
INPUT_FILTER, INLINE_SOURCES 
+                               # and FILTER_SOURCE_FILES.
+                               pass
+               self.output = []
 
        def catchall(self, input):
-               """     The catchall-condition, always returns true. """
+               """The catchall-condition, always returns true."""
                return True
        
        def resetCommentSearch(self, match):
-               """ Restarts a new comment search for a different triggering 
line.
-                       Closes the current commentblock and starts a new 
comment search.
+               """Restarts a new comment search for a different triggering 
line.
+               
+               Closes the current commentblock and starts a new comment search.
                """
+               if options.debug:
+                       print >>sys.stderr, "# CALLBACK: resetCommentSearch" 
                self.__closeComment()
                self.startCommentSearch(match)
        
        def startCommentSearch(self, match):
-               """ Starts a new comment search.
-                       Saves the triggering line, resets the current comment 
and saves
-                       the current indentation.
+               """Starts a new comment search.
+               
+               Saves the triggering line, resets the current comment and saves
+               the current indentation.
                """
+               if options.debug:
+                       print >>sys.stderr, "# CALLBACK: startCommentSearch"
                self.defclass = [self.fsm.current_input]
                self.comment = []
                self.indent = match.group(1)
        
        def stopCommentSearch(self, match):
-               """ Stops a comment search.
-                       Closes the current commentblock, resets the triggering 
line and
-                       appends the current line to the output.
+               """Stops a comment search.
+               
+               Closes the current commentblock, resets the triggering line and
+               appends the current line to the output.
                """
+               if options.debug:
+                       print >>sys.stderr, "# CALLBACK: stopCommentSearch" 
                self.__closeComment()
                
                self.defclass = []
                self.output.append(self.fsm.current_input)
        
        def appendFileheadLine(self, match):
-               """     Appends a line in the FILEHEAD state.
-                       Closes the open comment block, resets it and appends 
the current line.
+               """Appends a line in the FILEHEAD state.
+               
+               Closes the open comment block, resets it and appends the 
current line.
                """ 
+               if options.debug:
+                       print >>sys.stderr, "# CALLBACK: appendFileheadLine" 
                self.__closeComment()
                self.comment = []
                self.output.append(self.fsm.current_input)
 
        def appendCommentLine(self, match):
-               """     Appends a comment line.
-                       The comment delimiter is removed from multiline start 
and ends as
-                       well as singleline comments.
+               """Appends a comment line.
+               
+               The comment delimiter is removed from multiline start and ends 
as
+               well as singleline comments.
                """
+               if options.debug:
+                       print >>sys.stderr, "# CALLBACK: appendCommentLine" 
                (from_state, to_state, condition, callback) = 
self.fsm.current_transition
                
                # single line comment
@@ -266,17 +310,22 @@
                        self.comment.append(self.fsm.current_input)
        
        def appendNormalLine(self, match):
-               """ Appends a line to the output. """
+               """Appends a line to the output."""
+               if options.debug:
+                       print >>sys.stderr, "# CALLBACK: appendNormalLine" 
                self.output.append(self.fsm.current_input)
                
        def appendDefclassLine(self, match):
-               """ Appends a line to the triggering block. """
+               """Appends a line to the triggering block."""
+               if options.debug:
+                       print >>sys.stderr, "# CALLBACK: appendDefclassLine" 
                self.defclass.append(self.fsm.current_input)
        
        def makeCommentBlock(self):
-               """ Indents the current comment block with respect to the 
current
-                       indentation level.
-                       @returns a list of indented comment lines
+               """Indents the current comment block with respect to the current
+               indentation level.
+
+               @returns a list of indented comment lines
                """
                doxyStart = "##"
                commentLines = self.comment
@@ -288,43 +337,60 @@
                return l
        
        def parse(self, input):
-               """ Parses a python file given as input string and returns the 
doxygen-
-                       compatible representation.
-                       @param  input   the python code to parse
-                       @returns the modified python code
+               """Parses a python file given as input string and returns the 
doxygen-
+               compatible representation.
+               
+               @param  input   the python code to parse
+               @returns the modified python code
                """ 
                lines = input.split("\n")
                
                for line in lines:
                        self.fsm.makeTransition(line)
-               
+                       
                if self.fsm.current_state == "DEFCLASS":
                        self.__closeComment()
                
                return "\n".join(self.output)
        
-def loadFile(filename):
-       """ Loads file "filename" and returns the content.
-               @param   filename       The name of the file to load
-               @returns the content of the file.
-       """
-       f = open(filename, 'r')
+       def parseFile(self, filename):
+               """Parses a python file given as input string and returns the 
doxygen-
+               compatible representation.
+               
+               @param  input   the python code to parse
+               @returns the modified python code
+               """ 
+               f = open(filename, 'r')
+               
+               for line in f:
+                       self.parseLine(line.rstrip('\r\n'))
+               if self.fsm.current_state == "DEFCLASS":
+                       self.__closeComment()
+                       self.__flushBuffer()
+               f.close()
        
-       try:
-               content = f.read()
-               return content
-       finally:
-               f.close()
-
+       def parseLine(self, line):
+               """Parse one line of python and flush the resulting output to 
the 
+               outstream.
+               
+               @param  line    the python code line to parse
+               """
+               self.fsm.makeTransition(line)
+               self.__flushBuffer()
+       
 def optParse():
-       """ Parses commandline options. """
+       """Parses commandline options."""
        parser = OptionParser(prog=__applicationName__, version="%prog " + 
__version__)
        
        parser.set_usage("%prog [options] filename")
        parser.add_option("--autobrief",
                action="store_true", dest="autobrief",
-               help="Use the docstring summary line as \\brief description"
+               help="use the docstring summary line as \\brief description"
        )
+       parser.add_option("--debug",
+               action="store_true", dest="debug",
+               help="enable debug output on stderr"
+       )
        
        ## parse options
        global options
@@ -337,20 +403,12 @@
        return filename[0]
 
 def main():
-       """ Opens the file given as first commandline argument and processes it,
-               then prints out the processed file.
+       """Starts the parser on the file given by the filename as the first 
+       argument on the commandline.
        """
        filename = optParse()
-       
-       try:
-               input = loadFile(filename)
-       except IOError, (errno, msg):
-               print >>sys.stderr, msg
-               sys.exit(-1)
-       
        fsm = Doxypy()
-       output = fsm.parse(input)
-       print output
+       fsm.parseFile(filename)
 
 if __name__ == "__main__":
-       main()
\ No newline at end of file
+       main()

Modified: gnuradio/trunk/gnuradio-core/doc/other/group_defs.dox
===================================================================
--- gnuradio/trunk/gnuradio-core/doc/other/group_defs.dox       2009-01-05 
18:59:27 UTC (rev 10194)
+++ gnuradio/trunk/gnuradio-core/doc/other/group_defs.dox       2009-01-06 
02:00:34 UTC (rev 10195)
@@ -38,6 +38,14 @@
  * \defgroup synch Synchronization
  */
 
+/*!
+ * \defgroup packet Packetization
+ */
+
+/*!
+ * \defgroup logic Logical
+ */
+
 /*! @} */
 
 /*! \defgroup filter_design Digital Filter Design              */
@@ -83,4 +91,5 @@
 /*! @} */
 
 /*! \defgroup usrp USRP        */
+/*! \defgroup usrp2 USRP2      */
 /*! \defgroup hardware Hardware                                */





reply via email to

[Prev in Thread] Current Thread [Next in Thread]