From 3b34b0ce02d5995dce7372665706a5f3ec6b0f0a Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Mon, 19 Oct 2020 15:26:31 -0600 Subject: [PATCH] cs: fix printer for symbols containing ; or ` Closes #3448 Thanks again, Xsmith! --- pkgs/racket-test-core/tests/racket/print.rktl | 2 + racket/src/cs/schemified/io.scm | 144 ++++++++++-------- racket/src/io/print/symbol.rkt | 2 + 3 files changed, 82 insertions(+), 66 deletions(-) diff --git a/pkgs/racket-test-core/tests/racket/print.rktl b/pkgs/racket-test-core/tests/racket/print.rktl index b832f44062..d3eaed75e6 100644 --- a/pkgs/racket-test-core/tests/racket/print.rktl +++ b/pkgs/racket-test-core/tests/racket/print.rktl @@ -65,6 +65,8 @@ (ptest "'apple" 'apple) (ptest "'|apple banana|" '|apple banana|) (ptest "'||" '||) + (ptest "'|;|" '|;|) + (ptest "'|`|" '|`|) (ptest "'#:apple" '#:apple) (ptest "'#%apple" '#%apple) (ptest "\"apple\"" "apple") diff --git a/racket/src/cs/schemified/io.scm b/racket/src/cs/schemified/io.scm index 53cb82ad84..e0515df00f 100644 --- a/racket/src/cs/schemified/io.scm +++ b/racket/src/cs/schemified/io.scm @@ -20931,94 +20931,106 @@ (if or-part_9 or-part_9 (let ((or-part_10 - (if (char=? - ch_0 - '#\x7c) - (let ((or-part_10 - (not - config8_0))) - (if or-part_10 - or-part_10 - (config-get - config8_0 - 1/read-accept-bar-quote))) - #f))) + (char=? + ch_0 + '#\x3b))) (if or-part_10 or-part_10 (let ((or-part_11 - (if for-type?9_0 - (let ((or-part_11 - (char=? - ch_0 - '#\x3c))) - (if or-part_11 - or-part_11 - (char=? - ch_0 - '#\x3e))) - #f))) + (char=? + ch_0 + '#\x60))) (if or-part_11 or-part_11 (let ((or-part_12 - (if (char-whitespace? - ch_0) + (if (char=? + ch_0 + '#\x7c) (let ((or-part_12 (not - for-type?9_0))) + config8_0))) (if or-part_12 or-part_12 - (not - (char=? - ch_0 - '#\x20)))) + (config-get + config8_0 + 1/read-accept-bar-quote))) #f))) (if or-part_12 or-part_12 (let ((or-part_13 - (if (char=? - ch_0 - '#\x23) - (if (zero? - i_0) - (let ((or-part_13 - (< - (string-length - str_0) - 2))) - (if or-part_13 - or-part_13 - (not + (if for-type?9_0 + (let ((or-part_13 (char=? - (string-ref - str_0 - 1) - '#\x25)))) - #f) + ch_0 + '#\x3c))) + (if or-part_13 + or-part_13 + (char=? + ch_0 + '#\x3e))) #f))) (if or-part_13 or-part_13 (let ((or-part_14 - (if (char=? - ch_0 - '#\x2e) - (if (zero? - i_0) - (= - (string-length - str_0) - 1) - #f) + (if (char-whitespace? + ch_0) + (let ((or-part_14 + (not + for-type?9_0))) + (if or-part_14 + or-part_14 + (not + (char=? + ch_0 + '#\x20)))) #f))) (if or-part_14 or-part_14 - (if (not - case-sensitive?_0) - (not - (char=? - ch_0 - (char-foldcase - ch_0))) - #f)))))))))))))))))))))))))))))))))))) + (let ((or-part_15 + (if (char=? + ch_0 + '#\x23) + (if (zero? + i_0) + (let ((or-part_15 + (< + (string-length + str_0) + 2))) + (if or-part_15 + or-part_15 + (not + (char=? + (string-ref + str_0 + 1) + '#\x25)))) + #f) + #f))) + (if or-part_15 + or-part_15 + (let ((or-part_16 + (if (char=? + ch_0 + '#\x2e) + (if (zero? + i_0) + (= + (string-length + str_0) + 1) + #f) + #f))) + (if or-part_16 + or-part_16 + (if (not + case-sensitive?_0) + (not + (char=? + ch_0 + (char-foldcase + ch_0))) + #f)))))))))))))))))))))))))))))))))))))))) (loop_0 (|#%name| loop diff --git a/racket/src/io/print/symbol.rkt b/racket/src/io/print/symbol.rkt index 9c26039f62..4cf4b9d52c 100644 --- a/racket/src/io/print/symbol.rkt +++ b/racket/src/io/print/symbol.rkt @@ -33,6 +33,8 @@ (char=? ch #\\) (char=? ch #\') (char=? ch #\,) + (char=? ch #\;) + (char=? ch #\`) (and (char=? ch #\|) (or (not config) (config-get config read-accept-bar-quote))) (and for-type?