Состояние парсера — это список из (в настоящее время) одиннадцати элементов, описывающих состояние синтаксического парсера после того, как он обработал текст между заданной начальной и конечной точками в буфере с использованием parse-partial-sexp (см. Низкоуровневый парсинг). Функции парсинга, такие как syntax-ppss (см. Поиск состояния парсинга для позиции), также возвращают состояние парсера в качестве значения. parse-partial-sexp может принимать состояние парсера в качестве аргумента для возобновления парсинга.
Ниже приведены значения элементов состояния парсера:
nil, если такой нет.
nil, если такого нет.
nil, если находится внутри строки. Точнее, это символ, который завершит строку, или t, если должен завершить ее общий разделитель строки.
t, если находится внутри не вложенного комментария (любого стиля комментария; см. Флаги синтаксиса); или уровень вложенности комментария, если находится внутри комментария, который может быть вложенным.
t, если конечная точка находится сразу после символа кавычки.
nil, если не в комментарии или в комментарии стиля «a»; 1 для комментария стиля «b`; 2 для комментария стиля «c`; и syntax-table для комментария, который должен быть завершен общим разделителем комментария.
nil.
nil.
Элементы 1, 2 и 6 игнорируются в состоянии, которое вы передаете в качестве аргумента parse-partial-sexp для продолжения парсинга. Элементы 9 и 10 в основном используются внутренне кодом парсера.
Некоторые дополнительные полезные сведения доступны из состояния парсера с помощью этих функций:
Эта функция извлекает из состояния парсера state последнюю просканированную позицию в парсинге, которая находилась на верхнем уровне грамматической структуры. «На верхнем уровне» означает вне любых скобок, комментариев или строк.
Значение равно nil, если state представляет парсинг, который достиг позиции верхнего уровня.
Возвращает string, если конечная позиция сканирования, возвращающая state, находится внутри строки, и comment, если она находится внутри комментария. В противном случае возвращает nil.