X-Git-Url: http://rtime.felk.cvut.cz/gitweb/boost-statechart-viewer.git/blobdiff_plain/e28872140b46be267b4267c2dce615a580040c77..3307717050e30165fe3f6464a5228aec3a7e74d7:/www/index.mdwn diff --git a/www/index.mdwn b/www/index.mdwn index cc43392..d9a7e34 100644 --- a/www/index.mdwn +++ b/www/index.mdwn @@ -3,55 +3,63 @@ Overview --------- -Boost-statechart-viewer is a program for visualization state state +Boost-statechart-viewer is a program for visualization of state machines written in C++ with [boost][boost]/[statechart][statechart] library. The program itself is written in C++ and uses [clang][clang] -from [LLVM][llvm] project for analyzing the source code. +from [LLVM][llvm] project for analyzing the source code. This program +is released under the GNU GPL license. [boost]: http://www.boost.org/ [statechart]: http://www.boost.org/doc/libs/1_46_1/libs/statechart/doc/index.html [clang]: http://clang.llvm.org/ [llvm]: http://llvm.org/ +NEWS +----- +- 2014-03-10 Updated to work with clang/llvm 3.3 and 3.4. Thanks Jan Rueegg. +- 2013-05-16 Script for generating is able to work with more source files and treat them as one state machine. +- 2013-04-05 The program is working with LLVM and Clang version 3.0 or higher +- 2012-07-11 We have got a new [mailing list][list]. + Authors -------- -Petr Silhavik
-Michal Sojka - -For compiling -and correctly working program is necessary to have LLVM and clang -version 2.9. +[list]: https://rtime.felk.cvut.cz/mailman/listinfo/boost-statechart-viewer +Petr Silhavik, Michal Sojka. You can contact us using a +[mailing list][list] at . Status ------- - The program can found states and transitions in the source code. -- The program understands all options and flags as the compilers (gcc, clang, ...). +- The program understands all options and flags as the compilers (gcc, clang, ...). The syntax analysis is done by compiler clang. - State machines can be defined in more than one file. -- Now it doesn't support orthogonal states. -- The state machine can be inside many namespaces, but not inside templates. +- All states and their implementations must be directly accesible from file that is used as input for viewer. +- Program provides diagnostics of state machines eg. event usage, missing typedefs for reactions. + +For compiling and correctly working program it is necessary to have +LLVM and clang version 3.3 or higher. + Usage ------ -The program can be used almost the same way as a C compiler. You will -typically need to specify locations for all header files except of the -files stored in system folder(in Linux: /usr/...) using `-I` option. -Of course you can specify the output filename (`-o` option). Program -displays all diagnostic messages like compilers. If an error occurs -the program stops. +The program is plugin for compiler clang. The produced output file has the same name as the input file with source code. +It is also possible to use script that also produces the state diagram in format pdf. It can be also found in repository. +This script is able to work with more C++ files and treat them as one state machine. This option can be accesed by using -link as first parameter. The other parameters should be all files that are used for compilation of state machines (e.g. *.cpp, *.cc). If this option is not used state diagram is generated for all files independently. ####Example of command line invocation: - ./visualizer main.cpp -o graph.dot -I /home/petr/install/ + clang++ -Xclang -load -Xclang visualizer.so -Xclang -plugin -Xclang visualize-statechart -c file.cpp The output file can be transformed into the picture using classical -dot commands (e.g. `dot -Tpng graph.dot -o graph.png`) . The initial +[dot][graphviz] commands (e.g. `dot -Tpng graph.dot -o graph.png`) . The initial state is double outlined. Each transition has a label with the name of the triggering event. +[graphviz]: http://www.graphviz.org/ + Download: --------- @@ -74,8 +82,11 @@ Gallery [[Source code|StopWatch.cpp]] ### Camera + - Camera example from boost statechart library + - State Storing is red because it has no typedef for reactions and it can be error produced by programmer + [[camera.png]] -[[Source code|StopWatch.cpp]] +[[Source code|camera.tar.gz]] ### Big [[big.png]]