Spec-Zone.ru › Elisp

Функции ввода

В этом разделе описаны функции и переменные Lisp, относящиеся к чтению.

В приведённых ниже функциях stream обозначает входной поток (см. предыдущий раздел). Если stream равен nil или не указан, используется значение standard-input.

При обнаружении незавершённого списка, вектора или строки во время чтения сигнализируется ошибка end-of-file.

Функция: read &optional stream

Эта функция считывает из stream одно текстовое выражение Lisp и возвращает его в виде объекта Lisp. Это основная функция ввода Lisp.

Функция: read-from-string string &optional start end

Эта функция считывает первое текстовое выражение Lisp из текста в string. Она возвращает ячейку-конс, у которой CAR — это выражение, а CDR — целое число, указывающее позицию следующего оставшегося символа в строке (то есть первого несчитанного символа).

Если задан start, чтение начинается с индекса start в строке (первый символ имеет индекс 0). Если задан end, чтение принудительно прекращается непосредственно перед этим индексом, как если бы остальной части строки не существовало.

Например:

(read-from-string "(setq x 55) (setq y 5)")
     ⇒ ((setq x 55) . 11)
(read-from-string "\"A short string\"")
     ⇒ ("A short string" . 16)
;; Read starting at the first character.
(read-from-string "(list 112)" 0)
     ⇒ ((list 112) . 10)
;; Read starting at the second character.
(read-from-string "(list 112)" 1)
     ⇒ (list . 5)
;; Read starting at the seventh character,
;;   and stopping at the ninth.
(read-from-string "(list 112)" 6 8)
     ⇒ (11 . 8)
Функция: read-positioning-symbols &optional stream

Эта функция считывает из stream одно текстовое выражение, как это делает read, но дополнительно устанавливает для считанных символов позиции в stream, в которых они встретились. Позиция не устанавливается только для символа nil — в целях повышения эффективности. См. Символы с позицией. Эта функция используется байт-компилятором.

Переменная: standard-input

Эта переменная содержит входной поток по умолчанию — поток, который использует read, если аргумент stream равен nil. По умолчанию используется t, то есть минибуфер.

Переменная: read-circle

Если значение этой переменной не равно nil, она разрешает чтение циклических и совместно используемых структур. См. Синтаксис чтения циклических объектов. По умолчанию её значение — t.

При чтении из стандартных потоков ввода-вывода процесса Emacs или записи в них в пакетном режиме иногда необходимо обеспечить чтение и запись произвольных двоичных данных без изменений и/или отключить преобразование символов новой строки в пары CR-LF и обратно. Эта проблема возникает только в MS-Windows и MS-DOS, но не на POSIX-хостах. Следующая функция позволяет управлять режимом ввода-вывода любого стандартного потока процесса Emacs.

Функция: set-binary-mode stream mode

Переключает stream в двоичный режим ввода-вывода или текстовый режим. Если значение mode не равно nil, включается двоичный режим, в противном случае — текстовый. Значением stream может быть stdin, stdout или stderr. В качестве побочного эффекта эта функция сбрасывает все ожидающие вывода данные stream и возвращает предыдущее значение режима ввода-вывода для stream. На POSIX-хостах она всегда возвращает значение, отличное от nil, и ничего не делает, кроме сброса ожидающих вывода данных.

Функция: readablep object

Этот предикат сообщает, имеет ли object читаемый синтаксис, то есть можно ли вывести его, а затем прочитать обратно с помощью считывателя Emacs Lisp. Если это невозможно, функция возвращает nil; если возможно, функция возвращает печатное представление (с помощью prin1, см. Функции вывода) объекта object.

Copyright © 1990-1996, 1998-2026 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Input-Functions.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API