PACECRITT: Kompakt Dilbilgisi için Langium 4.0 Infix Operatörleri Sahibi

Dolandırıcı Bildirim

Bu makale bu nedenle İngilizce olarak mevcuttur. Yayınlamadan önce teknik yardım ve editoryal revizyon ile çevrildi.

Sürüm 4.0 ile, Açık Kaynak Langium Projesi, Infix operatörlerine destek de dahil olmak üzere bir dizi yeni işlev yayınladı. Bu genişleme sadece karmaşık ifadelerin tanımını basitleştirmekle kalmayıp aynı zamanda analiz performansını da artırmalıdır. Langium, TypeScript'te belirli yerli dillerin (DSL) geliştirilmesi için bir tutulma çerçevesidir ve Dilsel Sunucu Protokolü (LSP) için entegre destek sunar.

Şimdiye kadar, geliştiriciler, ağaçların yapısının sözde dönüşümleri yoluyla ilaveler, karşılaştırmalar veya mantıksal bağlantılar gibi ikili ifadeleri tanımlamak zorunda kaldılar. Geliştirme ekibine göre, yeni Infix gösterimi bu operatörleri ifade etmenin daha kompakt bir yoludur ve okuması ve anlaması daha kolaydır.

Dosyanın gösterimi, operatörlerin operankları arasında, örneğin yazımlarda gösterilmesini gösterir. a + b. Bu form, JavaScript veya Python gibi programlarla bilinir ve olağan matematiksel gösterime karşılık gelir. Aksine, operatörlerin operandi öncesi veya sonra olduğu öneki veya postfixes vardır.

ChangeLog'un basit bir örneği yeni sözdizimini göstermektedir:


infix BinaryExpression on PrimaryExpression:
    '%' // <-- Highest precedence
    > '^'
    > '*' | '/'
    > '+' | '-';  // <-- Lowest precedence

PrimaryExpression infers Expression:
    '(' Expression ')' |
    {infer NumberLiteral} value=NUMBER;

Yeni gösterim görünüşe göre sadece daha sözdizimsel olarak zarif değil, aynı zamanda daha verimli olarak da ilan ediliyor: Bu ifadeleri analiz ederken, önceki yaklaşımdan % 50'ye kadar daha hızlı olmalı. Bu bilgiler geliştirme ekibinin iç ölçümlerine dayanmaktadır. Önceki yöntem mevcuttur, bu da kademeli bir değişikliğe izin verir.

Eclipse Project Langium, metinsel dillerini tasarlamak ve bunları Visual Studio Kodu gibi geliştirme araçlarıyla entegre etmek isteyen geliştiricileri hedeflemektedir. Dilin tanımını, dalların üretilmesini ve dil sunucusunu bir dizi araçta birleştirir. Antlr (dilin tanınması için başka bir araç) gibi klasik ayrıştırıcı jeneratörlerinin aksine, Langium karakter olarak yazılır ve bu nedenle modern web araç zinciriyle daha yakın dişlere izin verir.

Infix gösterimine ek olarak, Langium, dilbilgisi tanımları için çok değerli veya titiz moda gibi diğer yenilikler sunar. Duyurunun katkısına göre, karmaşık projeler için, örneğin modelleme gereksinimleri, konfigürasyon dilleri veya belirli etki alanı araçları için giderek daha fazla kullanılmaktadır.

GitHub'daki Chathelog'da daha fazla bilgi mevcuttur.


(MDO)


Yayımlandı

kategorisi

yazarı:

Etiketler:

Yorumlar

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir