summaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
Diffstat (limited to 'utils')
-rwxr-xr-xutils/alex.sh11
-rwxr-xr-xutils/happy.sh11
2 files changed, 22 insertions, 0 deletions
diff --git a/utils/alex.sh b/utils/alex.sh
new file mode 100755
index 0000000000..5f9f24f080
--- /dev/null
+++ b/utils/alex.sh
@@ -0,0 +1,11 @@
+#!/usr/bin/env bash
+
+set -e
+
+rm -f "$3"
+F2=$(mktemp --suffix=".x")
+F3=$(mktemp --suffix=".hs")
+tail -n +2 "$2" > "$F2"
+alex -g --latin1 -o "$F3" "$F2"
+ghc -E "$F3" -o "$3" # needed because alex spits out ifdef WORDS_BIGENDIAN conditionals
+rm "$F2" "$F3"
diff --git a/utils/happy.sh b/utils/happy.sh
new file mode 100755
index 0000000000..093dd1977b
--- /dev/null
+++ b/utils/happy.sh
@@ -0,0 +1,11 @@
+#!/usr/bin/env bash
+
+set -e
+
+rm -f "$3"
+F2=$(mktemp --suffix=".y")
+F3=$(mktemp --suffix=".hs")
+cp "$2" "$F2" # needed because happy rejects files that do not have the .y extension
+happy -agc --strict --outfile="$F3" "$F2"
+ghc -E "$F3" -o "$3" # needed because happy spits out #if __GLASGOW_HASKELL__ >= 710 conditionals
+rm "$F2" "$F3"