diff --git a/trainbenchmark/cloc/.gitignore b/trainbenchmark/cloc/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..c23149d43d0605af404b06376914060ee2bb7d30
--- /dev/null
+++ b/trainbenchmark/cloc/.gitignore
@@ -0,0 +1,6 @@
+my_definitions.txt
+*-result.txt
+acs.txt
+cfcs.txt
+trainbenchmark.file
+trainbenchmark.lang
diff --git a/trainbenchmark/cloc/cloc-def-flex.txt b/trainbenchmark/cloc/cloc-def-flex.txt
new file mode 100644
index 0000000000000000000000000000000000000000..4ac6dbb8da93e05d5b848dd5f8e8ed393c8b03c3
--- /dev/null
+++ b/trainbenchmark/cloc/cloc-def-flex.txt
@@ -0,0 +1,4 @@
+Flex
+    filter remove_matches ^\s*//
+    extension flex
+    3rd_gen_scale 1.5
diff --git a/trainbenchmark/cloc/cloc-def-grammar.txt b/trainbenchmark/cloc/cloc-def-grammar.txt
new file mode 100644
index 0000000000000000000000000000000000000000..0afc6b8ad9bb80c5a34d155d2ea35cd856e9d924
--- /dev/null
+++ b/trainbenchmark/cloc/cloc-def-grammar.txt
@@ -0,0 +1,5 @@
+Grammar
+    filter call_regexp_common Java
+    extension ast
+    extension relast
+    3rd_gen_scale 30
diff --git a/trainbenchmark/cloc/cloc-def-jrag-jadd.txt b/trainbenchmark/cloc/cloc-def-jrag-jadd.txt
new file mode 100644
index 0000000000000000000000000000000000000000..b5e3435ab068a9a83653808aa4e22aeb30c604fa
--- /dev/null
+++ b/trainbenchmark/cloc/cloc-def-jrag-jadd.txt
@@ -0,0 +1,5 @@
+Attributes
+    filter call_regexp_common Java
+    extension jrag
+    extension jadd
+    3rd_gen_scale 1.5
diff --git a/trainbenchmark/cloc/cloc-def-parser.txt b/trainbenchmark/cloc/cloc-def-parser.txt
new file mode 100644
index 0000000000000000000000000000000000000000..c3df6758e0c6ca76f3af52e0ebb7a455c73b25a5
--- /dev/null
+++ b/trainbenchmark/cloc/cloc-def-parser.txt
@@ -0,0 +1,4 @@
+Parser
+    filter remove_matches ^\s*//
+    extension parser
+    3rd_gen_scale 1.5
diff --git a/trainbenchmark/cloc/run-cloc.sh b/trainbenchmark/cloc/run-cloc.sh
new file mode 100755
index 0000000000000000000000000000000000000000..bb2dff2a42bce5c55c1889a49d4f46b59ed0c485
--- /dev/null
+++ b/trainbenchmark/cloc/run-cloc.sh
@@ -0,0 +1,59 @@
+#!/usr/bin/bash
+shopt -s globstar
+
+if [ ]
+then
+	:
+else
+
+#  --force-lang=Java,jrag --force-lang=Java,jadd
+DEF_FILE=my_definitions.txt
+echo "Export language definitions"
+cloc --write-lang-def="$DEF_FILE" 2>cloc-errors.log
+for f in cloc-def-*.txt;
+do
+	cat $f >> "$DEF_FILE"
+done
+echo "Running cloc with new definitions"
+#  --ignored=bad-files.txt
+CLOC_CMD="cloc --exclude-lang=JSON --read-lang-def=my_definitions.txt --exclude-list-file=.clocignore --quiet"
+$CLOC_CMD --report-file=base-result.txt ../trainbenchmark-tool-jastadd-base/src/main/jastadd/{Helpers.*,Enums.jadd} 2>>cloc-errors.log
+
+$CLOC_CMD --report-file=namelookup-result.txt ../trainbenchmark-tool-jastadd-namelookup-base/src/main/jastadd/*.j{add,rag} 2>>cloc-errors.log
+$CLOC_CMD --report-file=intrinsic-result.txt ../trainbenchmark-tool-jastadd-intrinsic-base/src/main/jastadd/*.j{add,rag} 2>>cloc-errors.log
+$CLOC_CMD --report-file=relrag-result.txt ../trainbenchmark-tool-jastadd-relast-base/src/main/jastadd/*.j{add,rag} 2>>cloc-errors.log
+
+$CLOC_CMD --report-file=namelookup-queries-result.txt ../trainbenchmark-tool-jastadd-namelookup-base/src/main/jastadd/queries 2>>cloc-errors.log
+$CLOC_CMD --report-file=intrinsic-queries-result.txt ../trainbenchmark-tool-jastadd-intrinsic-base/src/main/jastadd/queries 2>>cloc-errors.log
+$CLOC_CMD --report-file=relrag-queries-result.txt ../trainbenchmark-tool-jastadd-relast-base/src/main/jastadd/queries 2>>cloc-errors.log
+
+$CLOC_CMD --report-file=namelookup-transfo-result.txt ../trainbenchmark-tool-jastadd-namelookup/src/main/java-include/**/transformations/{inject,repair} 2>>cloc-errors.log
+$CLOC_CMD --report-file=intrinsic-transfo-result.txt ../trainbenchmark-tool-jastadd-intrinsic/src/main/java-include/**/transformations/{inject,repair} 2>>cloc-errors.log
+$CLOC_CMD --report-file=relrag-transfo-result.txt ../trainbenchmark-tool-jastadd-relast/src/main/java-include/**/transformations/{inject,repair} 2>>cloc-errors.log
+
+$CLOC_CMD --report-file=ser-namelookup-result.txt ../trainbenchmark-tool-jastadd-namelookup/src/main/java-include/de/tudresden/inf/st/train/jastadd/driver/deserializer/ASTNodeDeserializer.java 2>>cloc-errors.log
+$CLOC_CMD --report-file=ser-intrinsic-result.txt ../trainbenchmark-tool-jastadd-intrinsic/src/main/java-include/de/tudresden/inf/st/train/jastadd/driver/deserializer/ASTNodeDeserializer.java 2>>cloc-errors.log
+$CLOC_CMD --report-file=ser-relrag-manual-result.txt ../trainbenchmark-tool-jastadd-manual-relast/src/main/java/de/tudresden/inf/st/train/jastadd/driver/deserializer/ASTNodeDeserializer.java 2>>cloc-errors.log
+# $CLOC_CMD --report-file=ser-relrag-generated-result.txt ../trainbenchmark-tool-jastadd-relast/src/main/java 2>>cloc-errors.log
+# $CLOC_CMD --sum-reports --report_file=trainbenchmark namelookup-result.txt intrinsic-result.txt relrag-result.txt relrag-manual-result.txt relrag-generated-result.txt 2>>cloc-errors.log
+
+CFC_CMD="grep -o 'if\|for\|return'"
+echo "CFC stats" > cfcs.txt
+echo "base: $($CFC_CMD ../trainbenchmark-tool-jastadd-base/src/main/jastadd/{Helpers.*,Enums.jadd} | wc -l)" >> cfcs.txt
+echo "namelookup: $($CFC_CMD ../trainbenchmark-tool-jastadd-namelookup-base/src/main/jastadd/*.j{add,rag} | wc -l) + queries: $($CFC_CMD ../trainbenchmark-tool-jastadd-namelookup-base/src/main/jastadd/queries/* | wc -l)" >> cfcs.txt
+echo "intrinsic: $($CFC_CMD ../trainbenchmark-tool-jastadd-intrinsic-base/src/main/jastadd/*.j{add,rag} | wc -l) + queries: $($CFC_CMD ../trainbenchmark-tool-jastadd-intrinsic-base/src/main/jastadd/queries/* | wc -l)" >> cfcs.txt
+echo "relast: $($CFC_CMD ../trainbenchmark-tool-jastadd-relast-base/src/main/jastadd/*.j{add,rag} | wc -l) + queries: $($CFC_CMD ../trainbenchmark-tool-jastadd-relast-base/src/main/jastadd/queries/* | wc -l)" >> cfcs.txt
+cat cfcs.txt
+
+AC_CMD='grep -w 'syn''
+# \|inh
+echo "AC stats" > acs.txt
+echo "base: $($AC_CMD ../trainbenchmark-tool-jastadd-base/src/main/jastadd/{Helpers.*,Enums.jadd} | wc -l)" >> acs.txt
+echo "namelookup: $($AC_CMD ../trainbenchmark-tool-jastadd-namelookup-base/src/main/jastadd/*.j{add,rag} | wc -l) + queries: $($AC_CMD ../trainbenchmark-tool-jastadd-namelookup-base/src/main/jastadd/queries/* | wc -l)" >> acs.txt
+echo "intrinsic: $($AC_CMD ../trainbenchmark-tool-jastadd-intrinsic-base/src/main/jastadd/*.j{add,rag} | wc -l) + queries: $($AC_CMD ../trainbenchmark-tool-jastadd-intrinsic-base/src/main/jastadd/queries/* | wc -l)" >> acs.txt
+echo "relast: $($AC_CMD ../trainbenchmark-tool-jastadd-relast-base/src/main/jastadd/*.j{add,rag} | wc -l) + queries: $($AC_CMD ../trainbenchmark-tool-jastadd-relast-base/src/main/jastadd/queries/* | wc -l)" >> acs.txt
+cat acs.txt
+
+fi
+
+( for t in *-result.txt ; do echo -e "\n==> $t <=="; cat $t; done)