scripts: Support --help, --version.

* guile/mescc.scm: Support --help, --version.
* scripts/mescc.mes: Likewise.
* scripts/repl.mes: Likewise.
This commit is contained in:
Jan Nieuwenhuizen 2017-04-04 09:53:05 +02:00
parent 0f27e12672
commit da768a9f12
3 changed files with 37 additions and 7 deletions

View file

@ -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)))

View file

@ -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))

View file

@ -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))