|
|
@ -538,6 +538,7 @@ Here's the definition for
|
|
|
|
brag/examples/simple-line-drawing/semantics
|
|
|
|
brag/examples/simple-line-drawing/semantics
|
|
|
|
#:read my-read
|
|
|
|
#:read my-read
|
|
|
|
#:read-syntax my-read-syntax
|
|
|
|
#:read-syntax my-read-syntax
|
|
|
|
|
|
|
|
#:info my-get-info
|
|
|
|
#:whole-body-readers? #t
|
|
|
|
#:whole-body-readers? #t
|
|
|
|
|
|
|
|
|
|
|
|
(require brag/examples/simple-line-drawing/lexer
|
|
|
|
(require brag/examples/simple-line-drawing/lexer
|
|
|
@ -548,6 +549,13 @@ Here's the definition for
|
|
|
|
|
|
|
|
|
|
|
|
(define (my-read-syntax src ip)
|
|
|
|
(define (my-read-syntax src ip)
|
|
|
|
(list (parse src (tokenize ip))))
|
|
|
|
(list (parse src (tokenize ip))))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(define (my-get-info key default default-filter)
|
|
|
|
|
|
|
|
(case key
|
|
|
|
|
|
|
|
[(color-lexer)
|
|
|
|
|
|
|
|
(dynamic-require 'syntax-color/default-lexer 'default-lexer)]
|
|
|
|
|
|
|
|
[else
|
|
|
|
|
|
|
|
(default-filter key default)]))
|
|
|
|
}|
|
|
|
|
}|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -577,19 +585,19 @@ compilation:
|
|
|
|
(begin-for-syntax
|
|
|
|
(begin-for-syntax
|
|
|
|
(define (compile-drawing drawing-stx)
|
|
|
|
(define (compile-drawing drawing-stx)
|
|
|
|
(syntax-parse drawing-stx
|
|
|
|
(syntax-parse drawing-stx
|
|
|
|
[({~literal drawing} rows-stxs ...)
|
|
|
|
[({~literal drawing} row-stxs ...)
|
|
|
|
|
|
|
|
|
|
|
|
(syntax/loc drawing-stx
|
|
|
|
(syntax/loc drawing-stx
|
|
|
|
(begin rows-stxs ...))]))
|
|
|
|
(begin row-stxs ...))]))
|
|
|
|
|
|
|
|
|
|
|
|
(define (compile-rows rows-stx)
|
|
|
|
(define (compile-rows row-stx)
|
|
|
|
(syntax-parse rows-stx
|
|
|
|
(syntax-parse row-stx
|
|
|
|
[({~literal rows}
|
|
|
|
[({~literal rows}
|
|
|
|
({~literal repeat} repeat-number)
|
|
|
|
({~literal repeat} repeat-number)
|
|
|
|
chunks ...
|
|
|
|
chunks ...
|
|
|
|
";")
|
|
|
|
";")
|
|
|
|
|
|
|
|
|
|
|
|
(syntax/loc rows-stx
|
|
|
|
(syntax/loc row-stx
|
|
|
|
(for ([i repeat-number])
|
|
|
|
(for ([i repeat-number])
|
|
|
|
chunks ...
|
|
|
|
chunks ...
|
|
|
|
(newline)))]))
|
|
|
|
(newline)))]))
|
|
|
|