diff --git a/docs/flowchart/main_scxml_to_jani.gv b/docs/flowchart/main_scxml_to_jani.gv
new file mode 100644
index 00000000..24372864
--- /dev/null
+++ b/docs/flowchart/main_scxml_to_jani.gv
@@ -0,0 +1,84 @@
+digraph G {
+concentrate=true;
+splines="ortho";
+rankdir="LR";
+subgraph legend{
+ rank = min;
+ label = "legend";
+ Legend [shape=none, margin=0, label = <
+
| Code2flow Legend |
+
+ | Regular function | |
+ | Trunk function (nothing calls this) | |
+ | Leaf function (this calls nothing else) | |
+ | Function call | → |
+ |
+ >];
+}node_70803d0b [label="176: add_jani_property()" name="jani_model::JaniModel.add_jani_property" shape="rect" style="rounded,filled" fillcolor="#6db33f" ];
+node_256e0f1c [label="0: (global)()" name="main::(global)" shape="rect" style="rounded,filled" fillcolor="#966F33" ];
+node_a1efae00 [label="59: main_scxml_to_jani()" name="main::main_scxml_to_jani" shape="rect" style="rounded,filled" fillcolor="#cccccc" ];
+node_36290646 [label="72: convert_multiple_scxmls_to_jani()" name="scxml_to_jani::convert_multiple_scxmls_to_jani" shape="rect" style="rounded,filled" fillcolor="#cccccc" ];
+node_d3ef4dfe [label="108: preprocess_jani_expressions()" name="scxml_to_jani::preprocess_jani_expressions" shape="rect" style="rounded,filled" fillcolor="#cccccc" ];
+node_77ff91b2 [label="84: expand_members()" name="struct_definition::StructDefinition.expand_members" shape="rect" style="rounded,filled" fillcolor="#cccccc" ];
+node_9139c69f [label="259: export_plain_scxml_models()" name="top_level_interpreter::export_plain_scxml_models" shape="rect" style="rounded,filled" fillcolor="#cccccc" ];
+node_c10f528f [label="193: generate_plain_scxml_models_and_timers()" name="top_level_interpreter::generate_plain_scxml_models_and_timers" shape="rect" style="rounded,filled" fillcolor="#cccccc" ];
+node_fefaa4f0 [label="286: interpret_top_level_xml()" name="top_level_interpreter::interpret_top_level_xml" shape="rect" style="rounded,filled" fillcolor="#cccccc" ];
+node_faeff58b [label="97: parse_main_xml()" name="top_level_interpreter::parse_main_xml" shape="rect" style="rounded,filled" fillcolor="#cccccc" ];
+node_256e0f1c -> node_a1efae00 [color="#F0E442" penwidth="2"];
+node_a1efae00 -> node_fefaa4f0 [color="#000000" penwidth="2"];
+node_77ff91b2 -> node_77ff91b2 [color="#56B4E9" penwidth="2"];
+node_fefaa4f0 -> node_70803d0b [color="#000000" penwidth="2"];
+node_fefaa4f0 -> node_36290646 [color="#000000" penwidth="2"];
+node_fefaa4f0 -> node_d3ef4dfe [color="#000000" penwidth="2"];
+node_fefaa4f0 -> node_77ff91b2 [color="#000000" penwidth="2"];
+node_fefaa4f0 -> node_9139c69f [color="#000000" penwidth="2"];
+node_fefaa4f0 -> node_c10f528f [color="#000000" penwidth="2"];
+node_fefaa4f0 -> node_faeff58b [color="#000000" penwidth="2"];
+subgraph cluster_8eda4961 {
+ label="File: jani_model";
+ name="jani_model";
+ style="filled";
+ graph[style=dotted];
+ subgraph cluster_0431ce20 {
+ node_70803d0b;
+ label="Class: JaniModel";
+ name="JaniModel";
+ style="filled";
+ graph[style=dotted];
+ };
+};
+subgraph cluster_14e33554 {
+ node_a1efae00 node_256e0f1c;
+ label="File: main";
+ name="main";
+ style="filled";
+ graph[style=dotted];
+};
+subgraph cluster_6dd9483b {
+ node_36290646 node_d3ef4dfe;
+ label="File: scxml_to_jani";
+ name="scxml_to_jani";
+ style="filled";
+ graph[style=dotted];
+};
+subgraph cluster_e700bafc {
+ label="File: struct_definition";
+ name="struct_definition";
+ style="filled";
+ graph[style=dotted];
+ subgraph cluster_bb5376bd {
+ node_77ff91b2;
+ label="Class: StructDefinition";
+ name="StructDefinition";
+ style="filled";
+ graph[style=dotted];
+ };
+};
+subgraph cluster_1dad82a2 {
+ node_faeff58b node_c10f528f node_9139c69f node_fefaa4f0;
+ label="File: top_level_interpreter";
+ name="top_level_interpreter";
+ style="filled";
+ graph[style=dotted];
+};
+}
diff --git a/docs/flowchart/main_scxml_to_jani.svg b/docs/flowchart/main_scxml_to_jani.svg
new file mode 100644
index 00000000..574ed634
--- /dev/null
+++ b/docs/flowchart/main_scxml_to_jani.svg
@@ -0,0 +1,193 @@
+
+
+
+
+
diff --git a/docs/flowchart/requirements.txt b/docs/flowchart/requirements.txt
new file mode 100644
index 00000000..d45a05f7
--- /dev/null
+++ b/docs/flowchart/requirements.txt
@@ -0,0 +1 @@
+code2flow==2.5.1
diff --git a/docs/flowchart/run.sh b/docs/flowchart/run.sh
new file mode 100755
index 00000000..3921c0ce
--- /dev/null
+++ b/docs/flowchart/run.sh
@@ -0,0 +1,9 @@
+#!/usr/bin/sh
+AS2FM_PKG=../../src/as2fm
+
+code2flow \
+-o main_scxml_to_jani.svg \
+--target-function main_scxml_to_jani \
+--upstream-depth 2 \
+--downstream-depth 2 \
+$AS2FM_PKG/*