Bueno, las expresiones s son esencialmente "sintaxis abstracta", en el sentido de que son simplemente una sintaxis concreta para árboles de sintaxis abstracta, y por lo tanto, cualquier lenguaje puede representarse como expresiones s y manipularse con comandos de expresiones s. Por lo tanto, syntax-ppss
hablar de "Sexps" es simplemente la forma de Lisp de hablar sobre árboles de sintaxis abstracta.
Prácticamente, sin embargo, syntax-ppss
generalmente no funciona para ningún modo. Está fundamentalmente dirigido a lenguajes similares a Lisp, y si el lenguaje concreto de un lenguaje se desvía demasiado de Sexps, ya no tiene mucho sentido usar los comandos de Sexp para manipular el lenguaje. Funcionaría, pero habría una brecha demasiado grande entre la representación abstracta y la sintaxis concreta, lo que haría que la mayoría de los comandos sean contra-intuitivos.
Sin embargo, parte de la infraestructura subyacente syntax-ppss
es bastante genérica. Los modos principales generalmente se esfuerzan por conectarse, porque los hace funcionar bien con muchas características integradas de Emacs y proporciona una interfaz genérica para otros paquetes de terceros como Smartparens.
En particular, se syntax-ppss
basa en las tablas de sintaxis para cadenas y comentarios. Las tablas de sintaxis clasifican los caracteres individuales por su clase sintáctica. Hay clases para delimitadores emparejados, delimitadores de cadena y caracteres de comentario.
La estructura de cadenas y comentarios es bastante similar en casi todos los lenguajes de programación: las cadenas normalmente están encerradas en delimitadores especiales. Los comentarios también pueden tener delimitadores especiales, o comenzar con un determinado carácter y extenderse hasta el final de la línea. Estas estructuras se pueden capturar fácilmente en tablas de sintaxis, y casi todos los modos principales definen tablas de sintaxis apropiadas, aunque solo sea para beneficiarse de la fortificación sintáctica de Emacs.
Por lo tanto, syntax-ppss
funciona bien para cadenas y comentarios en casi cualquier idioma, pero el soporte y la "utilidad" de otras características varían.