From 3b227fb6729a521c73a1c491510eee4e22cfb771 Mon Sep 17 00:00:00 2001 From: Matthew Butterick Date: Tue, 4 Jun 2019 15:58:54 -0700 Subject: [PATCH 1/3] resume in test-override --- pollen/private/dialect.rkt | 14 ++++++++------ pollen/private/main-base.rkt | 12 +++++++----- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/pollen/private/dialect.rkt b/pollen/private/dialect.rkt index 3231c85..1446c63 100644 --- a/pollen/private/dialect.rkt +++ b/pollen/private/dialect.rkt @@ -3,10 +3,12 @@ (provide (except-out (all-from-out racket/base pollen/setup) #%module-begin) (rename-out [mb #%module-begin]) #%top-interaction) -(define-syntax-rule (mb mode . args) +(define-syntax-rule (mb MODE . ARGS) (#%module-begin - (require (prefix-in p: "private/main-base.rkt")) - (provide (rename-out [mb #%module-begin])) - (define-syntax-rule (mb . other-args) - (p:#%module-begin mode . other-args)) - . args)) \ No newline at end of file + (require (except-in "private/main-base.rkt" #%module-begin) + (prefix-in p: (only-in "private/main-base.rkt" #%module-begin))) + (provide (all-from-out "private/main-base.rkt") + (rename-out [mb #%module-begin])) + (define-syntax-rule (mb . OTHER-ARGS) + (p:#%module-begin MODE . OTHER-ARGS)) + . ARGS)) \ No newline at end of file diff --git a/pollen/private/main-base.rkt b/pollen/private/main-base.rkt index ba34524..7ad0b0d 100644 --- a/pollen/private/main-base.rkt +++ b/pollen/private/main-base.rkt @@ -1,4 +1,4 @@ -#lang racket/base +#lang debug racket/base (require (for-syntax racket/base syntax/strip-context "../setup.rkt" @@ -12,7 +12,8 @@ "../core.rkt" (prefix-in doclang: "external/doclang-raw.rkt")) (provide (except-out (all-from-out racket/base) #%module-begin) - (rename-out [pollen-module-begin #%module-begin])) + (rename-out [pollen-module-begin #%module-begin]) + (all-from-out "../core.rkt")) (define ((make-parse-proc parser-mode root-proc) xs) (define (stringify xs) (apply string-append (map to-string xs))) @@ -35,9 +36,9 @@ (define-syntax (pollen-module-begin stx) (syntax-case stx () [(_ PARSER-MODE . EXPRS) - (with-syntax ([EXPRS (replace-context #'here #'EXPRS)] - [META-HASH (split-metas #'EXPRS (setup:define-meta-name))] - [METAS-ID (setup:meta-export)] + (with-syntax ([META-HASH (split-metas #'EXPRS (setup:define-meta-name))] + [METAS-ID-HERE (setup:meta-export)] + [METAS-ID (datum->syntax #'EXPRS (setup:meta-export))] [META-MOD-ID (setup:meta-export)] [ROOT-ID (setup:main-root-node)] [DOC-ID (setup:main-export)]) @@ -55,6 +56,7 @@ (require pollen/top pollen/core pollen/setup (submod "." META-MOD-ID)) (provide (all-defined-out) METAS-ID DOC-ID) (define prev-metas (current-metas)) + (define METAS-ID METAS-ID-HERE) (and (current-metas METAS-ID) "") ; because empty strings get stripped, voids don't (begin . EXPRS) (and (current-metas prev-metas) "")))])) ; leave behind empty string, not void -- 2.25.1 From 61682dca96bc596ea9b48055a33b17f330953205 Mon Sep 17 00:00:00 2001 From: Matthew Butterick Date: Tue, 4 Jun 2019 16:28:56 -0700 Subject: [PATCH 2/3] fix override; resume in test-pixel --- pollen/private/main-base.rkt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pollen/private/main-base.rkt b/pollen/private/main-base.rkt index 7ad0b0d..df42772 100644 --- a/pollen/private/main-base.rkt +++ b/pollen/private/main-base.rkt @@ -40,7 +40,7 @@ [METAS-ID-HERE (setup:meta-export)] [METAS-ID (datum->syntax #'EXPRS (setup:meta-export))] [META-MOD-ID (setup:meta-export)] - [ROOT-ID (setup:main-root-node)] + [ROOT-ID (datum->syntax #'EXPRS (setup:main-root-node))] [DOC-ID (setup:main-export)]) #'(doclang:#%module-begin DOC-ID ; positional arg for doclang-raw: name of export -- 2.25.1 From 4042281b74c75a461906cbeddb0469458236255f Mon Sep 17 00:00:00 2001 From: Matthew Butterick Date: Tue, 4 Jun 2019 16:51:31 -0700 Subject: [PATCH 3/3] ok --- pollen/private/main-base.rkt | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/pollen/private/main-base.rkt b/pollen/private/main-base.rkt index df42772..0a6ab8d 100644 --- a/pollen/private/main-base.rkt +++ b/pollen/private/main-base.rkt @@ -1,4 +1,4 @@ -#lang debug racket/base +#lang racket/base (require (for-syntax racket/base syntax/strip-context "../setup.rkt" @@ -8,12 +8,12 @@ "to-string.rkt" "../pagetree.rkt" "splice.rkt" - "../setup.rkt" "../core.rkt" + "../setup.rkt" (prefix-in doclang: "external/doclang-raw.rkt")) (provide (except-out (all-from-out racket/base) #%module-begin) (rename-out [pollen-module-begin #%module-begin]) - (all-from-out "../core.rkt")) + (all-from-out "../core.rkt" "../setup.rkt")) (define ((make-parse-proc parser-mode root-proc) xs) (define (stringify xs) (apply string-append (map to-string xs))) @@ -41,6 +41,8 @@ [METAS-ID (datum->syntax #'EXPRS (setup:meta-export))] [META-MOD-ID (setup:meta-export)] [ROOT-ID (datum->syntax #'EXPRS (setup:main-root-node))] + [CURRENT-METAS (datum->syntax #'EXPRS 'current-metas)] + [POLLEN/TOP (datum->syntax #'EXPRS 'pollen/top)] [DOC-ID (setup:main-export)]) #'(doclang:#%module-begin DOC-ID ; positional arg for doclang-raw: name of export @@ -48,15 +50,15 @@ (define proc (make-parse-proc PARSER-MODE ROOT-ID)) (define trimmed-xs (strip-leading-newlines xs)) (define doc-elements (splice trimmed-xs (setup:splicing-tag))) - (parameterize ([current-metas METAS-ID]) + (parameterize ([CURRENT-METAS METAS-ID]) (proc doc-elements))) ; positional arg for doclang-raw: post-processor (module META-MOD-ID racket/base (provide METAS-ID) (define METAS-ID META-HASH)) - (require pollen/top pollen/core pollen/setup (submod "." META-MOD-ID)) + (require POLLEN/TOP (submod "." META-MOD-ID)) (provide (all-defined-out) METAS-ID DOC-ID) - (define prev-metas (current-metas)) + (define prev-metas (CURRENT-METAS)) (define METAS-ID METAS-ID-HERE) - (and (current-metas METAS-ID) "") ; because empty strings get stripped, voids don't + (and (CURRENT-METAS METAS-ID) "") ; because empty strings get stripped, voids don't (begin . EXPRS) - (and (current-metas prev-metas) "")))])) ; leave behind empty string, not void + (and (CURRENT-METAS prev-metas) "")))])) ; leave behind empty string, not void -- 2.25.1