Well, s-expressions are essentially “abstract syntax”, in the sense that they are merely a concrete syntax for abstract syntax trees, and thus any language can be represented as s-expressions, and manipulated with s-expression commands. Hence, syntax-ppss
speaking of “Sexps” is simply the Lisp way to talk about abstract syntax trees.
Practically, though, syntax-ppss
does not generally work for any mode. It's fundamentally targeted at Lisp-like languages, and if the concrete language of a language deviates from Sexps too much, it doesn't make much sense anymore to use Sexp commands to manipulate the language. It'd work, but there'd be too big a gap between the abstract representation and the concrete syntax, which would make most commands counter-intuitive.
However, some of underlying infrastructure of syntax-ppss
is fairly generic. Major modes typically try hard to plug into it, because it makes them work nicely with many built-in Emacs' features and provides a generic interface for other 3rd party packages such as Smartparens.
Notably, syntax-ppss
relies on Syntax Tables for strings and comments. Syntax Tables categorize individual characters by their syntactic class. There are classes for paired delimiters, string delimiters and comment characters.
The structure of strings and comments is fairly similar in almost all programming languages: Strings are normally enclosed in special delimiters. Comments can have special delimiters as well, or start with a certain character and extend to the end of the line. These structures can easily be captured in syntax tables, and almost all major modes define appropriate syntax tables, if only to profit from Emacs' syntactic fortification.
Hence, syntax-ppss
works well for strings and comments in almost any language, but support and “usefulness” of other features varies.