Spec-Zone.ru › Elisp

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

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

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

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

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

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

• Движение с помощью разбораФункции движения, работающие путём разбора.
• Разбор позицииОпределение синтаксического состояния позиции.
• Состояние анализатораКак Emacs представляет синтаксическое состояние.
• Разбор низкого уровняРазбор в заданной области.
• Управление разборомПараметры, влияющие на разбор.

Copyright © 1990-1996, 1998-2022 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