さて、s式は本質的に「抽象構文」であり、抽象構文ツリーの単なる具体的な構文であるため、どの言語もs式として表現でき、s式コマンドで操作できます。したがって、syntax-ppss
「Sexps」といえば、単に抽象構文木について話すLispの方法です。
ただし、実際には、syntax-ppss
どのモードでも一般的に機能しません。基本的にはLispのような言語を対象としているため、言語の具体的な言語がSexpsから大きく逸脱している場合、Sexpコマンドを使用して言語を操作することはあまり意味がありません。それは機能しますが、抽象的な表現と具体的な構文の間にあまりにも大きなギャップがあり、ほとんどのコマンドが直観に反します。
ただし、基盤となるインフラストラクチャの一部syntax-ppss
はかなり汎用的です。メジャーモードは、多くの組み込みEmacsの機能とうまく機能し、Smartparensなどの他のサードパーティパッケージ用の汎用インターフェイスを提供するため、通常はプラグインに一生懸命に試みます。
特に、文字列とコメントの構文テーブルにsyntax-ppss
依存しています。構文テーブルは、構文クラスごとに個々の文字を分類します。ペアの区切り文字、文字列区切り文字、コメント文字のクラスがあります。
文字列とコメントの構造は、ほとんどすべてのプログラミング言語でかなり似ています。通常、文字列は特別な区切り文字で囲まれています。コメントには特別な区切り文字を含めることも、特定の文字で始まり行末まで拡張することもできます。これらの構造は構文テーブルに簡単に取り込むことができ、Emacsの構文強化から利益を得るためだけに、ほとんどすべての主要なモードが適切な構文テーブルを定義します。
したがって、syntax-ppss
ほぼすべての言語の文字列とコメントに対して適切に機能しますが、他の機能のサポートと「有用性」は異なります。