对于antlr4,有没有好的CSS语法?我知道antlr3有一些语法,但事实证明,如果没有"词法分析器模式"(在v4中添加),CSS解析并不容易.为什么?
考虑以下CSS选择器:
.hello.world { /* ... */ } .hello .world { /* ... */ }
在大多数语法中,空格只是被忽略了.但是如果忽略空格,就无法在解析器级别区分上面的两个选择器.
再说一遍,如果你不忽略空格,那么语法会变得非常嘈杂吗?或WS*模式无处不在,因为空格几乎没有意义,除非它出现在选择器中.
这是来自antlr4的模式的来源,因为只要你输入不同的上下文(即不要忽略"selector"上下文中的空格),你就可以为词法分析器模式定义词法分析器的新规则.
也就是说,我会接受antlr3的任何语法,只要它正确处理空格,因为这是我们现在正在使用的版本;-)