cs: fix printer for symbols containing ; or `

Closes #3448

Thanks again, Xsmith!
This commit is contained in:
Matthew Flatt 2020-10-19 15:26:31 -06:00
parent 6c6cfd39b2
commit 3b34b0ce02
3 changed files with 82 additions and 66 deletions

View File

@ -65,6 +65,8 @@
(ptest "'apple" 'apple) (ptest "'apple" 'apple)
(ptest "'|apple banana|" '|apple banana|) (ptest "'|apple banana|" '|apple banana|)
(ptest "'||" '||) (ptest "'||" '||)
(ptest "'|;|" '|;|)
(ptest "'|`|" '|`|)
(ptest "'#:apple" '#:apple) (ptest "'#:apple" '#:apple)
(ptest "'#%apple" '#%apple) (ptest "'#%apple" '#%apple)
(ptest "\"apple\"" "apple") (ptest "\"apple\"" "apple")

View File

@ -20931,94 +20931,106 @@
(if or-part_9 (if or-part_9
or-part_9 or-part_9
(let ((or-part_10 (let ((or-part_10
(if (char=? (char=?
ch_0 ch_0
'#\x7c) '#\x3b)))
(let ((or-part_10
(not
config8_0)))
(if or-part_10
or-part_10
(config-get
config8_0
1/read-accept-bar-quote)))
#f)))
(if or-part_10 (if or-part_10
or-part_10 or-part_10
(let ((or-part_11 (let ((or-part_11
(if for-type?9_0 (char=?
(let ((or-part_11 ch_0
(char=? '#\x60)))
ch_0
'#\x3c)))
(if or-part_11
or-part_11
(char=?
ch_0
'#\x3e)))
#f)))
(if or-part_11 (if or-part_11
or-part_11 or-part_11
(let ((or-part_12 (let ((or-part_12
(if (char-whitespace? (if (char=?
ch_0) ch_0
'#\x7c)
(let ((or-part_12 (let ((or-part_12
(not (not
for-type?9_0))) config8_0)))
(if or-part_12 (if or-part_12
or-part_12 or-part_12
(not (config-get
(char=? config8_0
ch_0 1/read-accept-bar-quote)))
'#\x20))))
#f))) #f)))
(if or-part_12 (if or-part_12
or-part_12 or-part_12
(let ((or-part_13 (let ((or-part_13
(if (char=? (if for-type?9_0
ch_0 (let ((or-part_13
'#\x23)
(if (zero?
i_0)
(let ((or-part_13
(<
(string-length
str_0)
2)))
(if or-part_13
or-part_13
(not
(char=? (char=?
(string-ref ch_0
str_0 '#\x3c)))
1) (if or-part_13
'#\x25)))) or-part_13
#f) (char=?
ch_0
'#\x3e)))
#f))) #f)))
(if or-part_13 (if or-part_13
or-part_13 or-part_13
(let ((or-part_14 (let ((or-part_14
(if (char=? (if (char-whitespace?
ch_0 ch_0)
'#\x2e) (let ((or-part_14
(if (zero? (not
i_0) for-type?9_0)))
(= (if or-part_14
(string-length or-part_14
str_0) (not
1) (char=?
#f) ch_0
'#\x20))))
#f))) #f)))
(if or-part_14 (if or-part_14
or-part_14 or-part_14
(if (not (let ((or-part_15
case-sensitive?_0) (if (char=?
(not ch_0
(char=? '#\x23)
ch_0 (if (zero?
(char-foldcase i_0)
ch_0))) (let ((or-part_15
#f)))))))))))))))))))))))))))))))))))) (<
(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 (loop_0
(|#%name| (|#%name|
loop loop

View File

@ -33,6 +33,8 @@
(char=? ch #\\) (char=? ch #\\)
(char=? ch #\') (char=? ch #\')
(char=? ch #\,) (char=? ch #\,)
(char=? ch #\;)
(char=? ch #\`)
(and (char=? ch #\|) (and (char=? ch #\|)
(or (not config) (config-get config read-accept-bar-quote))) (or (not config) (config-get config read-accept-bar-quote)))
(and for-type? (and for-type?