antlr4のために良いCSS文法がありますか? antlr3にはいくつかの文法があることは知っていますが、v4で追加された「レクサーモード」なしでCSSを解析するのは簡単ではありません。どうして?Antlr v4の優れたCSS文法
には、以下のCSSセレクタを考えてみましょう:ほとんどの文法で
.hello.world { /* ... */ }
.hello .world { /* ... */ }
、空白は無視されます。しかし、空白を無視すると、上の2つのセレクタをパーサーレベルで区別することは不可能になります。
また、空白を無視しないと、WSで文法がかなり騒がしくなりますか?またはWS *パターンは、空白がで、ほとんどがであり、セレクタ内で発生しない限り意味がありません。あなたが異なるコンテキストを入力するたびにレクサー・モードをサポートしてあなたが字句解析のための新しいルールを定義することができますので、antlr4からのモードは(は「セレクタ」コンテキスト内の空白を無視しない、すなわち)。、入って来るところである
私はあなたがすでに見つけたと想像
私たちは、オープンソースの優れたCSSパーサライブラリであるphloc-cssを使用しました。最新のCSS仕様を大いにサポートし、非常に積極的に開発しました。 – gzak
おそらく参考になるhttp://www.antlr2.org/article/whitespace/(つまり、それ以外のものと同様にトークン化するだけで、charVocabularyは約3.3以降では不要です) –