70 lines
1.1 KiB
Org Mode
70 lines
1.1 KiB
Org Mode
-*-mode:org-*-
|
|
* define-syntax and syntax-rules
|
|
** syntax.mes
|
|
** or psyntax.pp
|
|
** bugs
|
|
*** v c0.mes
|
|
*** v closure.mes
|
|
*** c1.mes
|
|
*** v using (let () ...) in macro.mes/syntax.mes
|
|
*** syntax.mes: closuring name? etc in syntax.mes
|
|
*** syntax.mes: closuring: indicators: eval: no such symbol: ---
|
|
*** <=, => take only 2 arguments
|
|
** run PEG
|
|
** parse C using PEG
|
|
http://piumarta.com/software/peg/
|
|
** 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
|