Я хотел бы сегментировать исходный код Lisp в список сегментов кода. Каждый сегмент является либо S-выражением верхнего уровня, либо любым текстом между этими S-выражениями.Исходный код сегмента Lisp на высшем уровне S-выражение от emacs Lisp?
Первоначально я думал, что могу использовать шаблон регулярного выражения для соответствия S-выражению верхнего уровня, но я обнаружил, что обрабатывать соответствующие скобки не так просто, как на верхнем уровне.
(я считаю, что можно было бы выработать регулярное выражение для соответствия верхнего уровня S-EXP), следуя примеру этого Using regular expressions to extract functions and function headers from source code
Далее, я полагаю, что я может сканировать текст, чтобы наблюдать первая левая скобка '(' и последняя правая скобка ')', и соответственно выполните сегментацию.
Прежде чем я это сделаю, я чувствую, что, учитывая вездесущую природу S-выражения в emacs Lisp, должно быть уже существующее решение для моих требований.
Так что я спрашиваю, можете ли вы научить меня любому решению?
Thanks,
Спасибо! Я искал существующую поддержку, такую как forward-sexp. Моя цель состоит в том, чтобы преобразовать файл исходного кода Lisp в emacs org-babel, поддерживаемый литературным программным файлом программирования, где я хотел бы, чтобы каждая функция или верхний sexp были блоком кода org. –