initial
This commit is contained in:
33
sexc.scm
Normal file
33
sexc.scm
Normal file
@@ -0,0 +1,33 @@
|
||||
(import brev-separate fmt fmt-c tree (chicken string))
|
||||
|
||||
(define (unkebabify sym)
|
||||
(string->symbol
|
||||
(string-translate (symbol->string sym) #\- #\_)))
|
||||
|
||||
(define (loop)
|
||||
(let ((r (read)))
|
||||
(unless (eof-object? r)
|
||||
(cond ((eqv? (car r) 'define) (eval r))
|
||||
(#t
|
||||
(fmt #t
|
||||
(c-expr
|
||||
(tree-map
|
||||
(fn
|
||||
(case x
|
||||
((fn) '%fun)
|
||||
((var) '%var)
|
||||
((begin) '%begin)
|
||||
((pointer) '%pointer)
|
||||
((array) '%array)
|
||||
(([]) 'vector-ref)
|
||||
((include) '%include)
|
||||
((cast) '%cast)
|
||||
(else
|
||||
(if (symbol? x)
|
||||
(unkebabify x)
|
||||
x))))
|
||||
r)))
|
||||
(fmt #t "\n")))
|
||||
(loop))))
|
||||
|
||||
(loop)
|
||||
Reference in New Issue
Block a user