Ну, s-вирази по суті є "абстрактним синтаксисом", в тому сенсі, що вони є лише конкретним синтаксисом для абстрактних синтаксичних дерев, і тому будь-яка мова може бути представлена як s-вирази та маніпулювати командами s-вираження. Отже, syntax-ppss
говорити про "Sexps" - це просто Lisp спосіб говорити про абстрактні синтаксичні дерева.
Практично, однак, syntax-ppss
як правило, не працює для жодного режиму. Він в основному орієнтований на мови, схожі на Lisp, і якщо конкретна мова мови занадто сильно відхиляється від Sexps, більше не має сенсу використовувати команди Sexp для маніпулювання мовою. Це спрацювало б, але був би занадто великий розрив між абстрактним поданням та конкретним синтаксисом, який би робив більшість команд контрінтуїтивними.
Однак частина базової інфраструктури Росії syntax-ppss
є загальною. Основні режими, як правило, дуже важко підключаються до нього, оскільки вони змушують їх добре працювати з багатьма вбудованими функціями Emacs та забезпечує загальний інтерфейс для інших сторонніх пакетів, таких як Smartparens.
Зокрема, для рядків та коментарів syntax-ppss
покладається на синтаксичні таблиці . Синтаксичні таблиці класифікують окремих символів за їх синтаксичним класом. Є класи для парних роздільників, розділових рядків та символів коментарів.
Структура рядків та коментарів досить схожа майже у всіх мовах програмування: рядки зазвичай укладені в спеціальні роздільники. У коментарях також можуть бути спеціальні роздільники, або починати з певного символу і поширюватися до кінця рядка. Ці структури можна легко зафіксувати в синтаксичних таблицях, і майже всі основні режими визначають відповідні таблиці синтаксису, якщо тільки отримати прибуток від синтаксичного фортифікації Emacs.
Отже, syntax-ppss
добре працює для рядків та коментарів майже будь-якою мовою, але підтримка та «корисність» інших функцій різняться.