[honu] add quote and quasiquote
This commit is contained in:
parent
4538335b1c
commit
ab0a21db99
|
@ -12,6 +12,8 @@
|
|||
[honu-var var]
|
||||
[honu-val val]
|
||||
[honu-for for]
|
||||
[honu-quote quote]
|
||||
[honu-quasiquote quasiquote]
|
||||
[honu-+ +] [honu-- -]
|
||||
[honu-* *] [honu-/ /]
|
||||
[honu-^ ^]
|
||||
|
|
|
@ -61,6 +61,20 @@
|
|||
(parse #'(rest ...)))
|
||||
(values parsed unparsed #t)])))
|
||||
|
||||
(provide honu-quote)
|
||||
(define-honu-syntax honu-quote
|
||||
(lambda (code context)
|
||||
(syntax-parse code
|
||||
[(_ expression rest ...)
|
||||
(values #'(quote expression) #'(rest ...) #f)])))
|
||||
|
||||
(provide honu-quasiquote)
|
||||
(define-honu-syntax honu-quasiquote
|
||||
(lambda (code context)
|
||||
(syntax-parse code
|
||||
[(_ expression rest ...)
|
||||
(values #'(quasiquote expression) #'(rest ...) #f)])))
|
||||
|
||||
(define-syntax-rule (define-binary-operator name precedence operator)
|
||||
(begin
|
||||
(provide name)
|
||||
|
|
|
@ -65,6 +65,8 @@
|
|||
["." (token-identifier '|.|)]
|
||||
["," (token-identifier '|,|)]
|
||||
["!" (token-identifier '!)]
|
||||
["'" (token-identifier 'quote)]
|
||||
["`" (token-identifier 'quasiquote)]
|
||||
["=" (token-identifier '=)]
|
||||
["*" (token-identifier '*)]
|
||||
["/" (token-identifier '/)]
|
||||
|
|
Loading…
Reference in New Issue
Block a user