« Return to Thread: Splitting dot graphs

Re: Splitting dot graphs

by doc_savage :: Rate this Message:

| View in Thread

Thank you very much Budden!
I'm trying to use your filter as an input filter without using your added functionalities just to test it but I got a lot of error and a blank documentation output.
I'm running it on the windows version writing in the "INPUT_FILTER" field the relative path of your filter "filter/doxygen_preprocess.py":
that's a part of my doxyfile

EXAMPLE_RECURSIVE      = NO

# The IMAGE_PATH tag can be used to specify one or more files or
# directories that contain image that are included in the documentation (see
# the \image command).

IMAGE_PATH             =

# The INPUT_FILTER tag can be used to specify a program that doxygen should
# invoke to filter for each input file. Doxygen will invoke the filter program
# by executing (via popen()) the command <filter> <input-file>, where <filter>
# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
# input file. Doxygen will then use the output that the filter program writes
# to standard output.  If FILTER_PATTERNS is specified, this tag will be
# ignored.

INPUT_FILTER           = filter/doxygen_preprocess.py

# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern

I also tried this

INPUT_FILTER           = "\"python filter/doxygen_preprocess.py -f\""

but nothing
Do I have to do something different?
Do I have to install python or is embedded in doxygen?
Thanks a lot
Michele

A. S. Budden wrote:
2009/5/7 doc_savage <michele.corradin@socomec.com>:
>
> Thank you very much Budden,
> I would really appreciate! I modified some python filters I found on the net
> for other projects but they were just small modifications and I don't know
> how to start with it.

See attached.  By way of a disclaimer, it's rather hackish and has
been put together gradually with very little forward planning or other
aspects of "good software design".  I'm not especially proud of it,
but it works for me.  At the bottom of the file, there's a very simple
function called ReplaceTabs, which gives an example of how to
implement a trivial file filter:

The others [1] are built on state machines, but these are one of the
things that are more elegant in C than in python [2], so the code is a
bit nasty.  I'm also criminally guilty in this code of not having
commented the regular expressions.  When I get some time I'll try to
rewrite the filter in a more elegant and polished way; then I'll post
it on the web somewhere in case it's of use to others.  Alternatively,
I'll write a patch to doxygen I suppose... I wonder how difficult that
would be... hmm....

General syntax thoughts (off the top of my head) for the @statemachine
block in case you decide to use it (despite the code not being very
maintainable).

Starts and ends with @statemachine and @endstatemachine (nothing else
after this on the line).  Each case statement must have either 'Label
"something"' or 'Label OMIT'.  If there is only one following state,
you don't need anything else.  If there is a following state and you
may or may not go to it, use continue or return as the keywords, in
combination with the query as specified in the examples.  To change
the state variable (by default it is the 'something' in the 'switch
(something)' line), add a line straight after '@statemachine' that is
'@state mystatevar'.  This is useful in situations where every state
goes to an intermediate one before continuing (e.g. wait for a key to
be released).

Al

[1] EnhancedDot is the @statemachine handler, DotCombine allows you to
spread @dot blocks over multiple comment blocks and EnhancedTable
supports the neater table construction.
[2] In my opinion

 
------------------------------------------------------------------------------
The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your
production scanning environment may not be a perfect world - but thanks to
Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700
Series Scanner you'll get full speed at 300 dpi even with all image
processing features enabled. http://p.sf.net/sfu/kodak-com
_______________________________________________
Doxygen-users mailing list
Doxygen-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/doxygen-users

 « Return to Thread: Splitting dot graphs