TODO/HACKING: update: lalr/paren.scm runs.
[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 LALR
21 *** v get LALR running paren.scm
22 *** Translate cgram.y into lalr, generate AST
23 ** parse C using PEG 
24 http://piumarta.com/software/peg/
25 ** C grammar in lex/yacc
26 https://github.com/rabishah/Mini-C-Compiler-using-Flex-And-Yacc
27 https://www.lysator.liu.se/c/ANSI-C-grammar-y.html
28 http://www2.cs.uidaho.edu/~jeffery/courses/nmsu/370/cgram.y
29 https://github.com/ProgramLeague/C-Compilerp
30 *** parsing in scheme
31 ftp://ftp.cs.indiana.edu/pub/scheme-repository/code/lang/cgram-ll1
32 ** Tiny C
33 https://en.wikipedia.org/wiki/Tiny_C_Compiler
34 ** Sub C
35 http://www.t3x.org/subc/index.html
36 **
37 https://groups.google.com/forum/#!topic/comp.lang.lisp/VPuX0VsjTTE
38 ** implement core primitives: DONE
39 begin
40 define
41 if
42 lambda
43 letrec
44 quote
45 set!
46 ** implement minimal needed for psyntax.pp: 
47 v "string"
48 v #(v e c t o r)
49 #\CHAR
50 v assq
51 v call-with-values
52 v char?
53 v for-each
54 v length
55 v list
56 v list->vector
57 v make-vector
58 v memq
59 v memv
60 v string
61 v string-append
62 v string?
63 v symbol?
64 v values
65 v vector
66 v vector->list
67 v vector-length
68 v vector-ref
69 v vector-set!
70 v vector? 
71 v procedure?
72 *** any, each?
73 *** hook-up sc-expand, see guile-1.0?: scheme:eval-transformer
74 *** implement extras: 
75 v (gensym)
76 ** implement minimal needed for define-macro-based define-syntax
77 v char?
78 v assq
79 v define-macro
80 v equal?
81 v member
82 v let loop
83 v nested define-macro
84 v nested define
85 v boolean?
86 v list?
87 v <=, >=
88 v string->symbol
89 v and
90 v or
91 v ,@ unquote-splicing