From 56a0770ecb5faad915b75dc1184ce8c9f69b9ad2 Mon Sep 17 00:00:00 2001 From: raj_mathe Date: Sun, 9 May 2021 20:15:23 +0200 Subject: [PATCH] master > master: codego -> antlr.jar nicht synchronisieren --- codego/.gitignore | 1 - codego/run.sh | 24 ++++++++++++++++++++---- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/codego/.gitignore b/codego/.gitignore index 38df4b3..b6b0712 100644 --- a/codego/.gitignore +++ b/codego/.gitignore @@ -20,6 +20,5 @@ !/go.sum ## Für Erzeugung von Grammatiken: -!/grammars/antlr.jar !/grammars/README.md !/grammars/*.g4 diff --git a/codego/run.sh b/codego/run.sh index 5247e2f..44ac650 100755 --- a/codego/run.sh +++ b/codego/run.sh @@ -8,10 +8,25 @@ # HILFSMETHODEN ################################ +export NULL="/dev/null" +export ANTLR_VESION="4.7"; + function call_go() { go $@; } +function get_antlr() { + local url="http://www.antlr.org/download/antlr-${ANTLR_VESION}-complete.jar"; + ( wget $url ) >> $NULL 2> $NULL || (echo -e "[\033[91;1mERROR\033[0m] konnte \033[1;2mwget $url\033[0m nicht ausführen." && exit 1); + while read fname; do + if ! [ "$fname" == "" ] && [ -f "$fname" ]; then + echo -e "\033[92;1mANTLR\033[1m-${ANTLR_VESION}\033[0m wurde heruntergeladen und in \033[1mcodego/grammars\033[0m kopiert."; + mv "$fname" "grammars/antlr.jar" + break + fi + done <<< "$( ls antlr*.jar )" +} + function check_requirements() { [ -f "go.sum" ] && rm "go.sum"; call_go get "$( cat requirements )"; @@ -20,14 +35,15 @@ function check_requirements() { function precompile_grammars() { local fname; local name; - pushd grammars >> /dev/null; + ! [ -f "grammars/antlr.jar" ] && get_antlr; # <- lädt antl.jar herunter, wenn fehlt + pushd grammars >> $NULL; while read fname; do ( [ "$fname" == "" ] || ! [ -f "$fname" ] ) && continue; name="$( echo "$fname" | sed -E "s/^(.*)\.g4$/\1/g" )"; - echo -e "\033[92;1mANTLR4\033[0m präkompiliert Grammatik \033[1m${fname}\033[0m"; + echo -e "\033[92;1mANTLR\033[0m präkompiliert Grammatik \033[1m${fname}\033[0m"; java -jar antlr.jar -Dlanguage=Go "$fname" -o "$name"; - done <<< "$( ls *.g4 2> /dev/null )" - popd >> /dev/null + done <<< "$( ls *.g4 2> $NULL )" + popd >> $NULL; } function compile_programme() {