Prepare for 0.1 release: installable scripts.
authorJan Nieuwenhuizen <janneke@gnu.org>
Sun, 16 Oct 2016 06:00:04 +0000 (08:00 +0200)
committerJan Nieuwenhuizen <janneke@gnu.org>
Sun, 16 Oct 2016 06:00:04 +0000 (08:00 +0200)
* scripts/mes: New symlink.
* scripts/elf.mes: Use it.
* scripts/mescc.mes: Likewise, read all mes modules with include.mes.
* scripts/paren.mes: Likewise.
* scripts/repl.mes: Likewise.

scripts/elf.mes
scripts/include.mes
scripts/mes [new symlink]
scripts/mescc.mes
scripts/paren.mes
scripts/repl.mes

index 2199c764b49e319146e65c98273b9976bfc66e19..1abf5975183d41127d02caf965061cc1ce7f8f1d 100755 (executable)
@@ -1,6 +1,6 @@
 #! /bin/sh
 # -*-scheme-*-
-cat $($(dirname $0)/include.mes $0) $0 /dev/stdin | ./mes > a.out
+cat $($(dirname $0)/include.mes $0) $0 /dev/stdin | $(dirname $0)/mes > a.out
 chmod +x a.out
 exit $?
 !#
index b0f957769da6e58a5a8541644d75cb567a9c1779..473f50b6ab2b99f4529a8d93e10035c147fd5aad 100755 (executable)
@@ -1,6 +1,11 @@
 #! /bin/sh
 
+for prefix in $(dirname $(dirname $0))/share/mes . $(dirname $(dirname $0)); do
+    if [ -d ${prefix}/module ]; then
+        break;
+    fi
+done
 cat $1 \
   | grep -Eo '(mes-use-module \([^()]+ [^()]+))' \
   | grep -Eo ' \([^)]+\)' \
-  | sed -e 's@^ *(@module/@' -e 's@ @/@g' -e 's@)@.mes@'
+  | sed -e "s@^ *(@${prefix}/module/@" -e 's@ @/@g' -e 's@)@.mes@'
diff --git a/scripts/mes b/scripts/mes
new file mode 120000 (symlink)
index 0000000..f12ecee
--- /dev/null
@@ -0,0 +1 @@
+../mes
\ No newline at end of file
index 4afb8c341bd4a8d694ae5018f556dc3b930c4a82..254348f017658f1d0e231b912eb2a4ef6bc38d8c 100755 (executable)
@@ -1,6 +1,6 @@
 #! /bin/sh
 # -*-scheme-*-
-cat cc/main.c | cat $($(dirname $0)/include.mes $0) cc/c-lexer.mes cc/mescc.mes $0 /dev/stdin | ./mes > a.out
+cat ${1-$(dirname $(dirname $0))/share/doc/mes/examples/main.c} | cat $($(dirname $0)/include.mes $0) $0 /dev/stdin | $(dirname $0)/mes > a.out
 chmod +x a.out
 exit $?
 !#
@@ -29,7 +29,7 @@ exit $?
 ;;;
 ;;; Run with Guile:
 ;;;    make guile-mescc
-;;; BROKEN? cat cc/main.c | guile -s <(echo '(compile)' | cat guile/mes-0.scm module/mes/lalr.mes module/rnrs/bytevectors.mes module/srfi/srfi-1.mes module/mes/elf.mes module/mes/libc-i386.mes cc/c-lexer.mes cc/mescc.mes -)
+;;; BROKEN? cat doc/examples/main.c | guile -s <(echo '(compile)' | cat guile/mes-0.scm module/mes/lalr.mes module/mes/elf.mes module/mes/libc-i386.mes module/rnrs/bytevectors.mes module/language/c/lexer.mes module/language/c/parser.mes module/language/c/compiler.mes -)
 
 ;;; Code:
 
@@ -54,5 +54,9 @@ exit $?
 (mes-use-module (mes elf))
 (mes-use-module (mes libc-i386))
 
+(mes-use-module (language c lexer))
+(mes-use-module (language c parser))
+(mes-use-module (language c compiler))
+
 (compile)
 ()
index 7b507e3e4b4099a762fe181cb486831d0cebb797..79510ae100afade56ef4aa50f15cc39df333f08a 100755 (executable)
@@ -1,6 +1,6 @@
 #! /bin/sh
 # -*-scheme-*-
-echo -e 'EOF\n___P((()))' | cat $($(dirname $0)/include.mes $0) cc/paren.mes $0 /dev/stdin | ./mes
+echo -e 'EOF\n___P((()))' | cat $($(dirname $0)/include.mes $0) $0 /dev/stdin | $(dirname $0)/mes
 chmod +x a.out
 exit $?
 !#
@@ -30,7 +30,7 @@ exit $?
 ;;; Gambit wiki.
 ;;;
 ;;; Run with Guile:
-;;;    echo '___P((()))' | guile -s <(echo '(paren-depth)' | cat cc/paren.mes -)
+;;;    echo '___P((()))' | guile -s <(echo '(paren-depth)' | cat module/language/paren.mes -)
 
 ;;; Code:
 
@@ -46,6 +46,7 @@ exit $?
 (mes-use-module (srfi srfi-9))
 (mes-use-module (mes lalr-0))
 (mes-use-module (mes lalr))
+(mes-use-module (language paren))
 
 (paren-depth)
 ()
index f1c1f10bcb0361d255c0d2094e83ace162a8093b..6e6d893e628af73af4cc51455d7ac438a4ac70b9 100755 (executable)
@@ -1,6 +1,6 @@
 #! /bin/sh
 # -*-scheme-*-
-cat $($(dirname $0)/include.mes $0) $0 /dev/stdin | ./mes
+cat $($(dirname $0)/include.mes $0) $0 /dev/stdin | $(dirname $0)/mes
 exit $?
 !#