-*-mode:org-*- * minimal bootstrap binary, via Scheme, into C compiler/linker ** match *** let-syntax ** define-syntax and syntax-rules *** syntax.mes **** now syntax-cond.mes --> syntax-if.mes Using define-macro-based version. ** psyntax.pp Find out how to hook-up sc-expand in eval/apply. ** make core smaller *** replase mes.c:quasiquote by qq.mes *** cleanup environment/closures ** make core faster ** bugs See bugs/ ** run PEG *** Simple Guile test: make guile-peg *** PEG on Mes does not work yet: make peg **** v define-syntax-rule **** v assq-ref **** v assq-set! **** datum->syntax **** syntax->datum **** syntax-case ** parse C using LALR *** v get LALR running paren.scm *** Translate cgram.y into lalr, generate AST ** parse C using PEG http://piumarta.com/software/peg/ ** C grammar in lex/yacc https://github.com/rabishah/Mini-C-Compiler-using-Flex-And-Yacc https://www.lysator.liu.se/c/ANSI-C-grammar-y.html http://www2.cs.uidaho.edu/~jeffery/courses/nmsu/370/cgram.y https://github.com/ProgramLeague/C-Compilerp *** parsing in scheme ftp://ftp.cs.indiana.edu/pub/scheme-repository/code/lang/cgram-ll1 ** Tiny C https://en.wikipedia.org/wiki/Tiny_C_Compiler ** Sub C http://www.t3x.org/subc/index.html ** https://groups.google.com/forum/#!topic/comp.lang.lisp/VPuX0VsjTTE ** implement core primitives: DONE begin define if lambda letrec quote set! ** implement minimal needed for psyntax.pp: v "string" v #(v e c t o r) #\CHAR v assq v call-with-values v char? v for-each v length v list v list->vector v make-vector v memq v memv v string v string-append v string? v symbol? v values v vector v vector->list v vector-length v vector-ref v vector-set! v vector? v procedure? *** any, each? *** hook-up sc-expand, see guile-1.0?: scheme:eval-transformer *** implement extras: v (gensym) ** implement minimal needed for define-macro-based define-syntax v char? v assq v define-macro v equal? v member v let loop v nested define-macro v nested define v boolean? v list? v <=, >= v string->symbol v and v or v ,@ unquote-splicing