2013-09-03 25 views
5

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 ;-)

+1

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

+0

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) –

cevap

1

kullandığınız sürüm I Zaten bir buldum hayal gibi ben bu kadar uzun düzgün boşlukları kolları yanı sıra antlr3 için herhangi dilbilgisi kabul edeceğiz, dedi ki Bu soruyu çok uzun zaman önce gönderildiği gibi yanıtlayın. Hatta hala: CSS3 için iyi bir antlr v4 dilbilgisi burada antlr Github bulunabilir

: - bu, ancak Benioku'ndaki belirtildiği üzere

Antlr v4 CSS3 Grammar

, bu CSS dosyaları bir dizi üzerinde çalışıyor @import veya @include'un tam sözdizimini işlemez.

İlgili konular