Bene, le espressioni-s sono essenzialmente "sintassi astratte", nel senso che sono semplicemente una sintassi concreta per gli alberi di sintassi astratti, e quindi qualsiasi linguaggio può essere rappresentato come espressioni-s, e manipolato con comandi di espressione-s. Quindi, syntax-ppss
parlare di "Sexps" è semplicemente il modo Lisp di parlare di alberi di sintassi astratti.
Praticamente, tuttavia, syntax-ppss
generalmente non funziona per nessuna modalità. È mirato fondamentalmente a linguaggi simili a Lisp e se la lingua concreta di una lingua si discosta troppo da Sexps, non ha più molto senso usare i comandi Sexp per manipolare la lingua. Funzionerebbe, ma ci sarebbe un divario troppo grande tra la rappresentazione astratta e la sintassi concreta, il che renderebbe la maggior parte dei comandi contro-intuitivi.
Tuttavia, alcune delle infrastrutture sottostanti syntax-ppss
sono abbastanza generiche. Le principali modalità in genere si sforzano di collegarlo, perché le fa funzionare bene con molte funzionalità integrate di Emacs e fornisce un'interfaccia generica per altri pacchetti di terze parti come Smartparens.
In particolare, syntax-ppss
si basa sulle tabelle di sintassi per stringhe e commenti. Le tabelle di sintassi classificano i singoli personaggi in base alla loro classe sintattica. Esistono classi per delimitatori associati, delimitatori di stringa e caratteri di commento.
La struttura di stringhe e commenti è abbastanza simile in quasi tutti i linguaggi di programmazione: le stringhe sono normalmente racchiuse in delimitatori speciali. I commenti possono avere anche delimitatori speciali, oppure iniziare con un certo carattere ed estendersi fino alla fine della riga. Queste strutture possono essere facilmente catturate nelle tabelle di sintassi e quasi tutte le principali modalità definiscono le tabelle di sintassi appropriate, se non altro per trarre profitto dalla fortificazione sintattica di Emacs.
Quindi, syntax-ppss
funziona bene per stringhe e commenti in quasi tutte le lingue, ma il supporto e l '"utilità" di altre funzionalità variano.