diff --git a/pages/.gitignore b/pages/.gitignore index f339871f77b2ce36f26c69920bccae8cee77f41f..b731620fdf8be028d30088f0df75e32b5068744c 100644 --- a/pages/.gitignore +++ b/pages/.gitignore @@ -1,3 +1,3 @@ /docs/ragdoc/ -__pycache__ /docs/cloc.md +__pycache__ diff --git a/pages/cloc/.clocignore b/pages/cloc/.clocignore new file mode 100644 index 0000000000000000000000000000000000000000..6be9eae9397330f2ed35619202932df433ce8bda --- /dev/null +++ b/pages/cloc/.clocignore @@ -0,0 +1 @@ +run-cloc.sh diff --git a/pages/cloc/.gitignore b/pages/cloc/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..2591dbfb5069d5010b8f0b40b18bf1a0a85cdb46 --- /dev/null +++ b/pages/cloc/.gitignore @@ -0,0 +1,10 @@ +files.csv +my_definitions.txt +ragconnect.base.lang +ragconnect.file +ragconnect.lang +ragconnect.base-*.md +ragconnect.base-*.txt +ragconnect.tests-*.md +ragconnect.tests-*.txt +tmp.json diff --git a/pages/cloc/cloc-def-connect.txt b/pages/cloc/cloc-def-connect.txt new file mode 100644 index 0000000000000000000000000000000000000000..a20ca00ecfd5c2377ea06a87ebda2c4731ac30a2 --- /dev/null +++ b/pages/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/pages/cloc/cloc-def-flex.txt b/pages/cloc/cloc-def-flex.txt new file mode 100644 index 0000000000000000000000000000000000000000..4ac6dbb8da93e05d5b848dd5f8e8ed393c8b03c3 --- /dev/null +++ b/pages/cloc/cloc-def-flex.txt @@ -0,0 +1,4 @@ +Flex + filter remove_matches ^\s*// + extension flex + 3rd_gen_scale 1.5 diff --git a/pages/cloc/cloc-def-grammar.txt b/pages/cloc/cloc-def-grammar.txt new file mode 100644 index 0000000000000000000000000000000000000000..0afc6b8ad9bb80c5a34d155d2ea35cd856e9d924 --- /dev/null +++ b/pages/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/pages/cloc/cloc-def-jrag-jadd.txt b/pages/cloc/cloc-def-jrag-jadd.txt new file mode 100644 index 0000000000000000000000000000000000000000..b5e3435ab068a9a83653808aa4e22aeb30c604fa --- /dev/null +++ b/pages/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/pages/cloc/cloc-def-parser.txt b/pages/cloc/cloc-def-parser.txt new file mode 100644 index 0000000000000000000000000000000000000000..c3df6758e0c6ca76f3af52e0ebb7a455c73b25a5 --- /dev/null +++ b/pages/cloc/cloc-def-parser.txt @@ -0,0 +1,4 @@ +Parser + filter remove_matches ^\s*// + extension parser + 3rd_gen_scale 1.5 diff --git a/pages/cloc/run-cloc.sh b/pages/cloc/run-cloc.sh new file mode 100755 index 0000000000000000000000000000000000000000..79308c9070e19ea9b6e77f26a9a343c9cca7117c --- /dev/null +++ b/pages/cloc/run-cloc.sh @@ -0,0 +1,77 @@ +#!/bin/bash +if [ "$1" == "-h" ] || [ "$1" == "--help" ]; then + echo "-s -> skip running cloc commands" + echo "-a -> produce files.csv with code count for single src files" + exit +fi +if [ "$1" != "-s" ]; then + # --force-lang=Java,jrag --force-lang=Java,jadd + DEF_FILE=my_definitions.txt + echo "Export language definitions" + cloc --quiet --write-lang-def="$DEF_FILE" + for f in cloc-def-*.txt; + do + cat $f >> "$DEF_FILE" + done + REPO_ROOT="../.." + CLOC_CMD="cloc --exclude-lang=JSON --read-lang-def=my_definitions.txt --exclude-list-file=.clocignore --quiet --hide-rate" + # --ignored=bad-files.txt + cloc_double() { + f=$1 + shift + echo "Creating $f.txt" + $CLOC_CMD --report-file="$f.txt" $@ + echo "Creating $f.md" + $CLOC_CMD --md --report-file=tmp.md $@ + tail -n+3 tmp.md > "$f.md" + rm tmp.md + } + make_page() { + echo "# Evaluation Metrics: Lines of Code" + echo + echo "## Manually written generator code" + echo + cat ragconnect.base-src-result.md + echo + echo "## Generated generator code" + cat ragconnect.base-gen-result.md + echo + echo "## Manually written test code" + cat ragconnect.tests-src-result.md + echo + echo "## Generated test code" + cat ragconnect.tests-gen-result.md + } +fi +if [ "$1" != "-s" ] && [ "$1" != "-a" ]; then + echo "Running cloc with new definitions" + cloc_double "ragconnect.base-src-result" --found=ragconnect.base-src-found.txt ${REPO_ROOT}/ragconnect.base/src/main/ + cloc_double "ragconnect.base-gen-result" --found=ragconnect.base-gen-found.txt ${REPO_ROOT}/ragconnect.base/src/gen/jastadd ${REPO_ROOT}/ragconnect.base/src/gen/java + cloc_double "ragconnect.tests-src-result" --found=ragconnect.tests-src-found.txt ${REPO_ROOT}/ragconnect.tests/src/test/01-input/ ${REPO_ROOT}/ragconnect.tests/src/test/java/ + cloc_double "ragconnect.tests-gen-result" --found=ragconnect.tests-gen-found.txt ${REPO_ROOT}/ragconnect.tests/src/test/02-after-ragconnect/ ${REPO_ROOT}/ragconnect.tests/src/test/java-gen + $CLOC_CMD --sum-reports --report_file=ragconnect ragconnect.base-src-result.txt ragconnect.base-gen-result.txt ragconnect.tests-src-result.txt ragconnect.tests-gen-result.txt + echo "Creating ../docs/cloc.md" + make_page > ../docs/cloc.md +fi +if [ "$1" == "-a" ]; then + echo "filename,code" > files.csv + for f in $(find ${REPO_ROOT}/ragconnect.base/src/main/ ${REPO_ROOT}/ragconnect.base/src/gen/jastadd-sources/ -type f); do + printf '.' + echo $f,$($CLOC_CMD --json $f | jq '.SUM.code') >> files.csv + done + echo + exit +fi + + +# cat ragconnect.base-src-result.txt +# cat ragconnect.base.file +# cat ragconnect.tests-result.txt + +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) + +echo +echo "Summary:" +grep -v -e '---' -e 'SUM' -e 'Language' -e 'github' ragconnect.file