hanlde pub for global vars correctly
This commit is contained in:
@@ -7,7 +7,8 @@
|
||||
|
||||
(struct foo
|
||||
((float a)
|
||||
(int b)))
|
||||
(int b)
|
||||
((const char *) c)))
|
||||
|
||||
,(list-T '(int))
|
||||
,(make-list-T '(int) #f)
|
||||
@@ -15,10 +16,14 @@
|
||||
,(length-list-T '(int) #f)
|
||||
,(is-empty-list-T '(int) #f)
|
||||
|
||||
(fn bool bar () false)
|
||||
|
||||
(extern fn void puk ((int a) (float b)))
|
||||
(fn bool bar () false)
|
||||
(pub fn void baz () true)
|
||||
|
||||
(extern var int i)
|
||||
(var int j)
|
||||
(pub var int k)
|
||||
|
||||
(pub fn int main ()
|
||||
(var (* list-int) l (make-list-int))
|
||||
|
||||
10
sexc.scm
10
sexc.scm
@@ -102,11 +102,19 @@
|
||||
acc))
|
||||
(else (error "Extern what?"))))
|
||||
|
||||
(define (walk-public form acc)
|
||||
(case (cadr form)
|
||||
((fn)
|
||||
(walk-function form #f acc))
|
||||
((var)
|
||||
(append (walk-generic (list 'static (cdr form)) (list)) acc))
|
||||
(else (error "Pub what?"))))
|
||||
|
||||
(define (walk-sex-tree form acc)
|
||||
(case (car form)
|
||||
((fn) (walk-function form #t acc))
|
||||
((extern) (walk-extern form acc))
|
||||
((pub) (walk-function form #f acc))
|
||||
((pub) (walk-public form acc))
|
||||
((struct union) (walk-struct form acc))
|
||||
((unquote) (fold (fn (walk-sex-tree x y))
|
||||
acc
|
||||
|
||||
Reference in New Issue
Block a user