Spec-Zone.ru › Elisp

Разбор выражений

В этом разделе описаны функции для разбора и сканирования сбалансированных выражений. Следуя терминологии Lisp, мы будем называть такие выражения S-выражениями, хотя эти функции могут работать и с языками, отличными от Lisp. В основном S-выражение — это сбалансированная последовательность в скобках, строка или символ (то есть последовательность символов, синтаксис которых соответствует классу символов слова или символов). Однако символы, относящиеся к классу синтаксиса префикса выражения (см. Таблицу классов синтаксиса), считаются частью S-выражения, если расположены рядом с ним.

Таблица синтаксиса определяет интерпретацию символов, поэтому эти функции можно использовать для разбора выражений Lisp в режиме Lisp и выражений C в режиме C. См. Перемещение по сбалансированным выражениям, где описаны удобные функции более высокого уровня для перемещения по сбалансированным выражениям.

Синтаксис символа определяет, как он изменяет состояние анализатора, а не описывает само это состояние. Например, символ-разделитель строки переключает состояние анализатора между режимами «внутри строки» и «вне строки», но синтаксис символов напрямую не указывает, находятся ли они внутри строки. Например (обратите внимание, что 15 — это код синтаксиса для универсальных разделителей строк),

(put-text-property 1 9 'syntax-table '(15 . nil))

не сообщает Emacs, что первые восемь символов текущего буфера образуют строку, а лишь указывает, что все они являются разделителями строк. В результате Emacs считает их четырьмя последовательными пустыми строковыми константами.

  • Команды перемещения на основе разбора
  • Определение состояния разбора в заданной позиции
  • Состояние анализатора
  • Низкоуровневый разбор
  • Параметры управления разбором

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/Parsing-Expressions.html

Spec-Zone.ru

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