User Tools


Function SET-MACRO-CHARACTER, GET-MACRO-CHARACTER

Syntax

  • get-macro-character char &optional readtablefunction, non-terminating-p
  • set-macro-character char new-function &optional non-terminating-p readtablet

Arguments and Values

Description

get-macro-character returns as its primary value, function, the reader macro function associated with char in readtable (if any), or else nil if char is not a macro character in readtable. The secondary value, non-terminating-p, is true if char is a non-terminating macro character; otherwise, it is false.

set-macro-character causes char to be a macro character associated with the reader macro function new-function (or the designator for new-function) in readtable. If non-terminating-p is true, char becomes a non-terminating macro character; otherwise it becomes a terminating macro character.

Examples

(get-macro-character #\[) → NIL, false (not (get-macro-character #\;)) → false

The following is a possible definition for the single-quote reader macro in standard syntax:

(defun single-quote-reader (stream char) (declare (ignore char)) (list 'quote (read stream t nil t)))

SINGLE-QUOTE-READER

(set-macro-character #\' #'single-quote-reader)

T

Here single-quote-reader reads an object following the single-quote and returns a list of quote and that object. The char argument is ignored.

The following is a possible definition for the semicolon reader macro in standard syntax:

(defun semicolon-reader (stream char) (declare (ignore char)) ;; First swallow the rest of the current input line. ;; End-of-file is acceptable for terminating the comment. (do () ((char= (read-char stream nil #\Newline t) #\Newline))) ;; Return zero values. (values))

SEMICOLON-READER

(set-macro-character #\; #'semicolon-reader)

T

Side Effects

The readtable is modified.

Affected By

None.

Exceptional Situations

None.

See Also

Notes

None.

\issue{GET-MACRO-CHARACTER-READTABLE:NIL-STANDARD}