summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
0f27e12)
* guile/mescc.scm: Support --help, --version.
* scripts/mescc.mes: Likewise.
* scripts/repl.mes: Likewise.
(let* ((files (cdr arguments))
(file (if (null? files) (string-append %docdir "examples/main.c")
(car files))))
(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)))
(with-input-from-file file
compile)))
# -*-scheme-*-
MES=${MES-$(dirname $0)/mes}
moduledir=module/
# -*-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)
#paredit:||
r=$?
([ -f a.out ] && chmod +x a.out)
;;LALR
;;(mes-use-module (language c compiler))
;;Nyacc
;;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))
(mes-use-module (mes guile))
(mes-use-module (language c99 compiler))
(define %version (if (string-prefix? "@VERSION" "@VERSION@") "git" "@VERSION@"))
(define (main arguments)
(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))
compile)))
(main (command-line))
#MES_ARENA=${MES_ARENA-30000000}
#export MES_ARENA
prefix=module/
#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 -- "$@"
;;; You should have received a copy of the GNU General Public License
;;; along with Mes. If not, see <http://www.gnu.org/licenses/>.
;;; 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))
(mes-use-module (mes syntax))
(mes-use-module (mes repl))