Aslında, s-ifadeleri, soyut sözdizimi ağaçları için yalnızca somut bir sözdizimi olmaları bakımından temelde “soyut sözdizimi” dir ve bu nedenle herhangi bir dil, s ifadeleri olarak temsil edilebilir ve s-ifadesi komutlarıyla manipüle edilebilir. Dolayısıyla syntax-ppss
“Sexps” den bahsetmek Lisp'in soyut sözdizimi ağaçları hakkında konuşmanın basit bir yoludur.
Bununla birlikte, pratik olarak, syntax-ppss
genellikle herhangi bir mod için çalışmaz. Temelde Lisp benzeri dilleri hedefliyor ve bir dilin somut dili Sexps'ten çok farklıysa, dili manipüle etmek için Sexp komutlarını kullanmak artık bir şey ifade etmiyor. İşe yarardı, ancak soyut temsil ile somut sözdizimi arasında çok büyük bir boşluk olurdu, bu da çoğu komutun sezgisel olmasını sağlayacaktır.
Ancak, altta yatan altyapının bir syntax-ppss
kısmı oldukça geneldir. Ana modlar genellikle takmak için çok uğraşır, çünkü birçok yerleşik Emacs'ın özellikleriyle iyi çalışır ve Smartparens gibi diğer 3. taraf paketleri için genel bir arayüz sağlar.
Özellikle, dizeler ve yorumlar için Sözdizimi Tablolarınasyntax-ppss
dayanır . Sözdizimi Tabloları, tek tek karakterleri sözdizimsel sınıflarına göre sınıflandırır. Eşlenmiş sınırlayıcılar, dize sınırlayıcıları ve yorum karakterleri için sınıflar vardır.
Dizelerin ve yorumların yapısı hemen hemen tüm programlama dillerinde oldukça benzerdir: Dizeler normalde özel sınırlayıcılarla çevrelenir. Yorumlar da özel sınırlayıcılara sahip olabilir veya belirli bir karakterle başlayıp satırın sonuna kadar uzanabilir. Bu yapılar, sözdizimi tablolarında kolayca yakalanabilir ve neredeyse tüm büyük modlar, yalnızca Emacs'ın sözdizimsel takviyesinden faydalanmak için uygun sözdizimi tablolarını tanımlar.
Bu nedenle, syntax-ppss
neredeyse her dilde dizeler ve yorumlar için iyi çalışır, ancak diğer özelliklerin desteği ve "kullanışlılığı" değişir.