Cóż, wyrażenia s są zasadniczo „abstrakcyjną składnią”, w tym sensie, że są jedynie konkretną składnią abstrakcyjnych drzew składni, a zatem każdy język może być reprezentowany jako wyrażenia s i manipulowany za pomocą poleceń wyrażenia s. Dlatego syntax-ppss
mówienie o „Sexps” jest po prostu sposobem Lispa na mówienie o abstrakcyjnych drzewach składniowych.
Praktycznie jednak syntax-ppss
ogólnie nie działa w żadnym trybie. Jest on zasadniczo ukierunkowany na języki podobne do Lisp, a jeśli konkretny język danego języka zbytnio odbiega od Sexps, nie ma już sensu używanie poleceń Sexp do manipulowania językiem. To działałoby, ale byłaby zbyt duża luka między abstrakcyjną reprezentacją a konkretną składnią, co powodowałoby, że większość poleceń byłaby sprzeczna z intuicją.
Jednak część podstawowej infrastruktury syntax-ppss
jest dość ogólna. Główne tryby zwykle starają się podłączyć do niego, ponieważ sprawia, że działają one dobrze z wieloma wbudowanymi funkcjami Emacsa i zapewniają ogólny interfejs dla innych pakietów innych firm, takich jak Smartparens.
W szczególności ciągi i komentarze syntax-ppss
opierają się na tabelach składni . Tabele składniowe kategoryzują poszczególne znaki według ich klasy składniowej. Istnieją klasy dla sparowanych ograniczników, ograniczników ciągów i znaków komentarza.
Struktura ciągów i komentarzy jest dość podobna w prawie wszystkich językach programowania: Ciągi znaków są zwykle zamknięte w specjalnych ogranicznikach. Komentarze mogą mieć także specjalne ograniczniki lub zaczynać się od określonego znaku i rozciągać do końca linii. Struktury te można łatwo uchwycić w tabelach składniowych, a prawie wszystkie główne tryby definiują odpowiednie tabele składniowe, choćby po to, aby skorzystać z fortyfikacji składniowej Emacsa.
Dlatego syntax-ppss
działa dobrze dla ciągów i komentarzy w prawie każdym języku, ale obsługa i „użyteczność” innych funkcji jest różna.