scripts: Support --help, --version.
authorJan Nieuwenhuizen <janneke@gnu.org>
Tue, 4 Apr 2017 07:53:05 +0000 (09:53 +0200)
committerJan Nieuwenhuizen <janneke@gnu.org>
Tue, 4 Apr 2017 07:53:05 +0000 (09:53 +0200)
* guile/mescc.scm: Support --help, --version.
* scripts/mescc.mes: Likewise.
* scripts/repl.mes: Likewise.

guile/mescc.scm
scripts/mescc.mes
scripts/repl.mes

index 1aba0eacc133286ba19d10022aff2b0c43ce75a7..364bfc50a99d686450538ba6928cdd403fe7fe65 100755 (executable)
@@ -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)))
index df8ee96f9a8f9ba3f07374b879e0254402d1972d..7052b76e1079713a6e2577118d88e626064aa567 100755 (executable)
@@ -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))
index 3296f09f0896cf9459a7463ead0560d439e48f1b..d086e58fd85106d902d7028fb9d15fe69608d4e0 100755 (executable)
@@ -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 <http://www.gnu.org/licenses/>.
 
-(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))