Отладка неверного синтаксиса Lisp
Читатель Lisp сообщает о неверном синтаксисе, но не может указать, где именно ошибка. Например, ошибка «Конец файла во время разбора» при оценке выражения указывает на избыток открытых скобок (или квадратных скобок). Читатель обнаруживает этот дисбаланс в конце файла, но не может определить, где должна быть закрывающая скобка. Аналогично, «Неверный синтаксис чтения: \")\"» указывает на избыток закрывающих скобок или недостаток открывающих, но не указывает, где отсутствует скобка. Как же найти, что нужно изменить?
Если проблема не просто в дисбалансе скобок, полезно попробовать C-M-e (end-of-defun, см. Перемещение по определениям функций в Справочнике GNU Emacs) в начале каждой defun и посмотреть, переходит ли она в место, где эта defun, по-видимому, заканчивается. Если нет, значит, в этой defun есть проблема.
Однако несоответствующие скобки — это наиболее распространенные синтаксические ошибки в Lisp, и мы можем дать дополнительные рекомендации для таких случаев. (Кроме того, просто перемещение курсора по коду с включенным режимом отображения скобок (Show Paren mode) может помочь найти несоответствие.)
| • Избыток открывающих скобок | Как найти лишнюю открывающую скобку или недостающую закрывающую. | |
| • Избыток закрывающих скобок | Как найти лишнюю закрывающую скобку или недостающую открывающую. |
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/Syntax-Errors.html