Added ... auxilary kwd

This commit is contained in:
Abdulaziz Ghuloum 2007-08-28 11:34:13 -04:00
parent 8e4adec147
commit 905b6c96c6
4 changed files with 56 additions and 48 deletions

Binary file not shown.

View File

@ -1063,6 +1063,8 @@
"~s is not a record of type ~s"
x ',rtd)))))
setters i*))))])))
(define incorrect-usage-macro
(lambda (e) (stx-error e "incorrect usage of auxilary keyword")))
(define parameterize-transformer ;;; go away
(lambda (e r mr)
(syntax-match e ()
@ -1553,18 +1555,20 @@
[(procedure? x) x]
[(symbol? x)
(case x
[(define-record) define-record-macro]
[(include) include-macro]
[(cond) cond-macro]
[(let) let-macro]
[(do) do-macro]
[(or) or-macro]
[(and) and-macro]
[(let*) let*-macro]
[(syntax-rules) syntax-rules-macro]
[(quasiquote) quasiquote-macro]
[(with-syntax) with-syntax-macro]
[(identifier-syntax) identifier-syntax-macro]
[(define-record) define-record-macro]
[(include) include-macro]
[(cond) cond-macro]
[(let) let-macro]
[(do) do-macro]
[(or) or-macro]
[(and) and-macro]
[(let*) let*-macro]
[(syntax-rules) syntax-rules-macro]
[(quasiquote) quasiquote-macro]
[(with-syntax) with-syntax-macro]
[(identifier-syntax) identifier-syntax-macro]
[(...) incorrect-usage-macro]
[(=>) incorrect-usage-macro]
[else (error 'macro-transformer "invalid macro ~s" x)])]
[else (error 'core-macro-transformer "invalid macro ~s" x)])))
(define (local-macro-transformer x)

View File

@ -108,7 +108,9 @@
[cond (macro . cond)]
[do (macro . do)]
[and (macro . and)]
[or (macro . or)]))
[or (macro . or)]
[... (macro . ...)]
))
(define library-legend
'([i (ikarus) #t]
@ -194,41 +196,43 @@
(define ikarus-macros-map
'([define i r]
[define-syntax i r]
[let-syntax i r]
[letrec-syntax i r]
[module i cm]
[begin i r]
[import i]
[set! i r]
[foreign-call i]
[quote i r]
[syntax-case i syncase]
[syntax i syncase]
[lambda i r]
[case-lambda i r]
[type-descriptor i ]
[letrec i r]
[letrec* i r]
[if i r]
[when i r]
[unless i r]
[parameterize i parameters]
[case i r]
[let-values i r]
[define-record i r]
[include i r]
[syntax-rules i r]
[quasiquote i r]
[with-syntax i syncase]
[let i r]
'([define i r]
[define-syntax i r]
[let-syntax i r]
[letrec-syntax i r]
[module i cm]
[begin i r]
[import i]
[set! i r]
[foreign-call i]
[quote i r]
[syntax-case i syncase]
[syntax i syncase]
[lambda i r]
[case-lambda i r]
[type-descriptor i ]
[letrec i r]
[letrec* i r]
[if i r]
[when i r]
[unless i r]
[parameterize i parameters]
[case i r]
[let-values i r]
[define-record i r]
[include i r]
[syntax-rules i r]
[quasiquote i r]
[with-syntax i syncase]
[let i r]
[identifier-syntax i r]
[let* i r]
[cond i r]
[do i r]
[and i r]
[or i r]))
[let* i r]
[cond i r]
[do i r]
[and i r]
[or i r]
[... i r]
))
(define ikarus-procedures-map
'([void i]

View File

@ -230,7 +230,7 @@
[vector-set! C ba]
[vector? C ba]
[zero? C ba]
[... S ba sc]
[... C ba sc]
[=> S ba ex]
[_ S ba sc]
[else S ba ex]