Orada antlr4 için iyi CSS dilbilgisi var mı? Antlr3 için bazı gramerlerin olduğunu biliyorum, ancak CSS, v4'te eklenen "lexer modları" olmadan ayrıştırmak için önemsiz değil. Niye ya? En grammars iseAntlr v4'te iyi CSS dilbilgisi
.hello.world { /* ... */ }
.hello .world { /* ... */ }
, boşluk basitçe göz ardı edilir:
aşağıdaki CSS seçicileri düşünün. Fakat beyaz boşluğu görmezden gelirseniz, yukarıdaki iki seçiciyi ayrıştırıcı düzeyinde ayırt etmek imkansız hale gelir.
Sonra tekrar, eğer boşlukları göz ardı etmiyorsanız, dilbilgisi WS ile oldukça gürültülü olur mu? veya herhangi bir yerde WS * desenleri, boşluklar çoğunlukla bir seçici içinde gerçekleşmediği sürece anlamsızdır. dan modları içeri antlr4 nereye çünkü farklı bağlamlar girin her lexer (yani "seçici" kapsamında boşluk görmezden do) için yeni kurallar tanımlayabilirsiniz lexer modları için destek olduğunu
.
biz şimdi yine ;-)
Sadece mükemmel bir açık kaynak kodlu CSS ayrıştırıcı kitaplığı olan phloc-css kullanarak bitti. En son CSS belirtimi için büyük destek ve çok aktif olarak geliştirildi. – gzak
Belki yardımcı olabilir http://www.antlr2.org/article/whitespace/ (diğer bir deyişle, her şeyi olduğu gibi sadece belirtmek, 3.3) beri charVocabulary gerekli değildir) –