Uncomment query-value and friends. May need tweaks.
This commit is contained in:
parent
ec0933ffdd
commit
475e6527f3
|
@ -28,17 +28,17 @@
|
|||
|
||||
let-event
|
||||
|
||||
;; query-value
|
||||
query-value
|
||||
;; query-set
|
||||
;; query-hash
|
||||
;; query-hash-set
|
||||
;; query-count
|
||||
;; query-value*
|
||||
query-value*
|
||||
;; query-set*
|
||||
;; query-hash*
|
||||
;; query-hash-set*
|
||||
;; query-count*
|
||||
;; define/query-value
|
||||
define/query-value
|
||||
;; define/query-set
|
||||
;; define/query-hash
|
||||
;; define/query-hash-set
|
||||
|
@ -431,39 +431,39 @@
|
|||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; Queries
|
||||
|
||||
;; (begin-for-syntax
|
||||
;; (define-splicing-syntax-class on-add
|
||||
;; (pattern (~optional (~seq #:on-add expr) #:defaults ([expr #f]))))
|
||||
;; (define-splicing-syntax-class on-remove
|
||||
;; (pattern (~optional (~seq #:on-remove expr) #:defaults ([expr #f]))))
|
||||
(begin-for-syntax
|
||||
(define-splicing-syntax-class on-add
|
||||
(pattern (~optional (~seq #:on-add expr) #:defaults ([expr #f]))))
|
||||
(define-splicing-syntax-class on-remove
|
||||
(pattern (~optional (~seq #:on-remove expr) #:defaults ([expr #f]))))
|
||||
|
||||
;; (define (schedule-query-handler-stxs maybe-expr-stx)
|
||||
;; (if maybe-expr-stx
|
||||
;; (quasisyntax/loc maybe-expr-stx
|
||||
;; ((schedule-script! #:priority *query-handler-priority*
|
||||
;; (lambda () #,maybe-expr-stx))))
|
||||
;; #'())))
|
||||
(define (schedule-query-handler-stxs maybe-expr-stx)
|
||||
(if maybe-expr-stx
|
||||
(quasisyntax/loc maybe-expr-stx
|
||||
((schedule-script! #:priority *query-handler-priority*
|
||||
(lambda () #,maybe-expr-stx))))
|
||||
#'())))
|
||||
|
||||
;; (define-syntax (query-value stx)
|
||||
;; (syntax-parse stx
|
||||
;; [(_ field-name absent-expr args ...)
|
||||
;; (quasisyntax/loc stx
|
||||
;; (let ()
|
||||
;; (field [field-name absent-expr])
|
||||
;; (query-value* field-name absent-expr args ...)))]))
|
||||
(define-syntax (query-value stx)
|
||||
(syntax-parse stx
|
||||
[(_ field-name absent-expr args ...)
|
||||
(quasisyntax/loc stx
|
||||
(let ()
|
||||
(field [field-name absent-expr])
|
||||
(query-value* field-name absent-expr args ...)))]))
|
||||
|
||||
;; (define-syntax (query-value* stx)
|
||||
;; (syntax-parse stx
|
||||
;; [(_ field-name absent-expr P expr on-add:on-add on-remove:on-remove)
|
||||
;; (quasisyntax/loc stx
|
||||
;; (let ((F field-name))
|
||||
;; (on (asserted P) #:priority *query-priority*
|
||||
;; #,@(schedule-query-handler-stxs (attribute on-add.expr))
|
||||
;; (F expr))
|
||||
;; (on (retracted P) #:priority *query-priority-high*
|
||||
;; #,@(schedule-query-handler-stxs (attribute on-remove.expr))
|
||||
;; (F absent-expr))
|
||||
;; F))]))
|
||||
(define-syntax (query-value* stx)
|
||||
(syntax-parse stx
|
||||
[(_ field-name absent-expr P expr on-add:on-add on-remove:on-remove)
|
||||
(quasisyntax/loc stx
|
||||
(let ((F field-name))
|
||||
(on (asserted P) #:priority *query-priority*
|
||||
#,@(schedule-query-handler-stxs (attribute on-add.expr))
|
||||
(F expr))
|
||||
(on (retracted P) #:priority *query-priority-high*
|
||||
#,@(schedule-query-handler-stxs (attribute on-remove.expr))
|
||||
(F absent-expr))
|
||||
F))]))
|
||||
|
||||
;; (define-syntax (query-set stx)
|
||||
;; (syntax-parse stx
|
||||
|
@ -569,7 +569,7 @@
|
|||
;; [n (hash-set F0 E (- n 1))])))))
|
||||
;; F))]))
|
||||
|
||||
;; (define-syntax-rule (define/query-value id ae P x ...) (define id (query-value id ae P x ...)))
|
||||
(define-syntax-rule (define/query-value id ae P x ...) (define id (query-value id ae P x ...)))
|
||||
;; (define-syntax-rule (define/query-set id P x ...) (define id (query-set id P x ...)))
|
||||
;; (define-syntax-rule (define/query-hash id P x ...) (define id (query-hash id P x ...)))
|
||||
;; (define-syntax-rule (define/query-hash-set id P x ...) (define id (query-hash-set id P x ...)))
|
||||
|
|
Loading…
Reference in New Issue