Uncomment query-value and friends. May need tweaks.

This commit is contained in:
Tony Garnock-Jones 2018-04-30 22:48:50 +01:00
parent ec0933ffdd
commit 475e6527f3
1 changed files with 34 additions and 34 deletions

View File

@ -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 ...)))