From 634f0effcdd41edfaf14e69eb7759cbe25b2a29e Mon Sep 17 00:00:00 2001
From: rschoene <rene.schoene@tu-dresden.de>
Date: Thu, 12 May 2022 17:26:42 +0200
Subject: [PATCH] Add cloc

---
 cloc/.clocignore            |  0
 cloc/.gitignore             |  8 +++++++
 cloc/cloc-def-connect.txt   |  5 +++++
 cloc/cloc-def-flex.txt      |  4 ++++
 cloc/cloc-def-grammar.txt   |  5 +++++
 cloc/cloc-def-jrag-jadd.txt |  5 +++++
 cloc/cloc-def-parser.txt    |  4 ++++
 cloc/run-cloc.sh            | 43 +++++++++++++++++++++++++++++++++++++
 8 files changed, 74 insertions(+)
 create mode 100644 cloc/.clocignore
 create mode 100644 cloc/.gitignore
 create mode 100644 cloc/cloc-def-connect.txt
 create mode 100644 cloc/cloc-def-flex.txt
 create mode 100644 cloc/cloc-def-grammar.txt
 create mode 100644 cloc/cloc-def-jrag-jadd.txt
 create mode 100644 cloc/cloc-def-parser.txt
 create mode 100755 cloc/run-cloc.sh

diff --git a/cloc/.clocignore b/cloc/.clocignore
new file mode 100644
index 0000000..e69de29
diff --git a/cloc/.gitignore b/cloc/.gitignore
new file mode 100644
index 0000000..94a6352
--- /dev/null
+++ b/cloc/.gitignore
@@ -0,0 +1,8 @@
+my_definitions.txt
+*-result.txt
+acs.txt
+cfcs.txt
+trainbenchmark.file
+trainbenchmark.lang
+cats.txt
+ignored.txt
diff --git a/cloc/cloc-def-connect.txt b/cloc/cloc-def-connect.txt
new file mode 100644
index 0000000..a20ca00
--- /dev/null
+++ b/cloc/cloc-def-connect.txt
@@ -0,0 +1,5 @@
+Connect
+    filter call_regexp_common Java
+    extension connect
+    extension ragconnect
+    3rd_gen_scale 10
diff --git a/cloc/cloc-def-flex.txt b/cloc/cloc-def-flex.txt
new file mode 100644
index 0000000..4ac6dbb
--- /dev/null
+++ b/cloc/cloc-def-flex.txt
@@ -0,0 +1,4 @@
+Flex
+    filter remove_matches ^\s*//
+    extension flex
+    3rd_gen_scale 1.5
diff --git a/cloc/cloc-def-grammar.txt b/cloc/cloc-def-grammar.txt
new file mode 100644
index 0000000..0afc6b8
--- /dev/null
+++ b/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/cloc/cloc-def-jrag-jadd.txt b/cloc/cloc-def-jrag-jadd.txt
new file mode 100644
index 0000000..b5e3435
--- /dev/null
+++ b/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/cloc/cloc-def-parser.txt b/cloc/cloc-def-parser.txt
new file mode 100644
index 0000000..c3df675
--- /dev/null
+++ b/cloc/cloc-def-parser.txt
@@ -0,0 +1,4 @@
+Parser
+    filter remove_matches ^\s*//
+    extension parser
+    3rd_gen_scale 1.5
diff --git a/cloc/run-cloc.sh b/cloc/run-cloc.sh
new file mode 100755
index 0000000..53662ef
--- /dev/null
+++ b/cloc/run-cloc.sh
@@ -0,0 +1,43 @@
+#!/usr/bin/bash
+shopt -s globstar
+
+if [ ]
+then
+	:
+else
+
+# remove previous results
+rm *-result.txt
+
+#  --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="01-input-result.txt" --categorized=cats.txt --ignored=ignored.txt ../src/main/ja* 2>>cloc-errors.log
+
+# $CLOC_CMD --report-file=base-gen-result.txt ../ros3rag.base/src/gen 2>>cloc-errors.log
+$CLOC_CMD --report-file="02-gen-result.txt" ../src/gen 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
+# cat cfcs.txt
+
+# AC_CMD='grep -w 'syn'\|'inh''
+# # \|inh
+# echo "AC stats" > acs.txt
+# echo "base: $($AC_CMD ../trainbenchmark-tool-jastadd-base/src/main/jastadd/{Helpers.*,Enums.jadd} | wc -l)" >> acs.txt
+# cat acs.txt
+
+fi
+
+echo "LOC stats"
+echo "Language                     files          blank        comment           code"
+( for t in *-result.txt ; do echo -e "==> $t <=="; grep -v -e '---' -e 'SUM' -e 'Language' -e 'github' $t; done)
-- 
GitLab