Resurrect guile-mescc with guile-2.1.5.
* scripts/include.mes: Grep all files. * GNUmakefile (mescc.cat): Update for mes-use-module; list all toplevel inputs. * module/language/c/lexer.mes: Use (system base lalr). * module/language/c/parser.mes: Likewise. * module/language/c/compiler.mes: Likewise. Remove encoding on output port. * scripts/mescc.mes: Remove BROKEN comment.
This commit is contained in:
parent
a36896662e
commit
d4dc29c498
14
GNUmakefile
14
GNUmakefile
|
@ -4,6 +4,8 @@ default: all
|
|||
.config.make: configure GNUmakefile
|
||||
./configure
|
||||
|
||||
GUILE:=guile
|
||||
export GUILE
|
||||
OUT:=out
|
||||
CFLAGS:=-std=c99 -O3 -finline-functions
|
||||
#CFLAGS:=-std=c99 -O0
|
||||
|
@ -88,16 +90,18 @@ guile-check:
|
|||
|
||||
MAIN_C:=doc/examples/main.c
|
||||
mescc: all
|
||||
rm -f a.out
|
||||
scripts/mescc.mes $(MAIN_C)
|
||||
./a.out
|
||||
./a.out; r=$$?; [ $$r = 42 ]
|
||||
|
||||
mescc.cat: $(MES-0) module/mes/lalr.mes module/mes/elf.mes module/mes/libc-i386.mes $(shell scripts/include.mes scripts/mescc.mes | grep -Ev '/mes/|/srfi/')
|
||||
echo '(compile)' | cat $^ - > $@
|
||||
mescc.cat: all $(MES-0) module/rnrs/bytevectors.mes module/mes/elf.mes module/mes/libc-i386.mes module/language/c/lexer.mes module/language/c/parser.mes module/language/c/compiler.mes
|
||||
echo '(compile)' | cat $(filter %.scm %.mes, $^) - > $@
|
||||
|
||||
guile-mescc: mescc.cat
|
||||
cat $(MAIN_C) | guile -s $^ > a.out
|
||||
rm -f a.out
|
||||
cat $(MAIN_C) | $(GUILE) -s $^ > a.out
|
||||
chmod +x a.out
|
||||
./a.out
|
||||
./a.out; r=$$?; [ $$r = 42 ]
|
||||
|
||||
paren: all
|
||||
scripts/paren.mes
|
||||
|
|
|
@ -4,5 +4,5 @@ int main ()
|
|||
puts ("Hi Mes!\n");
|
||||
for (i = 0; i < 4; ++i)
|
||||
puts (" Hello, world!\n");
|
||||
return 1;
|
||||
return 42;
|
||||
}
|
||||
|
|
|
@ -25,6 +25,15 @@
|
|||
|
||||
;;; Code:
|
||||
|
||||
(cond-expand
|
||||
(guile
|
||||
(use-modules (srfi srfi-1))
|
||||
(use-modules (system base lalr))
|
||||
(use-modules (ice-9 match))
|
||||
(set-port-encoding! (current-output-port) "ISO-8859-1"))
|
||||
(mes
|
||||
(mes-use-module (mes lalr))))
|
||||
|
||||
(mes-use-module (mes elf))
|
||||
(mes-use-module (mes libc-i386))
|
||||
(mes-use-module (mes match))
|
||||
|
|
|
@ -55,6 +55,7 @@
|
|||
|
||||
(cond-expand
|
||||
(guile
|
||||
(use-modules (system base lalr))
|
||||
;; (use-modules (ice-9 rdelim))
|
||||
|
||||
(define (syntax-error what loc form . args)
|
||||
|
|
|
@ -27,10 +27,7 @@
|
|||
|
||||
(cond-expand
|
||||
(guile
|
||||
;;(use-modules (srfi srfi-1))
|
||||
(use-modules (system base lalr))
|
||||
;;(use-modules (ice-9 match))
|
||||
)
|
||||
(use-modules (system base lalr)))
|
||||
(mes
|
||||
(mes-use-module (mes lalr))))
|
||||
|
||||
|
|
|
@ -17,7 +17,7 @@ if [ -n "$BOOT" ]; then
|
|||
fi
|
||||
echo $prefix/module/mes/mes-0.mes
|
||||
fi
|
||||
cat $1 \
|
||||
cat $@ \
|
||||
| grep -Eo '^\(mes-use-module \([^ ()]+ [^()]+))' \
|
||||
| grep -Eo ' \([^)]+\)' \
|
||||
| sed -e "s@^ *(@${prefix}/module/@" -e 's@ @/@g' -e 's@)@.mes@'
|
||||
|
|
|
@ -30,7 +30,6 @@ exit $?
|
|||
;;;
|
||||
;;; Run with Guile:
|
||||
;;; make guile-mescc
|
||||
;;; 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:
|
||||
|
||||
|
|
Loading…
Reference in a new issue