]> rtime.felk.cvut.cz Git - boost-statechart-viewer.git/blobdiff - www/index.mdwn
web: Update tested version
[boost-statechart-viewer.git] / www / index.mdwn
index cc433929955c49baa2f1add389b4c2e6069b06d5..d9a7e348824d293cf5e2c897886b5817804166e3 100644 (file)
@@ -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 <silhape2@fel.cvut.cz> <br>
-Michal Sojka  <sojkam1@fel.cvut.cz>
-
-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 <boost-statechart-viewer@rtime.felk.cvut.cz>.
 
 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]]