Çok basit bir Antlr dilbilgisini Xtext'e dönüştürmek istiyorum, bu nedenle syntactic predicates, fancy features of Antlr not provided by Xtext. Bu dilbilgisiBasit Antlr dilbilgisini Xtext'e dönüştürme
grammar simple; // Antlr3
foo: number+;
number: NUMBER;
NUMBER: '0'..'9'+;
ve Xtext muadili
grammar Simple; // Xtext
import "http://www.eclipse.org/emf/2002/Ecore" as ecore
generate Simple "http://www.example.org/Simple"
Foo: dummy=Number+;
Number: NUMBER_TOKEN;
terminal NUMBER_TOKEN: '0'..'9'+;
Xtext perde arkasında antlr kullanır, ancak iki biçimi tam olarak aynı değildir düşünün. terminaller
import "http://www.eclipse.org/emf/2002/Ecore" as ecore
Dahil terminal
anahtar kelime ile
- Önek terminalleri: dahil Ben değiştirmek zorunda epeyce can sıkıcı (ve kısmen anlaşılabilir) şeyler vardır seviye kuralı
foo: dummy=number+
- Kural ve terminal adlarının büyük/küçük harfe duyarsız olmaları gerektiğini unutmayın.
- İsteğe bağlı olarak, Java sözleşmesini takip etmek için ilk kural adları harfini büyük yazınız.
Bu dönüştürmeyi en az basit durumlarda otomatik olarak yapmak için bir araç var mı? Değilse, gerekli değişiklikler için daha eksiksiz bir kontrol listesi var mı?
Tam olarak ne istediğinizi yapan herhangi bir araç bilmiyorum, ancak dilbilgisini XML'ye dönüştürebilir (http://bottlecaps.de/convert/) ve sonuçta bazı XQuery veya XSLT'yi çalıştırabilirsiniz. İstenen hedef formatına dönüşür. Dönüştürücü, bir ANTLR dilbilgisinin sadece temel yapısını anlar, ama sizin için istediğin buydu. – Gunther
@BartKiers ve Gunther, yardımlarınız için ikinize de minnettarım, ancak bu konuşma konu dışı görünüyor. Gunther, çeviriciniz için bir sorun takipçiniz olabilir (ki ben de çok keyifle kullanıyorum), bu yüzden orada devam edilebilir. –
@AdamSchmideg, haklısınız, tamamen konuyla ilgili değildi, ama konuyla ilgili bir yorum yaptı: Dürüst olmak gerekirse, biraz yapışkanlısınız. Ama yeterince adil, senin sorunun, o yüzden sesimi kaldıracağım. Özür dilerim. @Gunther, bu Q & A'daki '~' char kullanımını açıklamaya çalıştım: http://stackoverflow.com/questions/8284919/negating-inside-lexer-and-parser-rules –