From da768a9f129835b41a655a709fd7d288f4377626 Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Tue, 4 Apr 2017 09:53:05 +0200 Subject: [PATCH] scripts: Support --help, --version. * guile/mescc.scm: Support --help, --version. * scripts/mescc.mes: Likewise. * scripts/repl.mes: Likewise. --- guile/mescc.scm | 7 +++++++ scripts/mescc.mes | 23 ++++++++++++++++++----- scripts/repl.mes | 14 ++++++++++++-- 3 files changed, 37 insertions(+), 7 deletions(-) diff --git a/guile/mescc.scm b/guile/mescc.scm index 1aba0eac..364bfc50 100755 --- a/guile/mescc.scm +++ b/guile/mescc.scm @@ -53,5 +53,12 @@ GUILE='~/src/guile-1.8/build/pre-inst-guile --debug -q' guile/mescc.scm (let* ((files (cdr arguments)) (file (if (null? files) (string-append %docdir "examples/main.c") (car files)))) + (cond ((equal? file "--help") + (format (current-error-port) "Usage: mescc.scm [--help|--version|FILE] > a.out\n") + (exit 0)) + ((equal? file "--version") + (format (current-error-port) "mescc.scm (mes) ~a\n" %version) + (exit 0))) + (format (current-error-port) "compiling: ~a\n" file) (with-input-from-file file compile))) diff --git a/scripts/mescc.mes b/scripts/mescc.mes index df8ee96f..7052b76e 100755 --- a/scripts/mescc.mes +++ b/scripts/mescc.mes @@ -2,7 +2,7 @@ # -*-scheme-*- MES=${MES-$(dirname $0)/mes} moduledir=module/ -echo '()' | cat $moduledir/mes/base-0.mes $0 /dev/stdin | $MES $MES_FLAGS "$@" +echo '()' | cat $moduledir/mes/base-0.mes $0 /dev/stdin | $MES $MES_FLAGS -- "$@" #paredit:|| r=$? ([ -f a.out ] && chmod +x a.out) @@ -36,6 +36,16 @@ exit $r ;;LALR ;;(mes-use-module (language c compiler)) ;;Nyacc + +(let* ((files (cddr (command-line))) + (file (if (pair? files) (car files)))) + (cond ((equal? file "--help") + (format (current-error-port) "Usage: mescc.mes [--help|--version|FILE] > a.out\n") + (exit 0)) + ((equal? file "--version") + (format (current-error-port) "mescc.mes (mes) ~a\n" %version) + (exit 0)))) + (mes-use-module (mes guile)) (mes-use-module (language c99 compiler)) @@ -46,10 +56,13 @@ exit $r (define %version (if (string-prefix? "@VERSION" "@VERSION@") "git" "@VERSION@")) (define (main arguments) - (let* ((files (cdr arguments)) - (file (if (null? files) (string-append %docdir "examples/main.c") - (car files)))) - (with-input-from-file file + (let* ((mfiles (cddr arguments)) + (mfiles (if (or (null? mfiles) (not (equal? (car mfiles) "--"))) mfiles + (cdr mfiles))) + (mfile (if (null? mfiles) (string-append %docdir "examples/main.c") + (car mfiles)))) + (format (current-error-port) "compiling: ~a\n" mfile) + (with-input-from-file mfile compile))) (main (command-line)) diff --git a/scripts/repl.mes b/scripts/repl.mes index 3296f09f..d086e58f 100755 --- a/scripts/repl.mes +++ b/scripts/repl.mes @@ -4,7 +4,7 @@ MES=${MES-$(dirname $0)/mes} #MES_ARENA=${MES_ARENA-30000000} #export MES_ARENA prefix=module/ -cat $prefix/mes/base-0.mes $0 /dev/stdin | $MES $MES_FLAGS "$@" +cat $prefix/mes/base-0.mes $0 /dev/stdin | $MES $MES_FLAGS -- "$@" #paredit:| exit $? !# @@ -27,7 +27,17 @@ exit $? ;;; You should have received a copy of the GNU General Public License ;;; along with Mes. If not, see . -(mes-use-module (mes scm)) +(let* ((files (cdr (command-line))) + (file (if (pair? files) (car files))) + (file (if (and (equal? file "--") (pair? files) (pair? (cdr files))) (cadr files) file))) + (cond ((equal? file "--help") + (format (current-error-port) "Usage: repl.mes [--help|--version]\n") + (exit 0)) + ((equal? file "--version") + (format (current-error-port) "mescc.mes (mes) ~a\n" %version) + (exit 0)))) + +;;(mes-use-module (mes scm)) (mes-use-module (mes syntax)) (mes-use-module (mes repl)) -- 2.31.1