1 [[!meta title="Boost Statechart Viewer"]]
6 Boost-statechart-viewer is a program for visualization state state
7 machines written in C++ with [boost][boost]/[statechart][statechart]
8 library. The program itself is written in C++ and uses [clang][clang]
9 from [LLVM][llvm] project for analyzing the source code.
11 [boost]: http://www.boost.org/
12 [statechart]: http://www.boost.org/doc/libs/1_46_1/libs/statechart/doc/index.html
13 [clang]: http://clang.llvm.org/
14 [llvm]: http://llvm.org/
19 Petr Silhavik <silhape2@fel.cvut.cz> <br>
20 Michal Sojka <sojkam1@fel.cvut.cz>
23 and correctly working program is necessary to have LLVM and clang
30 - The program can found states and transitions in the source code.
31 - The program understands all options and flags as the compilers (gcc, clang, ...).
32 - State machines can be defined in more than one file.
33 - Now it doesn't support orthogonal states.
34 - The state machine can be inside many namespaces, but not inside templates.
39 The program can be used almost the same way as a C compiler. You will
40 typically need to specify locations for all header files except of the
41 files stored in system folder(in Linux: /usr/...) using `-I` option.
42 Of course you can specify the output filename (`-o` option). Program
43 displays all diagnostic messages like compilers. If an error occurs
46 ####Example of command line invocation:
48 ./visualizer main.cpp -o graph.dot -I /home/petr/install/
50 The output file can be transformed into the picture using classical
51 dot commands (e.g. `dot -Tpng graph.dot -o graph.png`) . The initial
52 state is double outlined. Each transition has a label with the name of
58 Boost statechart viewer can be downloaded from GIT repository.
60 git clone git://rtime.felk.cvut.cz/boost-statechart-viewer.git
62 You can also browse the [repository online][1].
70 [[Source code|test.cpp]]
74 [[Source code|StopWatch.cpp]]
78 [[Source code|StopWatch.cpp]]
82 [[Source code|big_sm.tar.gz]]
84 [1]: http://rtime.felk.cvut.cz/gitweb/boost-statechart-viewer.git