mes.c: when reading `EOF', defer read control to program.
[mes.git] / TODO
1 -*-mode:org-*-
2 * define-syntax and syntax-rules
3 ** syntax.mes
4 Using define-macro-based version.
5 ** psyntax.pp
6 Find out how to hook-up sc-expand in eval/apply.
7 ** bugs
8 See bugs/
9 ** run PEG
10 *** Simple Guile test:
11     make guile-peg
12 *** PEG on Mes does not work yet:
13     make peg
14 **** v define-syntax-rule
15 **** v assq-ref
16 **** v assq-set!
17 **** datum->syntax
18 **** syntax->datum
19 **** syntax-case
20 ** parse C using PEG 
21 http://piumarta.com/software/peg/
22 ** C grammar in lex/yacc
23 https://github.com/rabishah/Mini-C-Compiler-using-Flex-And-Yacc
24 https://www.lysator.liu.se/c/ANSI-C-grammar-y.html
25 http://www2.cs.uidaho.edu/~jeffery/courses/nmsu/370/cgram.y
26 https://github.com/ProgramLeague/C-Compilerp
27 *** parsing in scheme
28 ftp://ftp.cs.indiana.edu/pub/scheme-repository/code/lang/cgram-ll1
29 ** Tiny C
30 https://en.wikipedia.org/wiki/Tiny_C_Compiler
31 ** Sub C
32 http://www.t3x.org/subc/index.html
33 **
34 https://groups.google.com/forum/#!topic/comp.lang.lisp/VPuX0VsjTTE
35 ** implement core primitives: DONE
36 begin
37 define
38 if
39 lambda
40 letrec
41 quote
42 set!
43 ** implement minimal needed for psyntax.pp: 
44 v "string"
45 v #(v e c t o r)
46 #\CHAR
47 v assq
48 v call-with-values
49 v char?
50 v for-each
51 v length
52 v list
53 v list->vector
54 v make-vector
55 v memq
56 v memv
57 v string
58 v string-append
59 v string?
60 v symbol?
61 v values
62 v vector
63 v vector->list
64 v vector-length
65 v vector-ref
66 v vector-set!
67 v vector? 
68 v procedure?
69 *** any, each?
70 *** hook-up sc-expand, see guile-1.0?: scheme:eval-transformer
71 *** implement extras: 
72 v (gensym)
73 ** implement minimal needed for define-macro-based define-syntax
74 v char?
75 v assq
76 v define-macro
77 v equal?
78 v member
79 v let loop
80 v nested define-macro
81 v nested define
82 v boolean?
83 v list?
84 v <=, >=
85 v string->symbol
86 v and
87 v or
88 v ,@ unquote-splicing