---
source: crates/biome_css_parser/tests/spec_test.rs
expression: snapshot
---
## Input
```css
* , * {}
*|* {}
foo|* {}
```
## AST
```
CssRoot {
bom_token: missing (optional),
rules: CssRuleList [
CssQualifiedRule {
prelude: CssSelectorList [
CssCompoundSelector {
nesting_selectors: CssNestedSelectorList [],
simple_selector: CssUniversalSelector {
namespace: missing (optional),
star_token: STAR@0..2 "*" [] [Whitespace(" ")],
},
sub_selectors: CssSubSelectorList [],
},
COMMA@2..4 "," [] [Whitespace(" ")],
CssCompoundSelector {
nesting_selectors: CssNestedSelectorList [],
simple_selector: CssUniversalSelector {
namespace: missing (optional),
star_token: STAR@4..6 "*" [] [Whitespace(" ")],
},
sub_selectors: CssSubSelectorList [],
},
],
block: CssDeclarationOrRuleBlock {
l_curly_token: L_CURLY@6..7 "{" [] [],
items: CssDeclarationOrRuleList [],
r_curly_token: R_CURLY@7..8 "}" [] [],
},
},
CssQualifiedRule {
prelude: CssSelectorList [
CssCompoundSelector {
nesting_selectors: CssNestedSelectorList [],
simple_selector: CssUniversalSelector {
namespace: CssNamespace {
prefix: CssUniversalNamespacePrefix {
star_token: STAR@8..10 "*" [Newline("\n")] [],
},
bitwise_or_token: PIPE@10..11 "|" [] [],
},
star_token: STAR@11..13 "*" [] [Whitespace(" ")],
},
sub_selectors: CssSubSelectorList [],
},
],
block: CssDeclarationOrRuleBlock {
l_curly_token: L_CURLY@13..14 "{" [] [],
items: CssDeclarationOrRuleList [],
r_curly_token: R_CURLY@14..15 "}" [] [],
},
},
CssQualifiedRule {
prelude: CssSelectorList [
CssCompoundSelector {
nesting_selectors: CssNestedSelectorList [],
simple_selector: CssUniversalSelector {
namespace: CssNamespace {
prefix: CssNamedNamespacePrefix {
name: CssIdentifier {
value_token: IDENT@15..19 "foo" [Newline("\n")] [],
},
},
bitwise_or_token: PIPE@19..20 "|" [] [],
},
star_token: STAR@20..22 "*" [] [Whitespace(" ")],
},
sub_selectors: CssSubSelectorList [],
},
],
block: CssDeclarationOrRuleBlock {
l_curly_token: L_CURLY@22..23 "{" [] [],
items: CssDeclarationOrRuleList [],
r_curly_token: R_CURLY@23..24 "}" [] [],
},
},
],
eof_token: EOF@24..25 "" [Newline("\n")] [],
}
```
## CST
```
0: CSS_ROOT@0..25
0: (empty)
1: CSS_RULE_LIST@0..24
0: CSS_QUALIFIED_RULE@0..8
0: CSS_SELECTOR_LIST@0..6
0: CSS_COMPOUND_SELECTOR@0..2
0: CSS_NESTED_SELECTOR_LIST@0..0
1: CSS_UNIVERSAL_SELECTOR@0..2
0: (empty)
1: STAR@0..2 "*" [] [Whitespace(" ")]
2: CSS_SUB_SELECTOR_LIST@2..2
1: COMMA@2..4 "," [] [Whitespace(" ")]
2: CSS_COMPOUND_SELECTOR@4..6
0: CSS_NESTED_SELECTOR_LIST@4..4
1: CSS_UNIVERSAL_SELECTOR@4..6
0: (empty)
1: STAR@4..6 "*" [] [Whitespace(" ")]
2: CSS_SUB_SELECTOR_LIST@6..6
1: CSS_DECLARATION_OR_RULE_BLOCK@6..8
0: L_CURLY@6..7 "{" [] []
1: CSS_DECLARATION_OR_RULE_LIST@7..7
2: R_CURLY@7..8 "}" [] []
1: CSS_QUALIFIED_RULE@8..15
0: CSS_SELECTOR_LIST@8..13
0: CSS_COMPOUND_SELECTOR@8..13
0: CSS_NESTED_SELECTOR_LIST@8..8
1: CSS_UNIVERSAL_SELECTOR@8..13
0: CSS_NAMESPACE@8..11
0: CSS_UNIVERSAL_NAMESPACE_PREFIX@8..10
0: STAR@8..10 "*" [Newline("\n")] []
1: PIPE@10..11 "|" [] []
1: STAR@11..13 "*" [] [Whitespace(" ")]
2: CSS_SUB_SELECTOR_LIST@13..13
1: CSS_DECLARATION_OR_RULE_BLOCK@13..15
0: L_CURLY@13..14 "{" [] []
1: CSS_DECLARATION_OR_RULE_LIST@14..14
2: R_CURLY@14..15 "}" [] []
2: CSS_QUALIFIED_RULE@15..24
0: CSS_SELECTOR_LIST@15..22
0: CSS_COMPOUND_SELECTOR@15..22
0: CSS_NESTED_SELECTOR_LIST@15..15
1: CSS_UNIVERSAL_SELECTOR@15..22
0: CSS_NAMESPACE@15..20
0: CSS_NAMED_NAMESPACE_PREFIX@15..19
0: CSS_IDENTIFIER@15..19
0: IDENT@15..19 "foo" [Newline("\n")] []
1: PIPE@19..20 "|" [] []
1: STAR@20..22 "*" [] [Whitespace(" ")]
2: CSS_SUB_SELECTOR_LIST@22..22
1: CSS_DECLARATION_OR_RULE_BLOCK@22..24
0: L_CURLY@22..23 "{" [] []
1: CSS_DECLARATION_OR_RULE_LIST@23..23
2: R_CURLY@23..24 "}" [] []
2: EOF@24..25 "" [Newline("\n")] []
```