From 323e78b190c196614ba56095a46211deb02b9040 Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Sun, 16 Oct 2016 08:00:04 +0200 Subject: [PATCH] Prepare for 0.1 release: installable scripts. * 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 | 2 +- scripts/include.mes | 7 ++++++- scripts/mes | 1 + scripts/mescc.mes | 8 ++++++-- scripts/paren.mes | 5 +++-- scripts/repl.mes | 2 +- 6 files changed, 18 insertions(+), 7 deletions(-) create mode 120000 scripts/mes diff --git a/scripts/elf.mes b/scripts/elf.mes index 2199c764..1abf5975 100755 --- a/scripts/elf.mes +++ b/scripts/elf.mes @@ -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 $? !# diff --git a/scripts/include.mes b/scripts/include.mes index b0f95776..473f50b6 100755 --- a/scripts/include.mes +++ b/scripts/include.mes @@ -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 index 00000000..f12eceec --- /dev/null +++ b/scripts/mes @@ -0,0 +1 @@ +../mes \ No newline at end of file diff --git a/scripts/mescc.mes b/scripts/mescc.mes index 4afb8c34..254348f0 100755 --- a/scripts/mescc.mes +++ b/scripts/mescc.mes @@ -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) () diff --git a/scripts/paren.mes b/scripts/paren.mes index 7b507e3e..79510ae1 100755 --- a/scripts/paren.mes +++ b/scripts/paren.mes @@ -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) () diff --git a/scripts/repl.mes b/scripts/repl.mes index f1c1f10b..6e6d893e 100755 --- a/scripts/repl.mes +++ b/scripts/repl.mes @@ -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 $? !#