|
647 | 647 | [#\# (<octo-elem>)] |
648 | 648 | [(? open-paren? c) (<list-or-pair> c)] |
649 | 649 | [#\; (<line-comment>) (<elem>)] |
650 | | - [#\' (<quote> 'quote)] |
651 | | - [#\` (<quote> 'quasiquote)] |
| 650 | + [#\' (<quote> (string->symbol "quote"))] |
| 651 | + [#\` (<quote> (string->symbol "quasiquote"))] |
652 | 652 | [#\, (match (peek-char) |
653 | | - [#\@ (read-char) (<quote> 'unquote-splicing)] |
654 | | - [_ (<quote> 'unquote)])] |
| 653 | + [#\@ (read-char) (<quote> (string->symbol "unquote-splicing"))] |
| 654 | + [_ (<quote> (string->symbol "unquote"))])] |
655 | 655 | [c (<number-or-symbol> c)])) |
656 | 656 |
|
657 | 657 | (define (<quote> q) |
|
685 | 685 | [#\\ (<char-start>)] |
686 | 686 | [#\: (<keyword>)] |
687 | 687 | [#\& (unimplemented "boxes")] ; FIXME |
688 | | - [#\' (<quote> 'syntax)] |
| 688 | + [#\' (<quote> (string->symbol "syntax"))] |
689 | 689 | [#\! (unimplemented "shebang comment")] |
690 | | - [#\` (<quote> 'quasisyntax)] |
| 690 | + [#\` (<quote> (string->symbol "quasisyntax"))] |
691 | 691 | [#\, (match (peek-char) |
692 | | - [#\@ (read-char) (<quote> 'unsyntax-splicing)] |
693 | | - [_ (<quote> 'unsyntax)])] |
| 692 | + [#\@ (read-char) (<quote> (string->symbol "unsyntax-splicing"))] |
| 693 | + [_ (<quote> (string->symbol "unsyntax"))])] |
694 | 694 | [#\~ (unimplemented "compiled code")] |
695 | 695 | [#\i (unimplemented "inexact number")] |
696 | 696 | [#\I (unimplemented "inexact number")] |
|
761 | 761 |
|
762 | 762 | (define (<number-or-symbol> c) |
763 | 763 | (match c |
764 | | - [#\+ (if (delim?) '+ (<unsigned-or-symbol> #\+ '()))] |
765 | | - [#\- (if (delim?) '- (<unsigned-or-symbol> #\- '()))] |
| 764 | + [#\+ (if (delim?) (string->symbol "+") (<unsigned-or-symbol> #\+ '()))] |
| 765 | + [#\- (if (delim?) (string->symbol "-") (<unsigned-or-symbol> #\- '()))] |
766 | 766 | [#\. (if (delim?) (err ".") (<frac> #f '() '()))] |
767 | 767 | [(? char-digit10?) (<unsigned-or-symbol> #f (list c))] |
768 | 768 | [_ (<symbol> (list c))])) |
|
0 commit comments