mes/TODO

100 lines
2.0 KiB
Plaintext
Raw Normal View History

2016-07-10 14:31:45 +01:00
-*-mode:org-*-
2016-09-25 11:50:00 +01:00
* 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
2016-09-25 11:50:00 +01:00
** make core faster
2016-07-17 14:00:47 +01:00
** bugs
See bugs/
2016-07-17 14:00:47 +01:00
** run PEG
2016-07-23 00:38:25 +01:00
*** 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
2016-07-17 14:00:47 +01:00
** parse C using PEG
http://piumarta.com/software/peg/
2016-07-23 13:39:33 +01:00
** 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
2016-07-10 14:31:45 +01:00
** implement core primitives: DONE
begin
define
if
lambda
letrec
quote
set!
2016-07-17 14:00:47 +01:00
** implement minimal needed for psyntax.pp:
2016-07-10 21:43:23 +01:00
v "string"
2016-07-11 09:38:02 +01:00
v #(v e c t o r)
2016-07-10 14:31:45 +01:00
#\CHAR
2016-07-11 09:48:25 +01:00
v assq
2016-07-11 18:32:11 +01:00
v call-with-values
2016-07-10 23:15:28 +01:00
v char?
2016-07-17 21:35:00 +01:00
v for-each
2016-07-10 23:21:45 +01:00
v length
2016-07-10 23:15:28 +01:00
v list
2016-07-11 09:38:02 +01:00
v list->vector
v make-vector
2016-07-11 10:05:17 +01:00
v memq
v memv
2016-07-10 23:15:28 +01:00
v string
2016-07-10 21:43:23 +01:00
v string-append
v string?
2016-07-10 23:15:28 +01:00
v symbol?
2016-07-11 18:32:11 +01:00
v values
2016-07-11 09:38:02 +01:00
v vector
v vector->list
v vector-length
v vector-ref
v vector-set!
v vector?
2016-07-11 21:16:11 +01:00
v procedure?
2016-07-17 21:35:00 +01:00
*** any, each?
*** hook-up sc-expand, see guile-1.0?: scheme:eval-transformer
*** implement extras:
v (gensym)
2016-07-17 14:00:47 +01:00
** implement minimal needed for define-macro-based define-syntax
v char?
v assq
v define-macro
2016-07-17 21:35:00 +01:00
v equal?
v member
2016-07-17 14:00:47 +01:00
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