diff --git a/crates/biome_css_factory/src/generated/node_factory.rs b/crates/biome_css_factory/src/generated/node_factory.rs index 3c1834db6053..4df74a975029 100644 --- a/crates/biome_css_factory/src/generated/node_factory.rs +++ b/crates/biome_css_factory/src/generated/node_factory.rs @@ -158,6 +158,20 @@ pub fn css_class_selector(dot_token: SyntaxToken, name: CssIdentifier) -> CssCla ], )) } +pub fn css_color_profile_at_rule( + color_profile_token: SyntaxToken, + name: CssIdentifier, + block: CssBlock, +) -> CssColorProfileAtRule { + CssColorProfileAtRule::unwrap_cast(SyntaxNode::new_detached( + CssSyntaxKind::CSS_COLOR_PROFILE_AT_RULE, + [ + Some(SyntaxElement::Token(color_profile_token)), + Some(SyntaxElement::Node(name.into_syntax())), + Some(SyntaxElement::Node(block.into_syntax())), + ], + )) +} pub fn css_complex_selector( left: AnyCssSelector, combinator_token: SyntaxToken, @@ -206,6 +220,20 @@ impl CssCompoundSelectorBuilder { )) } } +pub fn css_counter_style_at_rule( + counter_style_token: SyntaxToken, + name: CssIdentifier, + block: CssBlock, +) -> CssCounterStyleAtRule { + CssCounterStyleAtRule::unwrap_cast(SyntaxNode::new_detached( + CssSyntaxKind::CSS_COUNTER_STYLE_AT_RULE, + [ + Some(SyntaxElement::Token(counter_style_token)), + Some(SyntaxElement::Node(name.into_syntax())), + Some(SyntaxElement::Node(block.into_syntax())), + ], + )) +} pub fn css_custom_property(value_token: SyntaxToken) -> CssCustomProperty { CssCustomProperty::unwrap_cast(SyntaxNode::new_detached( CssSyntaxKind::CSS_CUSTOM_PROPERTY, @@ -588,7 +616,7 @@ pub fn css_percentage(value: CssNumber, reminder_token: SyntaxToken) -> CssPerce )) } pub fn css_pseudo_class_function_compound_selector( - name: CssIdentifier, + name_token: SyntaxToken, l_paren_token: SyntaxToken, selector: AnyCssCompoundSelector, r_paren_token: SyntaxToken, @@ -596,7 +624,7 @@ pub fn css_pseudo_class_function_compound_selector( CssPseudoClassFunctionCompoundSelector::unwrap_cast(SyntaxNode::new_detached( CssSyntaxKind::CSS_PSEUDO_CLASS_FUNCTION_COMPOUND_SELECTOR, [ - Some(SyntaxElement::Node(name.into_syntax())), + Some(SyntaxElement::Token(name_token)), Some(SyntaxElement::Token(l_paren_token)), Some(SyntaxElement::Node(selector.into_syntax())), Some(SyntaxElement::Token(r_paren_token)), @@ -604,7 +632,7 @@ pub fn css_pseudo_class_function_compound_selector( )) } pub fn css_pseudo_class_function_compound_selector_list( - name: CssIdentifier, + name_token: SyntaxToken, l_paren_token: SyntaxToken, compound_selector_list: CssCompoundSelectorList, r_paren_token: SyntaxToken, @@ -612,7 +640,7 @@ pub fn css_pseudo_class_function_compound_selector_list( CssPseudoClassFunctionCompoundSelectorList::unwrap_cast(SyntaxNode::new_detached( CssSyntaxKind::CSS_PSEUDO_CLASS_FUNCTION_COMPOUND_SELECTOR_LIST, [ - Some(SyntaxElement::Node(name.into_syntax())), + Some(SyntaxElement::Token(name_token)), Some(SyntaxElement::Token(l_paren_token)), Some(SyntaxElement::Node(compound_selector_list.into_syntax())), Some(SyntaxElement::Token(r_paren_token)), @@ -620,7 +648,7 @@ pub fn css_pseudo_class_function_compound_selector_list( )) } pub fn css_pseudo_class_function_identifier( - name: CssIdentifier, + name_token: SyntaxToken, l_paren_token: SyntaxToken, ident: CssIdentifier, r_paren_token: SyntaxToken, @@ -628,7 +656,7 @@ pub fn css_pseudo_class_function_identifier( CssPseudoClassFunctionIdentifier::unwrap_cast(SyntaxNode::new_detached( CssSyntaxKind::CSS_PSEUDO_CLASS_FUNCTION_IDENTIFIER, [ - Some(SyntaxElement::Node(name.into_syntax())), + Some(SyntaxElement::Token(name_token)), Some(SyntaxElement::Token(l_paren_token)), Some(SyntaxElement::Node(ident.into_syntax())), Some(SyntaxElement::Token(r_paren_token)), @@ -636,7 +664,7 @@ pub fn css_pseudo_class_function_identifier( )) } pub fn css_pseudo_class_function_nth( - name: CssIdentifier, + name_token: SyntaxToken, l_paren_token: SyntaxToken, selector: AnyCssPseudoClassNthSelector, r_paren_token: SyntaxToken, @@ -644,7 +672,7 @@ pub fn css_pseudo_class_function_nth( CssPseudoClassFunctionNth::unwrap_cast(SyntaxNode::new_detached( CssSyntaxKind::CSS_PSEUDO_CLASS_FUNCTION_NTH, [ - Some(SyntaxElement::Node(name.into_syntax())), + Some(SyntaxElement::Token(name_token)), Some(SyntaxElement::Token(l_paren_token)), Some(SyntaxElement::Node(selector.into_syntax())), Some(SyntaxElement::Token(r_paren_token)), @@ -652,7 +680,7 @@ pub fn css_pseudo_class_function_nth( )) } pub fn css_pseudo_class_function_relative_selector_list( - name: CssIdentifier, + name_token: SyntaxToken, l_paren_token: SyntaxToken, relative_selector_list: CssRelativeSelectorList, r_paren_token: SyntaxToken, @@ -660,7 +688,7 @@ pub fn css_pseudo_class_function_relative_selector_list( CssPseudoClassFunctionRelativeSelectorList::unwrap_cast(SyntaxNode::new_detached( CssSyntaxKind::CSS_PSEUDO_CLASS_FUNCTION_RELATIVE_SELECTOR_LIST, [ - Some(SyntaxElement::Node(name.into_syntax())), + Some(SyntaxElement::Token(name_token)), Some(SyntaxElement::Token(l_paren_token)), Some(SyntaxElement::Node(relative_selector_list.into_syntax())), Some(SyntaxElement::Token(r_paren_token)), @@ -668,7 +696,7 @@ pub fn css_pseudo_class_function_relative_selector_list( )) } pub fn css_pseudo_class_function_selector( - name: CssIdentifier, + name_token: SyntaxToken, l_paren_token: SyntaxToken, selector: AnyCssSelector, r_paren_token: SyntaxToken, @@ -676,7 +704,7 @@ pub fn css_pseudo_class_function_selector( CssPseudoClassFunctionSelector::unwrap_cast(SyntaxNode::new_detached( CssSyntaxKind::CSS_PSEUDO_CLASS_FUNCTION_SELECTOR, [ - Some(SyntaxElement::Node(name.into_syntax())), + Some(SyntaxElement::Token(name_token)), Some(SyntaxElement::Token(l_paren_token)), Some(SyntaxElement::Node(selector.into_syntax())), Some(SyntaxElement::Token(r_paren_token)), @@ -684,7 +712,7 @@ pub fn css_pseudo_class_function_selector( )) } pub fn css_pseudo_class_function_selector_list( - name: CssIdentifier, + name_token: SyntaxToken, l_paren_token: SyntaxToken, selector_list: CssSelectorList, r_paren_token: SyntaxToken, @@ -692,7 +720,7 @@ pub fn css_pseudo_class_function_selector_list( CssPseudoClassFunctionSelectorList::unwrap_cast(SyntaxNode::new_detached( CssSyntaxKind::CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST, [ - Some(SyntaxElement::Node(name.into_syntax())), + Some(SyntaxElement::Token(name_token)), Some(SyntaxElement::Token(l_paren_token)), Some(SyntaxElement::Node(selector_list.into_syntax())), Some(SyntaxElement::Token(r_paren_token)), @@ -700,7 +728,7 @@ pub fn css_pseudo_class_function_selector_list( )) } pub fn css_pseudo_class_function_value_list( - name: CssIdentifier, + name_token: SyntaxToken, l_paren_token: SyntaxToken, value_list: CssPseudoValueList, r_paren_token: SyntaxToken, @@ -708,7 +736,7 @@ pub fn css_pseudo_class_function_value_list( CssPseudoClassFunctionValueList::unwrap_cast(SyntaxNode::new_detached( CssSyntaxKind::CSS_PSEUDO_CLASS_FUNCTION_VALUE_LIST, [ - Some(SyntaxElement::Node(name.into_syntax())), + Some(SyntaxElement::Token(name_token)), Some(SyntaxElement::Token(l_paren_token)), Some(SyntaxElement::Node(value_list.into_syntax())), Some(SyntaxElement::Token(r_paren_token)), diff --git a/crates/biome_css_factory/src/generated/syntax_factory.rs b/crates/biome_css_factory/src/generated/syntax_factory.rs index d1db19262b7b..83e69af39f8d 100644 --- a/crates/biome_css_factory/src/generated/syntax_factory.rs +++ b/crates/biome_css_factory/src/generated/syntax_factory.rs @@ -280,6 +280,39 @@ impl SyntaxFactory for CssSyntaxFactory { } slots.into_node(CSS_CLASS_SELECTOR, children) } + CSS_COLOR_PROFILE_AT_RULE => { + let mut elements = (&children).into_iter(); + let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default(); + let mut current_element = elements.next(); + if let Some(element) = ¤t_element { + if element.kind() == T![color_profile] { + slots.mark_present(); + current_element = elements.next(); + } + } + slots.next_slot(); + if let Some(element) = ¤t_element { + if CssIdentifier::can_cast(element.kind()) { + slots.mark_present(); + current_element = elements.next(); + } + } + slots.next_slot(); + if let Some(element) = ¤t_element { + if CssBlock::can_cast(element.kind()) { + slots.mark_present(); + current_element = elements.next(); + } + } + slots.next_slot(); + if current_element.is_some() { + return RawSyntaxNode::new( + CSS_COLOR_PROFILE_AT_RULE.to_bogus(), + children.into_iter().map(Some), + ); + } + slots.into_node(CSS_COLOR_PROFILE_AT_RULE, children) + } CSS_COMPLEX_SELECTOR => { let mut elements = (&children).into_iter(); let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default(); @@ -349,6 +382,39 @@ impl SyntaxFactory for CssSyntaxFactory { } slots.into_node(CSS_COMPOUND_SELECTOR, children) } + CSS_COUNTER_STYLE_AT_RULE => { + let mut elements = (&children).into_iter(); + let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default(); + let mut current_element = elements.next(); + if let Some(element) = ¤t_element { + if element.kind() == T![counter_style] { + slots.mark_present(); + current_element = elements.next(); + } + } + slots.next_slot(); + if let Some(element) = ¤t_element { + if CssIdentifier::can_cast(element.kind()) { + slots.mark_present(); + current_element = elements.next(); + } + } + slots.next_slot(); + if let Some(element) = ¤t_element { + if CssBlock::can_cast(element.kind()) { + slots.mark_present(); + current_element = elements.next(); + } + } + slots.next_slot(); + if current_element.is_some() { + return RawSyntaxNode::new( + CSS_COUNTER_STYLE_AT_RULE.to_bogus(), + children.into_iter().map(Some), + ); + } + slots.into_node(CSS_COUNTER_STYLE_AT_RULE, children) + } CSS_CUSTOM_PROPERTY => { let mut elements = (&children).into_iter(); let mut slots: RawNodeSlots<1usize> = RawNodeSlots::default(); @@ -1130,7 +1196,7 @@ impl SyntaxFactory for CssSyntaxFactory { let mut slots: RawNodeSlots<4usize> = RawNodeSlots::default(); let mut current_element = elements.next(); if let Some(element) = ¤t_element { - if CssIdentifier::can_cast(element.kind()) { + if matches!(element.kind(), T![host] | T![host_context]) { slots.mark_present(); current_element = elements.next(); } @@ -1170,7 +1236,10 @@ impl SyntaxFactory for CssSyntaxFactory { let mut slots: RawNodeSlots<4usize> = RawNodeSlots::default(); let mut current_element = elements.next(); if let Some(element) = ¤t_element { - if CssIdentifier::can_cast(element.kind()) { + if matches!( + element.kind(), + T![_moz_any] | T![_webkit_any] | T![past] | T![current] | T![future] + ) { slots.mark_present(); current_element = elements.next(); } @@ -1210,7 +1279,7 @@ impl SyntaxFactory for CssSyntaxFactory { let mut slots: RawNodeSlots<4usize> = RawNodeSlots::default(); let mut current_element = elements.next(); if let Some(element) = ¤t_element { - if CssIdentifier::can_cast(element.kind()) { + if element.kind() == T![dir] { slots.mark_present(); current_element = elements.next(); } @@ -1250,7 +1319,15 @@ impl SyntaxFactory for CssSyntaxFactory { let mut slots: RawNodeSlots<4usize> = RawNodeSlots::default(); let mut current_element = elements.next(); if let Some(element) = ¤t_element { - if CssIdentifier::can_cast(element.kind()) { + if matches!( + element.kind(), + T![nth_child] + | T![nth_last_child] + | T![nth_of_type] + | T![nth_last_of_type] + | T![nth_col] + | T![nth_last_col] + ) { slots.mark_present(); current_element = elements.next(); } @@ -1290,7 +1367,7 @@ impl SyntaxFactory for CssSyntaxFactory { let mut slots: RawNodeSlots<4usize> = RawNodeSlots::default(); let mut current_element = elements.next(); if let Some(element) = ¤t_element { - if CssIdentifier::can_cast(element.kind()) { + if element.kind() == T![has] { slots.mark_present(); current_element = elements.next(); } @@ -1330,7 +1407,7 @@ impl SyntaxFactory for CssSyntaxFactory { let mut slots: RawNodeSlots<4usize> = RawNodeSlots::default(); let mut current_element = elements.next(); if let Some(element) = ¤t_element { - if CssIdentifier::can_cast(element.kind()) { + if matches!(element.kind(), T![global] | T![local]) { slots.mark_present(); current_element = elements.next(); } @@ -1370,7 +1447,7 @@ impl SyntaxFactory for CssSyntaxFactory { let mut slots: RawNodeSlots<4usize> = RawNodeSlots::default(); let mut current_element = elements.next(); if let Some(element) = ¤t_element { - if CssIdentifier::can_cast(element.kind()) { + if matches!(element.kind(), T![matches] | T![not] | T![is] | T![where]) { slots.mark_present(); current_element = elements.next(); } @@ -1410,7 +1487,7 @@ impl SyntaxFactory for CssSyntaxFactory { let mut slots: RawNodeSlots<4usize> = RawNodeSlots::default(); let mut current_element = elements.next(); if let Some(element) = ¤t_element { - if CssIdentifier::can_cast(element.kind()) { + if element.kind() == T![lang] { slots.mark_present(); current_element = elements.next(); } diff --git a/crates/biome_css_parser/src/lexer/mod.rs b/crates/biome_css_parser/src/lexer/mod.rs index fb5fdd9de3bf..976ac34d9a6d 100644 --- a/crates/biome_css_parser/src/lexer/mod.rs +++ b/crates/biome_css_parser/src/lexer/mod.rs @@ -741,13 +741,13 @@ impl<'src> CssLexer<'src> { b"dir" => DIR_KW, b"global" => GLOBAL_KW, b"local" => LOCAL_KW, - b"-moz-any" => MOZANY_KW, - b"-webkit-any" => WEBKITANY_KW, + b"-moz-any" => _MOZ_ANY_KW, + b"-webkit-any" => _WEBKIT_ANY_KW, b"past" => PAST_KW, b"current" => CURRENT_KW, b"future" => FUTURE_KW, b"host" => HOST_KW, - b"host-context" => HOSTCONTEXT_KW, + b"host-context" => HOST_CONTEXT_KW, b"not" => NOT_KW, b"matches" => MATCHES_KW, b"is" => IS_KW, @@ -757,15 +757,17 @@ impl<'src> CssLexer<'src> { b"n" => N_KW, b"even" => EVEN_KW, b"odd" => ODD_KW, - b"nth-child" => NTHCHILD_KW, - b"nth-last-child" => NTHLASTCHILD_KW, - b"nth-of-type" => NTHOFTYPE_KW, - b"nth-last-of-type" => NTHLASTOFTYPE_KW, - b"nth-col" => NTHCOL_KW, - b"nth-last-col" => NTHLASTCOL_KW, + b"nth-child" => NTH_CHILD_KW, + b"nth-last-child" => NTH_LAST_CHILD_KW, + b"nth-of-type" => NTH_OF_TYPE_KW, + b"nth-last-of-type" => NTH_LAST_OF_TYPE_KW, + b"nth-col" => NTH_COL_KW, + b"nth-last-col" => NTH_LAST_COL_KW, b"ltr" => LTR_KW, b"rtl" => RTL_KW, b"charset" => CHARSET_KW, + b"color-profile" => COLOR_PROFILE_KW, + b"counter-style" => COUNTER_STYLE_KW, _ => IDENT, } } diff --git a/crates/biome_css_parser/src/syntax/at_rule/charset.rs b/crates/biome_css_parser/src/syntax/at_rule/charset.rs index 090b24da5afd..08b52b5fde19 100644 --- a/crates/biome_css_parser/src/syntax/at_rule/charset.rs +++ b/crates/biome_css_parser/src/syntax/at_rule/charset.rs @@ -10,13 +10,13 @@ use biome_parser::prelude::*; use biome_rowan::SyntaxKind; #[inline] -pub(crate) fn is_at_charset_rule(p: &mut CssParser) -> bool { +pub(crate) fn is_at_charset_at_rule(p: &mut CssParser) -> bool { p.at(T![charset]) } #[inline] -pub(crate) fn parse_at_charset_rule(p: &mut CssParser) -> ParsedSyntax { - if !is_at_charset_rule(p) { +pub(crate) fn parse_charset_at_rule(p: &mut CssParser) -> ParsedSyntax { + if !is_at_charset_at_rule(p) { return Absent; } diff --git a/crates/biome_css_parser/src/syntax/at_rule/color_profile.rs b/crates/biome_css_parser/src/syntax/at_rule/color_profile.rs new file mode 100644 index 000000000000..f1c4e138d82d --- /dev/null +++ b/crates/biome_css_parser/src/syntax/at_rule/color_profile.rs @@ -0,0 +1,47 @@ +use crate::parser::CssParser; +use crate::syntax::parse_error::expected_identifier; +use crate::syntax::{parse_or_recover_rule_block, parse_regular_identifier}; +use biome_css_syntax::CssSyntaxKind::*; +use biome_css_syntax::{CssSyntaxKind, T}; +use biome_parser::parse_recovery::ParseRecovery; +use biome_parser::parsed_syntax::ParsedSyntax::Present; +use biome_parser::prelude::ParsedSyntax::Absent; +use biome_parser::prelude::*; + +#[inline] +pub(crate) fn is_color_profile_at_rule(p: &mut CssParser) -> bool { + p.at(T![color_profile]) +} + +#[inline] +pub(crate) fn parse_color_profile_at_rule(p: &mut CssParser) -> ParsedSyntax { + if !is_color_profile_at_rule(p) { + return Absent; + } + + let m = p.start(); + + p.bump(T![color_profile]); + + let kind = if parse_regular_identifier(p) + .or_recover( + p, + &ParseRecovery::new(CSS_BOGUS, COLOR_PROFILE_RECOVERY_SET) + .enable_recovery_on_line_break(), + expected_identifier, + ) + .is_ok() + { + CSS_COLOR_PROFILE_AT_RULE + } else { + CSS_BOGUS_AT_RULE + }; + + if parse_or_recover_rule_block(p).is_err() { + return Present(m.complete(p, CSS_BOGUS_AT_RULE)); + } + + Present(m.complete(p, kind)) +} + +const COLOR_PROFILE_RECOVERY_SET: TokenSet = token_set![T!['{']]; diff --git a/crates/biome_css_parser/src/syntax/at_rule/counter_style.rs b/crates/biome_css_parser/src/syntax/at_rule/counter_style.rs new file mode 100644 index 000000000000..baa98b7f9b11 --- /dev/null +++ b/crates/biome_css_parser/src/syntax/at_rule/counter_style.rs @@ -0,0 +1,47 @@ +use crate::parser::CssParser; +use crate::syntax::parse_error::expected_identifier; +use crate::syntax::{parse_or_recover_rule_block, parse_regular_identifier}; +use biome_css_syntax::CssSyntaxKind::*; +use biome_css_syntax::{CssSyntaxKind, T}; +use biome_parser::parse_recovery::ParseRecovery; +use biome_parser::parsed_syntax::ParsedSyntax::Present; +use biome_parser::prelude::ParsedSyntax::Absent; +use biome_parser::prelude::*; + +#[inline] +pub(crate) fn is_at_counter_style_at_rule(p: &mut CssParser) -> bool { + p.at(T![counter_style]) +} + +#[inline] +pub(crate) fn parse_counter_style_at_rule(p: &mut CssParser) -> ParsedSyntax { + if !is_at_counter_style_at_rule(p) { + return Absent; + } + + let m = p.start(); + + p.bump(T![counter_style]); + + let kind = if parse_regular_identifier(p) + .or_recover( + p, + &ParseRecovery::new(CSS_BOGUS, COUNTER_STYLE_RECOVERY_SET) + .enable_recovery_on_line_break(), + expected_identifier, + ) + .is_ok() + { + CSS_COUNTER_STYLE_AT_RULE + } else { + CSS_BOGUS_AT_RULE + }; + + if parse_or_recover_rule_block(p).is_err() { + return Present(m.complete(p, CSS_BOGUS_AT_RULE)); + } + + Present(m.complete(p, kind)) +} + +const COUNTER_STYLE_RECOVERY_SET: TokenSet = token_set![T!['{']]; diff --git a/crates/biome_css_parser/src/syntax/at_rule/mod.rs b/crates/biome_css_parser/src/syntax/at_rule/mod.rs index 8fd32bd1f722..0cbb04c5e126 100644 --- a/crates/biome_css_parser/src/syntax/at_rule/mod.rs +++ b/crates/biome_css_parser/src/syntax/at_rule/mod.rs @@ -1,7 +1,15 @@ mod charset; +mod color_profile; +mod counter_style; use crate::parser::CssParser; -use crate::syntax::at_rule::charset::{is_at_charset_rule, parse_at_charset_rule}; +use crate::syntax::at_rule::charset::{is_at_charset_at_rule, parse_charset_at_rule}; +use crate::syntax::at_rule::color_profile::{ + is_color_profile_at_rule, parse_color_profile_at_rule, +}; +use crate::syntax::at_rule::counter_style::{ + is_at_counter_style_at_rule, parse_counter_style_at_rule, +}; use crate::syntax::parse_error::expected_any_at_rule; use biome_css_syntax::CssSyntaxKind::*; use biome_css_syntax::T; @@ -37,8 +45,12 @@ pub(crate) fn parse_at_rule(p: &mut CssParser) -> ParsedSyntax { #[inline] pub(crate) fn parse_any_at_rule(p: &mut CssParser) -> ParsedSyntax { - if is_at_charset_rule(p) { - parse_at_charset_rule(p) + if is_at_charset_at_rule(p) { + parse_charset_at_rule(p) + } else if is_color_profile_at_rule(p) { + parse_color_profile_at_rule(p) + } else if is_at_counter_style_at_rule(p) { + parse_counter_style_at_rule(p) } else { Absent } diff --git a/crates/biome_css_parser/src/syntax/mod.rs b/crates/biome_css_parser/src/syntax/mod.rs index e5ed99e6adcc..94de5b16d231 100644 --- a/crates/biome_css_parser/src/syntax/mod.rs +++ b/crates/biome_css_parser/src/syntax/mod.rs @@ -10,7 +10,7 @@ use crate::syntax::selector::CssSelectorList; use biome_css_syntax::CssSyntaxKind::*; use biome_css_syntax::{CssSyntaxKind, T}; use biome_parser::parse_lists::ParseSeparatedList; -use biome_parser::parse_recovery::ParseRecovery; +use biome_parser::parse_recovery::{ParseRecovery, RecoveryResult}; use biome_parser::prelude::ParsedSyntax; use biome_parser::prelude::ParsedSyntax::{Absent, Present}; use biome_parser::{token_set, CompletedMarker, Parser, ParserProgress, TokenSet}; @@ -54,18 +54,22 @@ pub(crate) fn parse_rule(p: &mut CssParser) -> CompletedMarker { CssSelectorList::default().parse_list(p); - if parse_rule_block(p) - .or_recover( - p, - &ParseRecovery::new(CSS_BOGUS_BODY, BODY_RECOVERY_SET), - expected_block, - ) - .is_err() - { - return m.complete(p, CSS_BOGUS_RULE); - } + let kind = if parse_or_recover_rule_block(p).is_ok() { + CSS_RULE + } else { + CSS_BOGUS_RULE + }; + + m.complete(p, kind) +} - m.complete(p, CSS_RULE) +#[inline] +pub(crate) fn parse_or_recover_rule_block(p: &mut CssParser) -> RecoveryResult { + parse_rule_block(p).or_recover( + p, + &ParseRecovery::new(CSS_BOGUS_BODY, BODY_RECOVERY_SET).enable_recovery_on_line_break(), + expected_block, + ) } #[inline] diff --git a/crates/biome_css_parser/src/syntax/selector/pseudo_class/function_compound_selector.rs b/crates/biome_css_parser/src/syntax/selector/pseudo_class/function_compound_selector.rs index a7d3eb9a5f58..f6448f1df9ff 100644 --- a/crates/biome_css_parser/src/syntax/selector/pseudo_class/function_compound_selector.rs +++ b/crates/biome_css_parser/src/syntax/selector/pseudo_class/function_compound_selector.rs @@ -1,6 +1,5 @@ use crate::parser::CssParser; use crate::syntax::parse_error::expected_compound_selector; -use crate::syntax::parse_regular_identifier; use crate::syntax::selector::{ eat_or_recover_selector_function_close_token, parse_compound_selector, recover_selector_function_parameter, @@ -12,7 +11,7 @@ use biome_parser::parsed_syntax::ParsedSyntax::{Absent, Present}; use biome_parser::{token_set, Parser, TokenSet}; const PSEUDO_CLASS_FUNCTION_COMPOUND_SELECTOR_SET: TokenSet = - token_set![HOST_KW, HOSTCONTEXT_KW]; + token_set![T![host], T![host_context]]; #[inline] pub(crate) fn is_at_pseudo_class_function_compound_selector(p: &mut CssParser) -> bool { @@ -27,15 +26,14 @@ pub(crate) fn parse_pseudo_class_function_compound_selector(p: &mut CssParser) - let m = p.start(); - // we don't need to check if the identifier is valid, because we already did that - parse_regular_identifier(p).ok(); + p.bump_ts(PSEUDO_CLASS_FUNCTION_COMPOUND_SELECTOR_SET); p.bump(T!['(']); let kind = match parse_compound_selector(p) { Present(selector) => { if eat_or_recover_selector_function_close_token(p, selector, expected_compound_selector) { - CSS_PSEUDO_CLASS_FUNCTION_SELECTOR + CSS_PSEUDO_CLASS_FUNCTION_COMPOUND_SELECTOR } else { CSS_BOGUS_PSEUDO_CLASS } diff --git a/crates/biome_css_parser/src/syntax/selector/pseudo_class/function_compound_selector_list.rs b/crates/biome_css_parser/src/syntax/selector/pseudo_class/function_compound_selector_list.rs index 02dce5bb694b..8a9ccc008d95 100644 --- a/crates/biome_css_parser/src/syntax/selector/pseudo_class/function_compound_selector_list.rs +++ b/crates/biome_css_parser/src/syntax/selector/pseudo_class/function_compound_selector_list.rs @@ -1,6 +1,5 @@ use crate::parser::CssParser; use crate::syntax::parse_error::expected_compound_selector; -use crate::syntax::parse_regular_identifier; use crate::syntax::selector::{ eat_or_recover_selector_function_close_token, parse_compound_selector, }; @@ -15,8 +14,13 @@ use biome_parser::parsed_syntax::ParsedSyntax; use biome_parser::parsed_syntax::ParsedSyntax::{Absent, Present}; use biome_parser::{token_set, Parser, TokenSet}; -const PSEUDO_CLASS_FUNCTION_COMPOUND_SELECTOR_LIST_SET: TokenSet = - token_set![MOZANY_KW, WEBKITANY_KW, PAST_KW, CURRENT_KW, FUTURE_KW]; +const PSEUDO_CLASS_FUNCTION_COMPOUND_SELECTOR_LIST_SET: TokenSet = token_set![ + T![_moz_any], + T![_webkit_any], + T![past], + T![current], + T![future] +]; #[inline] pub(crate) fn is_at_pseudo_class_function_compound_selector_list(p: &mut CssParser) -> bool { @@ -33,8 +37,7 @@ pub(crate) fn parse_pseudo_class_function_compound_selector_list( let m = p.start(); - // we don't need to check if the identifier is valid, because we already did that - parse_regular_identifier(p).ok(); + p.bump_ts(PSEUDO_CLASS_FUNCTION_COMPOUND_SELECTOR_LIST_SET); p.bump(T!['(']); let list = CssCompoundSelectorList.parse_list(p); diff --git a/crates/biome_css_parser/src/syntax/selector/pseudo_class/function_identifier.rs b/crates/biome_css_parser/src/syntax/selector/pseudo_class/function_identifier.rs index 7e354b33ebdb..990a66b0b7df 100644 --- a/crates/biome_css_parser/src/syntax/selector/pseudo_class/function_identifier.rs +++ b/crates/biome_css_parser/src/syntax/selector/pseudo_class/function_identifier.rs @@ -11,7 +11,7 @@ use biome_parser::parsed_syntax::ParsedSyntax; use biome_parser::parsed_syntax::ParsedSyntax::{Absent, Present}; use biome_parser::{token_set, Parser, TokenSet}; -const PSEUDO_CLASS_FUNCTION_IDENTIFIER_SET: TokenSet = token_set![DIR_KW]; +const PSEUDO_CLASS_FUNCTION_IDENTIFIER_SET: TokenSet = token_set![T![dir]]; #[inline] pub(crate) fn is_at_pseudo_class_function_identifier(p: &mut CssParser) -> bool { p.at_ts(PSEUDO_CLASS_FUNCTION_IDENTIFIER_SET) && p.nth_at(1, T!['(']) @@ -25,8 +25,7 @@ pub(crate) fn parse_pseudo_class_function_identifier(p: &mut CssParser) -> Parse let m = p.start(); - // we don't need to check if the identifier is valid, because we already did that - parse_regular_identifier(p).ok(); + p.bump_ts(PSEUDO_CLASS_FUNCTION_IDENTIFIER_SET); p.bump(T!['(']); let kind = if is_at_dir_parameter_identifier(p) { @@ -51,7 +50,7 @@ pub(crate) fn parse_pseudo_class_function_identifier(p: &mut CssParser) -> Parse Present(m.complete(p, kind)) } -const DIR_PARAMETER_IDENTIFIER_SET: TokenSet = token_set![LTR_KW, RTL_KW]; +const DIR_PARAMETER_IDENTIFIER_SET: TokenSet = token_set![T![ltr], T![rtl]]; #[inline] fn is_at_dir_parameter_identifier(p: &mut CssParser) -> bool { p.at_ts(DIR_PARAMETER_IDENTIFIER_SET) diff --git a/crates/biome_css_parser/src/syntax/selector/pseudo_class/function_nth.rs b/crates/biome_css_parser/src/syntax/selector/pseudo_class/function_nth.rs index 2ae77452ecd8..725661ee57ca 100644 --- a/crates/biome_css_parser/src/syntax/selector/pseudo_class/function_nth.rs +++ b/crates/biome_css_parser/src/syntax/selector/pseudo_class/function_nth.rs @@ -5,7 +5,7 @@ use crate::syntax::selector::{ eat_or_recover_selector_function_close_token, recover_selector_function_parameter, CssSelectorList, }; -use crate::syntax::{parse_number, parse_regular_identifier, parse_regular_number}; +use crate::syntax::{parse_number, parse_regular_number}; use biome_css_syntax::CssSyntaxKind::*; use biome_css_syntax::CssSyntaxKind::{ CSS_NTH_OFFSET, CSS_PSEUDO_CLASS_FUNCTION_NTH, CSS_PSEUDO_CLASS_NTH, @@ -19,12 +19,12 @@ use biome_parser::parsed_syntax::ParsedSyntax::{Absent, Present}; use biome_parser::{token_set, Parser, TokenSet}; const PSEUDO_CLASS_FUNCTION_NTH_SET: TokenSet = token_set![ - NTHCHILD_KW, - NTHLASTCHILD_KW, - NTHOFTYPE_KW, - NTHLASTOFTYPE_KW, - NTHCOL_KW, - NTHLASTCOL_KW + T![nth_child], + T![nth_last_child], + T![nth_of_type], + T![nth_last_of_type], + T![nth_col], + T![nth_last_col], ]; #[inline] @@ -40,8 +40,7 @@ pub(crate) fn parse_pseudo_class_function_nth(p: &mut CssParser) -> ParsedSyntax let m = p.start(); - // we don't need to check if the value is valid, because we already did that - parse_regular_identifier(p).ok(); + p.bump_ts(PSEUDO_CLASS_FUNCTION_NTH_SET); p.bump_with_context(T!['('], CssLexContext::PseudoNthSelector); let kind = if is_at_pseudo_class_nth_selector(p) { diff --git a/crates/biome_css_parser/src/syntax/selector/pseudo_class/function_relative_selector_list.rs b/crates/biome_css_parser/src/syntax/selector/pseudo_class/function_relative_selector_list.rs index ab15d2654720..c8f0928e0798 100644 --- a/crates/biome_css_parser/src/syntax/selector/pseudo_class/function_relative_selector_list.rs +++ b/crates/biome_css_parser/src/syntax/selector/pseudo_class/function_relative_selector_list.rs @@ -1,6 +1,5 @@ use crate::parser::CssParser; -use crate::syntax::parse_error::{expected_identifier, expected_relative_selector}; -use crate::syntax::parse_regular_identifier; +use crate::syntax::parse_error::expected_relative_selector; use crate::syntax::selector::{ eat_or_recover_selector_function_close_token, is_at_compound_selector, parse_selector, }; @@ -17,7 +16,7 @@ use biome_parser::parsed_syntax::ParsedSyntax::{Absent, Present}; use biome_parser::{token_set, Parser, TokenSet}; const PSEUDO_CLASS_FUNCTION_RELATIVE_SELECTOR_LIST_SET: TokenSet = - token_set![HAS_KW]; + token_set![T![has]]; #[inline] pub(crate) fn is_at_pseudo_class_function_relative_selector_list(p: &mut CssParser) -> bool { @@ -34,7 +33,7 @@ pub(crate) fn parse_pseudo_class_function_relative_selector_list( let m = p.start(); - parse_regular_identifier(p).or_add_diagnostic(p, expected_identifier); + p.bump_ts(PSEUDO_CLASS_FUNCTION_RELATIVE_SELECTOR_LIST_SET); p.bump(T!['(']); let list = CssRelativeSelectorList.parse_list(p); diff --git a/crates/biome_css_parser/src/syntax/selector/pseudo_class/function_selector.rs b/crates/biome_css_parser/src/syntax/selector/pseudo_class/function_selector.rs index 8aae5546d8b9..75ef3c23c8eb 100644 --- a/crates/biome_css_parser/src/syntax/selector/pseudo_class/function_selector.rs +++ b/crates/biome_css_parser/src/syntax/selector/pseudo_class/function_selector.rs @@ -1,6 +1,5 @@ use crate::parser::CssParser; use crate::syntax::parse_error::expected_selector; -use crate::syntax::parse_regular_identifier; use crate::syntax::selector::{ eat_or_recover_selector_function_close_token, parse_selector, recover_selector_function_parameter, @@ -12,7 +11,8 @@ use biome_parser::parsed_syntax::ParsedSyntax; use biome_parser::parsed_syntax::ParsedSyntax::{Absent, Present}; use biome_parser::{token_set, Parser, TokenSet}; -const PSEUDO_CLASS_FUNCTION_SELECTOR_SET: TokenSet = token_set![GLOBAL_KW, LOCAL_KW]; +const PSEUDO_CLASS_FUNCTION_SELECTOR_SET: TokenSet = + token_set![T![global], T![local]]; #[inline] pub(crate) fn is_at_pseudo_class_function_selector(p: &mut CssParser) -> bool { @@ -27,8 +27,7 @@ pub(crate) fn parse_pseudo_class_function_selector(p: &mut CssParser) -> ParsedS let m = p.start(); - // we don't need to check if the identifier is valid, because we already did that - parse_regular_identifier(p).ok(); + p.bump_ts(PSEUDO_CLASS_FUNCTION_SELECTOR_SET); p.bump(T!['(']); let kind = match parse_selector(p) { diff --git a/crates/biome_css_parser/src/syntax/selector/pseudo_class/function_selector_list.rs b/crates/biome_css_parser/src/syntax/selector/pseudo_class/function_selector_list.rs index 713b47d5e75a..ce598aa6118f 100644 --- a/crates/biome_css_parser/src/syntax/selector/pseudo_class/function_selector_list.rs +++ b/crates/biome_css_parser/src/syntax/selector/pseudo_class/function_selector_list.rs @@ -1,6 +1,5 @@ use crate::parser::CssParser; use crate::syntax::parse_error::expected_selector; -use crate::syntax::parse_regular_identifier; use crate::syntax::selector::{eat_or_recover_selector_function_close_token, CssSelectorList}; use biome_css_syntax::CssSyntaxKind::*; use biome_css_syntax::{CssSyntaxKind, T}; @@ -10,7 +9,7 @@ use biome_parser::parsed_syntax::ParsedSyntax::{Absent, Present}; use biome_parser::{token_set, Parser, TokenSet}; const PSEUDO_CLASS_FUNCTION_SELECTOR_LIST_SET: TokenSet = - token_set![MATCHES_KW, NOT_KW, IS_KW, WHERE_KW]; + token_set![T![matches], T![not], T![is], T![where]]; #[inline] pub(crate) fn is_at_pseudo_class_function_selector_list(p: &mut CssParser) -> bool { @@ -25,8 +24,7 @@ pub(crate) fn parse_pseudo_class_function_selector_list(p: &mut CssParser) -> Pa let m = p.start(); - // we don't need to check if the identifier is valid, because we already did that - parse_regular_identifier(p).ok(); + p.bump_ts(PSEUDO_CLASS_FUNCTION_SELECTOR_LIST_SET); p.bump(T!['(']); let list = CssSelectorList::default() diff --git a/crates/biome_css_parser/src/syntax/selector/pseudo_class/function_value_list.rs b/crates/biome_css_parser/src/syntax/selector/pseudo_class/function_value_list.rs index 06e753d4b149..804180755e66 100644 --- a/crates/biome_css_parser/src/syntax/selector/pseudo_class/function_value_list.rs +++ b/crates/biome_css_parser/src/syntax/selector/pseudo_class/function_value_list.rs @@ -10,7 +10,7 @@ use biome_parser::parsed_syntax::ParsedSyntax; use biome_parser::parsed_syntax::ParsedSyntax::{Absent, Present}; use biome_parser::{token_set, Parser, TokenSet}; -const PSEUDO_CLASS_FUNCTION_VALUE_LIST_SET: TokenSet = token_set![LANG_KW]; +const PSEUDO_CLASS_FUNCTION_VALUE_LIST_SET: TokenSet = token_set![T![lang]]; #[inline] pub(crate) fn is_at_pseudo_class_function_value_list(p: &mut CssParser) -> bool { @@ -25,8 +25,7 @@ pub(crate) fn parse_pseudo_class_function_value_list(p: &mut CssParser) -> Parse let m = p.start(); - // we don't need to check if the identifier is valid, because we already did that - parse_regular_identifier(p).ok(); + p.bump_ts(PSEUDO_CLASS_FUNCTION_VALUE_LIST_SET); p.bump(T!['(']); let list = CssPseudoValueList.parse_list(p); diff --git a/crates/biome_css_parser/tests/css_test_suite/error/at_rule/at_rule_color_profile_error.css b/crates/biome_css_parser/tests/css_test_suite/error/at_rule/at_rule_color_profile_error.css new file mode 100644 index 000000000000..0c6f9dd384e8 --- /dev/null +++ b/crates/biome_css_parser/tests/css_test_suite/error/at_rule/at_rule_color_profile_error.css @@ -0,0 +1,5 @@ +@color-profile 112321 { } +@color-profile 'string' { } +@color-profile { } +@color-profile DEVICE-CMYK +@color-profile diff --git a/crates/biome_css_parser/tests/css_test_suite/error/at_rule/at_rule_color_profile_error.css.snap b/crates/biome_css_parser/tests/css_test_suite/error/at_rule/at_rule_color_profile_error.css.snap new file mode 100644 index 000000000000..0675ce16f1a7 --- /dev/null +++ b/crates/biome_css_parser/tests/css_test_suite/error/at_rule/at_rule_color_profile_error.css.snap @@ -0,0 +1,238 @@ +--- +source: crates/biome_css_parser/tests/spec_test.rs +expression: snapshot +--- + +## Input + +```css +@color-profile 112321 { } +@color-profile 'string' { } +@color-profile { } +@color-profile DEVICE-CMYK +@color-profile + +``` + + +## AST + +``` +CssRoot { + bom_token: missing (optional), + rules: CssRuleList [ + CssAtRule { + at_token: AT@0..1 "@" [] [], + rule: CssBogusAtRule { + items: [ + COLOR_PROFILE_KW@1..15 "color-profile" [] [Whitespace(" ")], + CssBogus { + items: [ + CSS_NUMBER_LITERAL@15..22 "112321" [] [Whitespace(" ")], + ], + }, + CssBlock { + l_curly_token: L_CURLY@22..25 "{" [] [Whitespace(" ")], + declaration_list: CssDeclarationList [], + r_curly_token: R_CURLY@25..26 "}" [] [], + }, + ], + }, + }, + CssAtRule { + at_token: AT@26..28 "@" [Newline("\n")] [], + rule: CssBogusAtRule { + items: [ + COLOR_PROFILE_KW@28..42 "color-profile" [] [Whitespace(" ")], + CssBogus { + items: [ + CSS_STRING_LITERAL@42..51 "'string'" [] [Whitespace(" ")], + ], + }, + CssBlock { + l_curly_token: L_CURLY@51..54 "{" [] [Whitespace(" ")], + declaration_list: CssDeclarationList [], + r_curly_token: R_CURLY@54..55 "}" [] [], + }, + ], + }, + }, + CssAtRule { + at_token: AT@55..57 "@" [Newline("\n")] [], + rule: CssBogusAtRule { + items: [ + COLOR_PROFILE_KW@57..72 "color-profile" [] [Whitespace(" ")], + CssBlock { + l_curly_token: L_CURLY@72..75 "{" [] [Whitespace(" ")], + declaration_list: CssDeclarationList [], + r_curly_token: R_CURLY@75..76 "}" [] [], + }, + ], + }, + }, + CssAtRule { + at_token: AT@76..78 "@" [Newline("\n")] [], + rule: CssBogusAtRule { + items: [ + COLOR_PROFILE_KW@78..92 "color-profile" [] [Whitespace(" ")], + CssIdentifier { + value_token: IDENT@92..103 "DEVICE-CMYK" [] [], + }, + ], + }, + }, + CssAtRule { + at_token: AT@103..105 "@" [Newline("\n")] [], + rule: CssBogusAtRule { + items: [ + COLOR_PROFILE_KW@105..118 "color-profile" [] [], + ], + }, + }, + ], + eof_token: EOF@118..119 "" [Newline("\n")] [], +} +``` + +## CST + +``` +0: CSS_ROOT@0..119 + 0: (empty) + 1: CSS_RULE_LIST@0..118 + 0: CSS_AT_RULE@0..26 + 0: AT@0..1 "@" [] [] + 1: CSS_BOGUS_AT_RULE@1..26 + 0: COLOR_PROFILE_KW@1..15 "color-profile" [] [Whitespace(" ")] + 1: CSS_BOGUS@15..22 + 0: CSS_NUMBER_LITERAL@15..22 "112321" [] [Whitespace(" ")] + 2: CSS_BLOCK@22..26 + 0: L_CURLY@22..25 "{" [] [Whitespace(" ")] + 1: CSS_DECLARATION_LIST@25..25 + 2: R_CURLY@25..26 "}" [] [] + 1: CSS_AT_RULE@26..55 + 0: AT@26..28 "@" [Newline("\n")] [] + 1: CSS_BOGUS_AT_RULE@28..55 + 0: COLOR_PROFILE_KW@28..42 "color-profile" [] [Whitespace(" ")] + 1: CSS_BOGUS@42..51 + 0: CSS_STRING_LITERAL@42..51 "'string'" [] [Whitespace(" ")] + 2: CSS_BLOCK@51..55 + 0: L_CURLY@51..54 "{" [] [Whitespace(" ")] + 1: CSS_DECLARATION_LIST@54..54 + 2: R_CURLY@54..55 "}" [] [] + 2: CSS_AT_RULE@55..76 + 0: AT@55..57 "@" [Newline("\n")] [] + 1: CSS_BOGUS_AT_RULE@57..76 + 0: COLOR_PROFILE_KW@57..72 "color-profile" [] [Whitespace(" ")] + 1: CSS_BLOCK@72..76 + 0: L_CURLY@72..75 "{" [] [Whitespace(" ")] + 1: CSS_DECLARATION_LIST@75..75 + 2: R_CURLY@75..76 "}" [] [] + 3: CSS_AT_RULE@76..103 + 0: AT@76..78 "@" [Newline("\n")] [] + 1: CSS_BOGUS_AT_RULE@78..103 + 0: COLOR_PROFILE_KW@78..92 "color-profile" [] [Whitespace(" ")] + 1: CSS_IDENTIFIER@92..103 + 0: IDENT@92..103 "DEVICE-CMYK" [] [] + 4: CSS_AT_RULE@103..118 + 0: AT@103..105 "@" [Newline("\n")] [] + 1: CSS_BOGUS_AT_RULE@105..118 + 0: COLOR_PROFILE_KW@105..118 "color-profile" [] [] + 2: EOF@118..119 "" [Newline("\n")] [] + +``` + +## Diagnostics + +``` +at_rule_color_profile_error.css:1:16 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + × Expected an identifier but instead found '112321'. + + > 1 │ @color-profile 112321 { } + │ ^^^^^^ + 2 │ @color-profile 'string' { } + 3 │ @color-profile { } + + i Expected an identifier here. + + > 1 │ @color-profile 112321 { } + │ ^^^^^^ + 2 │ @color-profile 'string' { } + 3 │ @color-profile { } + +at_rule_color_profile_error.css:2:16 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + × Expected an identifier but instead found ''string''. + + 1 │ @color-profile 112321 { } + > 2 │ @color-profile 'string' { } + │ ^^^^^^^^ + 3 │ @color-profile { } + 4 │ @color-profile DEVICE-CMYK + + i Expected an identifier here. + + 1 │ @color-profile 112321 { } + > 2 │ @color-profile 'string' { } + │ ^^^^^^^^ + 3 │ @color-profile { } + 4 │ @color-profile DEVICE-CMYK + +at_rule_color_profile_error.css:3:17 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + × Expected an identifier but instead found '{'. + + 1 │ @color-profile 112321 { } + 2 │ @color-profile 'string' { } + > 3 │ @color-profile { } + │ ^ + 4 │ @color-profile DEVICE-CMYK + 5 │ @color-profile + + i Expected an identifier here. + + 1 │ @color-profile 112321 { } + 2 │ @color-profile 'string' { } + > 3 │ @color-profile { } + │ ^ + 4 │ @color-profile DEVICE-CMYK + 5 │ @color-profile + +at_rule_color_profile_error.css:5:1 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + × Expected a body but instead found '@'. + + 3 │ @color-profile { } + 4 │ @color-profile DEVICE-CMYK + > 5 │ @color-profile + │ ^ + 6 │ + + i Expected a body here. + + 3 │ @color-profile { } + 4 │ @color-profile DEVICE-CMYK + > 5 │ @color-profile + │ ^ + 6 │ + +at_rule_color_profile_error.css:6:1 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + × Expected an identifier but instead found the end of the file. + + 4 │ @color-profile DEVICE-CMYK + 5 │ @color-profile + > 6 │ + │ + + i Expected an identifier here. + + 4 │ @color-profile DEVICE-CMYK + 5 │ @color-profile + > 6 │ + │ + +``` + + diff --git a/crates/biome_css_parser/tests/css_test_suite/error/at_rule/at_rule_counter_style_error.css b/crates/biome_css_parser/tests/css_test_suite/error/at_rule/at_rule_counter_style_error.css new file mode 100644 index 000000000000..c3495b706dcd --- /dev/null +++ b/crates/biome_css_parser/tests/css_test_suite/error/at_rule/at_rule_counter_style_error.css @@ -0,0 +1,5 @@ +@counter-style { } +@counter-style 6788 { } +@counter-style 'string' { } +@counter-style ident +@counter-style ident diff --git a/crates/biome_css_parser/tests/css_test_suite/error/at_rule/at_rule_counter_style_error.css.snap b/crates/biome_css_parser/tests/css_test_suite/error/at_rule/at_rule_counter_style_error.css.snap new file mode 100644 index 000000000000..3eec06dab1f6 --- /dev/null +++ b/crates/biome_css_parser/tests/css_test_suite/error/at_rule/at_rule_counter_style_error.css.snap @@ -0,0 +1,243 @@ +--- +source: crates/biome_css_parser/tests/spec_test.rs +expression: snapshot +--- + +## Input + +```css +@counter-style { } +@counter-style 6788 { } +@counter-style 'string' { } +@counter-style ident +@counter-style ident + +``` + + +## AST + +``` +CssRoot { + bom_token: missing (optional), + rules: CssRuleList [ + CssAtRule { + at_token: AT@0..1 "@" [] [], + rule: CssBogusAtRule { + items: [ + COUNTER_STYLE_KW@1..16 "counter-style" [] [Whitespace(" ")], + CssBlock { + l_curly_token: L_CURLY@16..19 "{" [] [Whitespace(" ")], + declaration_list: CssDeclarationList [], + r_curly_token: R_CURLY@19..20 "}" [] [], + }, + ], + }, + }, + CssAtRule { + at_token: AT@20..22 "@" [Newline("\n")] [], + rule: CssBogusAtRule { + items: [ + COUNTER_STYLE_KW@22..36 "counter-style" [] [Whitespace(" ")], + CssBogus { + items: [ + CSS_NUMBER_LITERAL@36..41 "6788" [] [Whitespace(" ")], + ], + }, + CssBlock { + l_curly_token: L_CURLY@41..44 "{" [] [Whitespace(" ")], + declaration_list: CssDeclarationList [], + r_curly_token: R_CURLY@44..45 "}" [] [], + }, + ], + }, + }, + CssAtRule { + at_token: AT@45..47 "@" [Newline("\n")] [], + rule: CssBogusAtRule { + items: [ + COUNTER_STYLE_KW@47..61 "counter-style" [] [Whitespace(" ")], + CssBogus { + items: [ + CSS_STRING_LITERAL@61..70 "'string'" [] [Whitespace(" ")], + ], + }, + CssBlock { + l_curly_token: L_CURLY@70..73 "{" [] [Whitespace(" ")], + declaration_list: CssDeclarationList [], + r_curly_token: R_CURLY@73..74 "}" [] [], + }, + ], + }, + }, + CssAtRule { + at_token: AT@74..76 "@" [Newline("\n")] [], + rule: CssBogusAtRule { + items: [ + COUNTER_STYLE_KW@76..90 "counter-style" [] [Whitespace(" ")], + CssIdentifier { + value_token: IDENT@90..95 "ident" [] [], + }, + ], + }, + }, + CssAtRule { + at_token: AT@95..97 "@" [Newline("\n")] [], + rule: CssBogusAtRule { + items: [ + COUNTER_STYLE_KW@97..111 "counter-style" [] [Whitespace(" ")], + CssIdentifier { + value_token: IDENT@111..116 "ident" [] [], + }, + ], + }, + }, + ], + eof_token: EOF@116..117 "" [Newline("\n")] [], +} +``` + +## CST + +``` +0: CSS_ROOT@0..117 + 0: (empty) + 1: CSS_RULE_LIST@0..116 + 0: CSS_AT_RULE@0..20 + 0: AT@0..1 "@" [] [] + 1: CSS_BOGUS_AT_RULE@1..20 + 0: COUNTER_STYLE_KW@1..16 "counter-style" [] [Whitespace(" ")] + 1: CSS_BLOCK@16..20 + 0: L_CURLY@16..19 "{" [] [Whitespace(" ")] + 1: CSS_DECLARATION_LIST@19..19 + 2: R_CURLY@19..20 "}" [] [] + 1: CSS_AT_RULE@20..45 + 0: AT@20..22 "@" [Newline("\n")] [] + 1: CSS_BOGUS_AT_RULE@22..45 + 0: COUNTER_STYLE_KW@22..36 "counter-style" [] [Whitespace(" ")] + 1: CSS_BOGUS@36..41 + 0: CSS_NUMBER_LITERAL@36..41 "6788" [] [Whitespace(" ")] + 2: CSS_BLOCK@41..45 + 0: L_CURLY@41..44 "{" [] [Whitespace(" ")] + 1: CSS_DECLARATION_LIST@44..44 + 2: R_CURLY@44..45 "}" [] [] + 2: CSS_AT_RULE@45..74 + 0: AT@45..47 "@" [Newline("\n")] [] + 1: CSS_BOGUS_AT_RULE@47..74 + 0: COUNTER_STYLE_KW@47..61 "counter-style" [] [Whitespace(" ")] + 1: CSS_BOGUS@61..70 + 0: CSS_STRING_LITERAL@61..70 "'string'" [] [Whitespace(" ")] + 2: CSS_BLOCK@70..74 + 0: L_CURLY@70..73 "{" [] [Whitespace(" ")] + 1: CSS_DECLARATION_LIST@73..73 + 2: R_CURLY@73..74 "}" [] [] + 3: CSS_AT_RULE@74..95 + 0: AT@74..76 "@" [Newline("\n")] [] + 1: CSS_BOGUS_AT_RULE@76..95 + 0: COUNTER_STYLE_KW@76..90 "counter-style" [] [Whitespace(" ")] + 1: CSS_IDENTIFIER@90..95 + 0: IDENT@90..95 "ident" [] [] + 4: CSS_AT_RULE@95..116 + 0: AT@95..97 "@" [Newline("\n")] [] + 1: CSS_BOGUS_AT_RULE@97..116 + 0: COUNTER_STYLE_KW@97..111 "counter-style" [] [Whitespace(" ")] + 1: CSS_IDENTIFIER@111..116 + 0: IDENT@111..116 "ident" [] [] + 2: EOF@116..117 "" [Newline("\n")] [] + +``` + +## Diagnostics + +``` +at_rule_counter_style_error.css:1:17 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + × Expected an identifier but instead found '{'. + + > 1 │ @counter-style { } + │ ^ + 2 │ @counter-style 6788 { } + 3 │ @counter-style 'string' { } + + i Expected an identifier here. + + > 1 │ @counter-style { } + │ ^ + 2 │ @counter-style 6788 { } + 3 │ @counter-style 'string' { } + +at_rule_counter_style_error.css:2:16 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + × Expected an identifier but instead found '6788'. + + 1 │ @counter-style { } + > 2 │ @counter-style 6788 { } + │ ^^^^ + 3 │ @counter-style 'string' { } + 4 │ @counter-style ident + + i Expected an identifier here. + + 1 │ @counter-style { } + > 2 │ @counter-style 6788 { } + │ ^^^^ + 3 │ @counter-style 'string' { } + 4 │ @counter-style ident + +at_rule_counter_style_error.css:3:16 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + × Expected an identifier but instead found ''string''. + + 1 │ @counter-style { } + 2 │ @counter-style 6788 { } + > 3 │ @counter-style 'string' { } + │ ^^^^^^^^ + 4 │ @counter-style ident + 5 │ @counter-style ident + + i Expected an identifier here. + + 1 │ @counter-style { } + 2 │ @counter-style 6788 { } + > 3 │ @counter-style 'string' { } + │ ^^^^^^^^ + 4 │ @counter-style ident + 5 │ @counter-style ident + +at_rule_counter_style_error.css:5:1 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + × Expected a body but instead found '@'. + + 3 │ @counter-style 'string' { } + 4 │ @counter-style ident + > 5 │ @counter-style ident + │ ^ + 6 │ + + i Expected a body here. + + 3 │ @counter-style 'string' { } + 4 │ @counter-style ident + > 5 │ @counter-style ident + │ ^ + 6 │ + +at_rule_counter_style_error.css:6:1 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + × Expected a body but instead found the end of the file. + + 4 │ @counter-style ident + 5 │ @counter-style ident + > 6 │ + │ + + i Expected a body here. + + 4 │ @counter-style ident + 5 │ @counter-style ident + > 6 │ + │ + +``` + + diff --git a/crates/biome_css_parser/tests/css_test_suite/error/selector/pseudo_class/pseudo_class_function_compound_selector.css.snap b/crates/biome_css_parser/tests/css_test_suite/error/selector/pseudo_class/pseudo_class_function_compound_selector.css.snap index f39491afcaf9..03ae756bcc58 100644 --- a/crates/biome_css_parser/tests/css_test_suite/error/selector/pseudo_class/pseudo_class_function_compound_selector.css.snap +++ b/crates/biome_css_parser/tests/css_test_suite/error/selector/pseudo_class/pseudo_class_function_compound_selector.css.snap @@ -34,9 +34,7 @@ CssRoot { colon_token: COLON@0..1 ":" [] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@1..5 "host" [] [], - }, + HOST_KW@1..5 "host" [] [], L_PAREN@5..7 "(" [] [Whitespace(" ")], ], }, @@ -60,9 +58,7 @@ CssRoot { colon_token: COLON@9..11 ":" [Newline("\n")] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@11..15 "host" [] [], - }, + HOST_KW@11..15 "host" [] [], L_PAREN@15..16 "(" [] [], R_PAREN@16..18 ")" [] [Whitespace(" ")], ], @@ -87,9 +83,7 @@ CssRoot { colon_token: COLON@20..22 ":" [Newline("\n")] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@22..26 "host" [] [], - }, + HOST_KW@22..26 "host" [] [], L_PAREN@26..27 "(" [] [], CssCompoundSelector { nesting_selector_token: missing (optional), @@ -133,9 +127,7 @@ CssRoot { colon_token: COLON@43..45 ":" [Newline("\n")] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@45..49 "host" [] [], - }, + HOST_KW@45..49 "host" [] [], L_PAREN@49..50 "(" [] [], CssCompoundSelector { nesting_selector_token: missing (optional), @@ -178,9 +170,7 @@ CssRoot { colon_token: COLON@65..67 ":" [Newline("\n")] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@67..71 "host" [] [], - }, + HOST_KW@67..71 "host" [] [], L_PAREN@71..72 "(" [] [], CssCompoundSelector { nesting_selector_token: missing (optional), @@ -224,9 +214,7 @@ CssRoot { colon_token: COLON@87..89 ":" [Newline("\n")] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@89..93 "host" [] [], - }, + HOST_KW@89..93 "host" [] [], L_PAREN@93..94 "(" [] [], CssCompoundSelector { nesting_selector_token: missing (optional), @@ -269,9 +257,7 @@ CssRoot { colon_token: COLON@108..110 ":" [Newline("\n")] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@110..114 "host" [] [], - }, + HOST_KW@110..114 "host" [] [], L_PAREN@114..115 "(" [] [], CssCompoundSelector { nesting_selector_token: missing (optional), @@ -308,9 +294,7 @@ CssRoot { colon_token: COLON@122..124 ":" [Newline("\n")] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@124..128 "host" [] [], - }, + HOST_KW@124..128 "host" [] [], L_PAREN@128..129 "(" [] [], CssCompoundSelector { nesting_selector_token: missing (optional), @@ -352,8 +336,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@0..7 0: COLON@0..1 ":" [] [] 1: CSS_BOGUS_PSEUDO_CLASS@1..7 - 0: CSS_IDENTIFIER@1..5 - 0: IDENT@1..5 "host" [] [] + 0: HOST_KW@1..5 "host" [] [] 1: L_PAREN@5..7 "(" [] [Whitespace(" ")] 1: CSS_BLOCK@7..9 0: L_CURLY@7..8 "{" [] [] @@ -368,8 +351,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@9..18 0: COLON@9..11 ":" [Newline("\n")] [] 1: CSS_BOGUS_PSEUDO_CLASS@11..18 - 0: CSS_IDENTIFIER@11..15 - 0: IDENT@11..15 "host" [] [] + 0: HOST_KW@11..15 "host" [] [] 1: L_PAREN@15..16 "(" [] [] 2: R_PAREN@16..18 ")" [] [Whitespace(" ")] 1: CSS_BLOCK@18..20 @@ -385,8 +367,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@20..41 0: COLON@20..22 ":" [Newline("\n")] [] 1: CSS_BOGUS_PSEUDO_CLASS@22..41 - 0: CSS_IDENTIFIER@22..26 - 0: IDENT@22..26 "host" [] [] + 0: HOST_KW@22..26 "host" [] [] 1: L_PAREN@26..27 "(" [] [] 2: CSS_COMPOUND_SELECTOR@27..31 0: (empty) @@ -414,8 +395,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@43..63 0: COLON@43..45 ":" [Newline("\n")] [] 1: CSS_BOGUS_PSEUDO_CLASS@45..63 - 0: CSS_IDENTIFIER@45..49 - 0: IDENT@45..49 "host" [] [] + 0: HOST_KW@45..49 "host" [] [] 1: L_PAREN@49..50 "(" [] [] 2: CSS_COMPOUND_SELECTOR@50..54 0: (empty) @@ -442,8 +422,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@65..85 0: COLON@65..67 ":" [Newline("\n")] [] 1: CSS_BOGUS_PSEUDO_CLASS@67..85 - 0: CSS_IDENTIFIER@67..71 - 0: IDENT@67..71 "host" [] [] + 0: HOST_KW@67..71 "host" [] [] 1: L_PAREN@71..72 "(" [] [] 2: CSS_COMPOUND_SELECTOR@72..76 0: (empty) @@ -471,8 +450,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@87..106 0: COLON@87..89 ":" [Newline("\n")] [] 1: CSS_BOGUS_PSEUDO_CLASS@89..106 - 0: CSS_IDENTIFIER@89..93 - 0: IDENT@89..93 "host" [] [] + 0: HOST_KW@89..93 "host" [] [] 1: L_PAREN@93..94 "(" [] [] 2: CSS_COMPOUND_SELECTOR@94..98 0: (empty) @@ -499,8 +477,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@108..120 0: COLON@108..110 ":" [Newline("\n")] [] 1: CSS_BOGUS_PSEUDO_CLASS@110..120 - 0: CSS_IDENTIFIER@110..114 - 0: IDENT@110..114 "host" [] [] + 0: HOST_KW@110..114 "host" [] [] 1: L_PAREN@114..115 "(" [] [] 2: CSS_COMPOUND_SELECTOR@115..120 0: (empty) @@ -523,8 +500,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@122..133 0: COLON@122..124 ":" [Newline("\n")] [] 1: CSS_BOGUS_PSEUDO_CLASS@124..133 - 0: CSS_IDENTIFIER@124..128 - 0: IDENT@124..128 "host" [] [] + 0: HOST_KW@124..128 "host" [] [] 1: L_PAREN@128..129 "(" [] [] 2: CSS_COMPOUND_SELECTOR@129..133 0: (empty) diff --git a/crates/biome_css_parser/tests/css_test_suite/error/selector/pseudo_class/pseudo_class_function_compound_selector_list.css.snap b/crates/biome_css_parser/tests/css_test_suite/error/selector/pseudo_class/pseudo_class_function_compound_selector_list.css.snap index 4936984e8b3d..7dfec1a56eca 100644 --- a/crates/biome_css_parser/tests/css_test_suite/error/selector/pseudo_class/pseudo_class_function_compound_selector_list.css.snap +++ b/crates/biome_css_parser/tests/css_test_suite/error/selector/pseudo_class/pseudo_class_function_compound_selector_list.css.snap @@ -35,9 +35,7 @@ CssRoot { colon_token: COLON@0..1 ":" [] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@1..5 "past" [] [], - }, + PAST_KW@1..5 "past" [] [], L_PAREN@5..7 "(" [] [Whitespace(" ")], CssCompoundSelectorList [], ], @@ -62,9 +60,7 @@ CssRoot { colon_token: COLON@9..11 ":" [Newline("\n")] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@11..15 "past" [] [], - }, + PAST_KW@11..15 "past" [] [], L_PAREN@15..16 "(" [] [], CssCompoundSelectorList [], R_PAREN@16..18 ")" [] [Whitespace(" ")], @@ -90,9 +86,7 @@ CssRoot { colon_token: COLON@20..22 ":" [Newline("\n")] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@22..26 "past" [] [], - }, + PAST_KW@22..26 "past" [] [], L_PAREN@26..27 "(" [] [], CssCompoundSelectorList [], CssBogus { @@ -124,9 +118,7 @@ CssRoot { colon_token: COLON@39..41 ":" [Newline("\n")] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@41..45 "past" [] [], - }, + PAST_KW@41..45 "past" [] [], L_PAREN@45..46 "(" [] [], CssCompoundSelectorList [], CssBogus { @@ -157,9 +149,7 @@ CssRoot { colon_token: COLON@57..59 ":" [Newline("\n")] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@59..63 "past" [] [], - }, + PAST_KW@59..63 "past" [] [], L_PAREN@63..64 "(" [] [], CssCompoundSelectorList [ CssCompoundSelector { @@ -205,9 +195,7 @@ CssRoot { colon_token: COLON@79..81 ":" [Newline("\n")] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@81..85 "past" [] [], - }, + PAST_KW@81..85 "past" [] [], L_PAREN@85..86 "(" [] [], CssCompoundSelectorList [ CssCompoundSelector { @@ -254,9 +242,7 @@ CssRoot { colon_token: COLON@102..104 ":" [Newline("\n")] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@104..108 "past" [] [], - }, + PAST_KW@104..108 "past" [] [], L_PAREN@108..109 "(" [] [], CssCompoundSelectorList [ CssCompoundSelector { @@ -301,9 +287,7 @@ CssRoot { colon_token: COLON@123..125 ":" [Newline("\n")] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@125..129 "past" [] [], - }, + PAST_KW@125..129 "past" [] [], L_PAREN@129..130 "(" [] [], CssCompoundSelectorList [ CssCompoundSelector { @@ -342,9 +326,7 @@ CssRoot { colon_token: COLON@137..139 ":" [Newline("\n")] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@139..143 "past" [] [], - }, + PAST_KW@139..143 "past" [] [], L_PAREN@143..144 "(" [] [], CssCompoundSelectorList [ CssCompoundSelector { @@ -388,8 +370,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@0..7 0: COLON@0..1 ":" [] [] 1: CSS_BOGUS_PSEUDO_CLASS@1..7 - 0: CSS_IDENTIFIER@1..5 - 0: IDENT@1..5 "past" [] [] + 0: PAST_KW@1..5 "past" [] [] 1: L_PAREN@5..7 "(" [] [Whitespace(" ")] 2: CSS_COMPOUND_SELECTOR_LIST@7..7 1: CSS_BLOCK@7..9 @@ -405,8 +386,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@9..18 0: COLON@9..11 ":" [Newline("\n")] [] 1: CSS_BOGUS_PSEUDO_CLASS@11..18 - 0: CSS_IDENTIFIER@11..15 - 0: IDENT@11..15 "past" [] [] + 0: PAST_KW@11..15 "past" [] [] 1: L_PAREN@15..16 "(" [] [] 2: CSS_COMPOUND_SELECTOR_LIST@16..16 3: R_PAREN@16..18 ")" [] [Whitespace(" ")] @@ -423,8 +403,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@20..37 0: COLON@20..22 ":" [Newline("\n")] [] 1: CSS_BOGUS_PSEUDO_CLASS@22..37 - 0: CSS_IDENTIFIER@22..26 - 0: IDENT@22..26 "past" [] [] + 0: PAST_KW@22..26 "past" [] [] 1: L_PAREN@26..27 "(" [] [] 2: CSS_COMPOUND_SELECTOR_LIST@27..27 3: CSS_BOGUS@27..35 @@ -444,8 +423,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@39..55 0: COLON@39..41 ":" [Newline("\n")] [] 1: CSS_BOGUS_PSEUDO_CLASS@41..55 - 0: CSS_IDENTIFIER@41..45 - 0: IDENT@41..45 "past" [] [] + 0: PAST_KW@41..45 "past" [] [] 1: L_PAREN@45..46 "(" [] [] 2: CSS_COMPOUND_SELECTOR_LIST@46..46 3: CSS_BOGUS@46..55 @@ -464,8 +442,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@57..77 0: COLON@57..59 ":" [Newline("\n")] [] 1: CSS_BOGUS_PSEUDO_CLASS@59..77 - 0: CSS_IDENTIFIER@59..63 - 0: IDENT@59..63 "past" [] [] + 0: PAST_KW@59..63 "past" [] [] 1: L_PAREN@63..64 "(" [] [] 2: CSS_COMPOUND_SELECTOR_LIST@64..68 0: CSS_COMPOUND_SELECTOR@64..68 @@ -494,8 +471,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@79..100 0: COLON@79..81 ":" [Newline("\n")] [] 1: CSS_BOGUS_PSEUDO_CLASS@81..100 - 0: CSS_IDENTIFIER@81..85 - 0: IDENT@81..85 "past" [] [] + 0: PAST_KW@81..85 "past" [] [] 1: L_PAREN@85..86 "(" [] [] 2: CSS_COMPOUND_SELECTOR_LIST@86..90 0: CSS_COMPOUND_SELECTOR@86..90 @@ -525,8 +501,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@102..121 0: COLON@102..104 ":" [Newline("\n")] [] 1: CSS_BOGUS_PSEUDO_CLASS@104..121 - 0: CSS_IDENTIFIER@104..108 - 0: IDENT@104..108 "past" [] [] + 0: PAST_KW@104..108 "past" [] [] 1: L_PAREN@108..109 "(" [] [] 2: CSS_COMPOUND_SELECTOR_LIST@109..113 0: CSS_COMPOUND_SELECTOR@109..113 @@ -554,8 +529,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@123..135 0: COLON@123..125 ":" [Newline("\n")] [] 1: CSS_BOGUS_PSEUDO_CLASS@125..135 - 0: CSS_IDENTIFIER@125..129 - 0: IDENT@125..129 "past" [] [] + 0: PAST_KW@125..129 "past" [] [] 1: L_PAREN@129..130 "(" [] [] 2: CSS_COMPOUND_SELECTOR_LIST@130..135 0: CSS_COMPOUND_SELECTOR@130..135 @@ -579,8 +553,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@137..148 0: COLON@137..139 ":" [Newline("\n")] [] 1: CSS_BOGUS_PSEUDO_CLASS@139..148 - 0: CSS_IDENTIFIER@139..143 - 0: IDENT@139..143 "past" [] [] + 0: PAST_KW@139..143 "past" [] [] 1: L_PAREN@143..144 "(" [] [] 2: CSS_COMPOUND_SELECTOR_LIST@144..148 0: CSS_COMPOUND_SELECTOR@144..148 diff --git a/crates/biome_css_parser/tests/css_test_suite/error/selector/pseudo_class/pseudo_class_function_identifier.css.snap b/crates/biome_css_parser/tests/css_test_suite/error/selector/pseudo_class/pseudo_class_function_identifier.css.snap index 882b410efe3e..2928cd92c961 100644 --- a/crates/biome_css_parser/tests/css_test_suite/error/selector/pseudo_class/pseudo_class_function_identifier.css.snap +++ b/crates/biome_css_parser/tests/css_test_suite/error/selector/pseudo_class/pseudo_class_function_identifier.css.snap @@ -37,9 +37,7 @@ CssRoot { colon_token: COLON@0..1 ":" [] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@1..4 "dir" [] [], - }, + DIR_KW@1..4 "dir" [] [], L_PAREN@4..6 "(" [] [Whitespace(" ")], ], }, @@ -63,9 +61,7 @@ CssRoot { colon_token: COLON@8..10 ":" [Newline("\n")] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@10..13 "dir" [] [], - }, + DIR_KW@10..13 "dir" [] [], L_PAREN@13..14 "(" [] [], R_PAREN@14..16 ")" [] [Whitespace(" ")], ], @@ -90,9 +86,7 @@ CssRoot { colon_token: COLON@18..20 ":" [Newline("\n")] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@20..23 "dir" [] [], - }, + DIR_KW@20..23 "dir" [] [], L_PAREN@23..24 "(" [] [], CssIdentifier { value_token: IDENT@24..28 "ltr" [] [Whitespace(" ")], @@ -119,9 +113,7 @@ CssRoot { colon_token: COLON@30..32 ":" [Newline("\n")] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@32..35 "dir" [] [], - }, + DIR_KW@32..35 "dir" [] [], L_PAREN@35..36 "(" [] [], CssBogus { items: [ @@ -150,9 +142,7 @@ CssRoot { colon_token: COLON@46..48 ":" [Newline("\n")] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@48..51 "dir" [] [], - }, + DIR_KW@48..51 "dir" [] [], L_PAREN@51..52 "(" [] [], CssBogus { items: [ @@ -183,9 +173,7 @@ CssRoot { colon_token: COLON@64..66 ":" [Newline("\n")] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@66..69 "dir" [] [], - }, + DIR_KW@66..69 "dir" [] [], L_PAREN@69..70 "(" [] [], CssBogus { items: [ @@ -215,9 +203,7 @@ CssRoot { colon_token: COLON@81..83 ":" [Newline("\n")] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@83..86 "dir" [] [], - }, + DIR_KW@83..86 "dir" [] [], L_PAREN@86..87 "(" [] [], CssIdentifier { value_token: IDENT@87..91 "ltr" [] [Whitespace(" ")], @@ -250,9 +236,7 @@ CssRoot { colon_token: COLON@100..102 ":" [Newline("\n")] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@102..105 "dir" [] [], - }, + DIR_KW@102..105 "dir" [] [], L_PAREN@105..106 "(" [] [], CssIdentifier { value_token: IDENT@106..110 "ltr" [] [Whitespace(" ")], @@ -286,9 +270,7 @@ CssRoot { colon_token: COLON@120..122 ":" [Newline("\n")] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@122..125 "dir" [] [], - }, + DIR_KW@122..125 "dir" [] [], L_PAREN@125..126 "(" [] [], CssBogus { items: [ @@ -319,9 +301,7 @@ CssRoot { colon_token: COLON@143..145 ":" [Newline("\n")] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@145..148 "dir" [] [], - }, + DIR_KW@145..148 "dir" [] [], L_PAREN@148..149 "(" [] [], CssBogus { items: [ @@ -354,9 +334,7 @@ CssRoot { colon_token: COLON@167..169 ":" [Newline("\n")] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@169..172 "dir" [] [], - }, + DIR_KW@169..172 "dir" [] [], L_PAREN@172..173 "(" [] [], CssBogus { items: [ @@ -392,8 +370,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@0..6 0: COLON@0..1 ":" [] [] 1: CSS_BOGUS_PSEUDO_CLASS@1..6 - 0: CSS_IDENTIFIER@1..4 - 0: IDENT@1..4 "dir" [] [] + 0: DIR_KW@1..4 "dir" [] [] 1: L_PAREN@4..6 "(" [] [Whitespace(" ")] 1: CSS_BLOCK@6..8 0: L_CURLY@6..7 "{" [] [] @@ -408,8 +385,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@8..16 0: COLON@8..10 ":" [Newline("\n")] [] 1: CSS_BOGUS_PSEUDO_CLASS@10..16 - 0: CSS_IDENTIFIER@10..13 - 0: IDENT@10..13 "dir" [] [] + 0: DIR_KW@10..13 "dir" [] [] 1: L_PAREN@13..14 "(" [] [] 2: R_PAREN@14..16 ")" [] [Whitespace(" ")] 1: CSS_BLOCK@16..18 @@ -425,8 +401,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@18..28 0: COLON@18..20 ":" [Newline("\n")] [] 1: CSS_BOGUS_PSEUDO_CLASS@20..28 - 0: CSS_IDENTIFIER@20..23 - 0: IDENT@20..23 "dir" [] [] + 0: DIR_KW@20..23 "dir" [] [] 1: L_PAREN@23..24 "(" [] [] 2: CSS_IDENTIFIER@24..28 0: IDENT@24..28 "ltr" [] [Whitespace(" ")] @@ -443,8 +418,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@30..44 0: COLON@30..32 ":" [Newline("\n")] [] 1: CSS_BOGUS_PSEUDO_CLASS@32..44 - 0: CSS_IDENTIFIER@32..35 - 0: IDENT@32..35 "dir" [] [] + 0: DIR_KW@32..35 "dir" [] [] 1: L_PAREN@35..36 "(" [] [] 2: CSS_BOGUS@36..44 0: IDENT@36..44 "invalid" [] [Whitespace(" ")] @@ -461,8 +435,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@46..62 0: COLON@46..48 ":" [Newline("\n")] [] 1: CSS_BOGUS_PSEUDO_CLASS@48..62 - 0: CSS_IDENTIFIER@48..51 - 0: IDENT@48..51 "dir" [] [] + 0: DIR_KW@48..51 "dir" [] [] 1: L_PAREN@51..52 "(" [] [] 2: CSS_BOGUS@52..60 0: DOT@52..53 "." [] [] @@ -481,8 +454,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@64..79 0: COLON@64..66 ":" [Newline("\n")] [] 1: CSS_BOGUS_PSEUDO_CLASS@66..79 - 0: CSS_IDENTIFIER@66..69 - 0: IDENT@66..69 "dir" [] [] + 0: DIR_KW@66..69 "dir" [] [] 1: L_PAREN@69..70 "(" [] [] 2: CSS_BOGUS@70..79 0: DOT@70..71 "." [] [] @@ -500,8 +472,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@81..98 0: COLON@81..83 ":" [Newline("\n")] [] 1: CSS_BOGUS_PSEUDO_CLASS@83..98 - 0: CSS_IDENTIFIER@83..86 - 0: IDENT@83..86 "dir" [] [] + 0: DIR_KW@83..86 "dir" [] [] 1: L_PAREN@86..87 "(" [] [] 2: CSS_IDENTIFIER@87..91 0: IDENT@87..91 "ltr" [] [Whitespace(" ")] @@ -521,8 +492,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@100..118 0: COLON@100..102 ":" [Newline("\n")] [] 1: CSS_BOGUS_PSEUDO_CLASS@102..118 - 0: CSS_IDENTIFIER@102..105 - 0: IDENT@102..105 "dir" [] [] + 0: DIR_KW@102..105 "dir" [] [] 1: L_PAREN@105..106 "(" [] [] 2: CSS_IDENTIFIER@106..110 0: IDENT@106..110 "ltr" [] [Whitespace(" ")] @@ -543,8 +513,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@120..141 0: COLON@120..122 ":" [Newline("\n")] [] 1: CSS_BOGUS_PSEUDO_CLASS@122..141 - 0: CSS_IDENTIFIER@122..125 - 0: IDENT@122..125 "dir" [] [] + 0: DIR_KW@122..125 "dir" [] [] 1: L_PAREN@125..126 "(" [] [] 2: CSS_BOGUS@126..141 0: IDENT@126..134 "invalid" [] [Whitespace(" ")] @@ -563,8 +532,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@143..165 0: COLON@143..145 ":" [Newline("\n")] [] 1: CSS_BOGUS_PSEUDO_CLASS@145..165 - 0: CSS_IDENTIFIER@145..148 - 0: IDENT@145..148 "dir" [] [] + 0: DIR_KW@145..148 "dir" [] [] 1: L_PAREN@148..149 "(" [] [] 2: CSS_BOGUS@149..163 0: IDENT@149..157 "invalid" [] [Whitespace(" ")] @@ -584,8 +552,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@167..181 0: COLON@167..169 ":" [Newline("\n")] [] 1: CSS_BOGUS_PSEUDO_CLASS@169..181 - 0: CSS_IDENTIFIER@169..172 - 0: IDENT@169..172 "dir" [] [] + 0: DIR_KW@169..172 "dir" [] [] 1: L_PAREN@172..173 "(" [] [] 2: CSS_BOGUS@173..181 0: DOT@173..174 "." [] [] diff --git a/crates/biome_css_parser/tests/css_test_suite/error/selector/pseudo_class/pseudo_class_function_nth.css.snap b/crates/biome_css_parser/tests/css_test_suite/error/selector/pseudo_class/pseudo_class_function_nth.css.snap index e2ab23ea750c..b1554ab280c7 100644 --- a/crates/biome_css_parser/tests/css_test_suite/error/selector/pseudo_class/pseudo_class_function_nth.css.snap +++ b/crates/biome_css_parser/tests/css_test_suite/error/selector/pseudo_class/pseudo_class_function_nth.css.snap @@ -42,9 +42,7 @@ CssRoot { colon_token: COLON@0..1 ":" [] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@1..10 "nth-child" [] [], - }, + NTH_CHILD_KW@1..10 "nth-child" [] [], L_PAREN@10..11 "(" [] [], CssBogus { items: [ @@ -74,9 +72,7 @@ CssRoot { colon_token: COLON@22..24 ":" [Newline("\n")] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@24..33 "nth-child" [] [], - }, + NTH_CHILD_KW@24..33 "nth-child" [] [], L_PAREN@33..34 "(" [] [], CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -117,9 +113,7 @@ CssRoot { colon_token: COLON@42..44 ":" [Newline("\n")] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@44..53 "nth-child" [] [], - }, + NTH_CHILD_KW@44..53 "nth-child" [] [], L_PAREN@53..54 "(" [] [], CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -166,9 +160,7 @@ CssRoot { colon_token: COLON@68..70 ":" [Newline("\n")] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@70..79 "nth-child" [] [], - }, + NTH_CHILD_KW@70..79 "nth-child" [] [], L_PAREN@79..80 "(" [] [], CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -213,9 +205,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@93..95 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@95..104 "nth-child" [] [], - }, + name: NTH_CHILD_KW@95..104 "nth-child" [] [], l_paren_token: L_PAREN@104..105 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -255,9 +245,7 @@ CssRoot { colon_token: COLON@116..118 ":" [Newline("\n")] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@118..127 "nth-child" [] [], - }, + NTH_CHILD_KW@118..127 "nth-child" [] [], L_PAREN@127..128 "(" [] [], CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -299,9 +287,7 @@ CssRoot { colon_token: COLON@145..147 ":" [Newline("\n")] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@147..156 "nth-child" [] [], - }, + NTH_CHILD_KW@147..156 "nth-child" [] [], L_PAREN@156..157 "(" [] [], CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -341,9 +327,7 @@ CssRoot { colon_token: COLON@167..169 ":" [Newline("\n")] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@169..178 "nth-child" [] [], - }, + NTH_CHILD_KW@169..178 "nth-child" [] [], L_PAREN@178..179 "(" [] [], CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -387,9 +371,7 @@ CssRoot { colon_token: COLON@191..193 ":" [Newline("\n")] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@193..202 "nth-child" [] [], - }, + NTH_CHILD_KW@193..202 "nth-child" [] [], L_PAREN@202..203 "(" [] [], CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -432,9 +414,7 @@ CssRoot { colon_token: COLON@214..216 ":" [Newline("\n")] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@216..225 "nth-child" [] [], - }, + NTH_CHILD_KW@216..225 "nth-child" [] [], L_PAREN@225..226 "(" [] [], CssPseudoClassNthSelector { nth: CssPseudoClassNthIdentifier { @@ -471,9 +451,7 @@ CssRoot { colon_token: COLON@239..241 ":" [Newline("\n")] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@241..250 "nth-child" [] [], - }, + NTH_CHILD_KW@241..250 "nth-child" [] [], L_PAREN@250..251 "(" [] [], CssPseudoClassNthSelector { nth: CssPseudoClassNthIdentifier { @@ -508,9 +486,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@263..265 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@265..274 "nth-child" [] [], - }, + name: NTH_CHILD_KW@265..274 "nth-child" [] [], l_paren_token: L_PAREN@274..275 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNthIdentifier { @@ -562,9 +538,7 @@ CssRoot { colon_token: COLON@292..294 ":" [Newline("\n")] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@294..303 "nth-child" [] [], - }, + NTH_CHILD_KW@294..303 "nth-child" [] [], L_PAREN@303..304 "(" [] [], CssPseudoClassNthSelector { nth: CssPseudoClassNthIdentifier { @@ -616,9 +590,7 @@ CssRoot { colon_token: COLON@320..322 ":" [Newline("\n")] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@322..331 "nth-child" [] [], - }, + NTH_CHILD_KW@322..331 "nth-child" [] [], L_PAREN@331..332 "(" [] [], CssPseudoClassNthSelector { nth: CssPseudoClassNthIdentifier { @@ -657,9 +629,7 @@ CssRoot { colon_token: COLON@347..349 ":" [Newline("\n")] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@349..358 "nth-child" [] [], - }, + NTH_CHILD_KW@349..358 "nth-child" [] [], L_PAREN@358..359 "(" [] [], CssPseudoClassNthSelector { nth: CssPseudoClassNthIdentifier { @@ -698,9 +668,7 @@ CssRoot { colon_token: COLON@373..375 ":" [Newline("\n")] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@375..384 "nth-child" [] [], - }, + NTH_CHILD_KW@375..384 "nth-child" [] [], L_PAREN@384..385 "(" [] [], CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -746,8 +714,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@0..20 0: COLON@0..1 ":" [] [] 1: CSS_BOGUS_PSEUDO_CLASS@1..20 - 0: CSS_IDENTIFIER@1..10 - 0: IDENT@1..10 "nth-child" [] [] + 0: NTH_CHILD_KW@1..10 "nth-child" [] [] 1: L_PAREN@10..11 "(" [] [] 2: CSS_BOGUS@11..18 0: IDENT@11..18 "invalid" [] [] @@ -765,8 +732,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@22..40 0: COLON@22..24 ":" [Newline("\n")] [] 1: CSS_BOGUS_PSEUDO_CLASS@24..40 - 0: CSS_IDENTIFIER@24..33 - 0: IDENT@24..33 "nth-child" [] [] + 0: NTH_CHILD_KW@24..33 "nth-child" [] [] 1: L_PAREN@33..34 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@34..36 0: CSS_PSEUDO_CLASS_NTH@34..36 @@ -792,8 +758,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@42..66 0: COLON@42..44 ":" [Newline("\n")] [] 1: CSS_BOGUS_PSEUDO_CLASS@44..66 - 0: CSS_IDENTIFIER@44..53 - 0: IDENT@44..53 "nth-child" [] [] + 0: NTH_CHILD_KW@44..53 "nth-child" [] [] 1: L_PAREN@53..54 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@54..59 0: CSS_PSEUDO_CLASS_NTH@54..59 @@ -823,8 +788,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@68..91 0: COLON@68..70 ":" [Newline("\n")] [] 1: CSS_BOGUS_PSEUDO_CLASS@70..91 - 0: CSS_IDENTIFIER@70..79 - 0: IDENT@70..79 "nth-child" [] [] + 0: NTH_CHILD_KW@70..79 "nth-child" [] [] 1: L_PAREN@79..80 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@80..85 0: CSS_PSEUDO_CLASS_NTH@80..85 @@ -853,8 +817,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@93..114 0: COLON@93..95 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@95..114 - 0: CSS_IDENTIFIER@95..104 - 0: IDENT@95..104 "nth-child" [] [] + 0: NTH_CHILD_KW@95..104 "nth-child" [] [] 1: L_PAREN@104..105 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@105..112 0: CSS_PSEUDO_CLASS_NTH@105..112 @@ -881,8 +844,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@116..143 0: COLON@116..118 ":" [Newline("\n")] [] 1: CSS_BOGUS_PSEUDO_CLASS@118..143 - 0: CSS_IDENTIFIER@118..127 - 0: IDENT@118..127 "nth-child" [] [] + 0: NTH_CHILD_KW@118..127 "nth-child" [] [] 1: L_PAREN@127..128 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@128..131 0: CSS_PSEUDO_CLASS_NTH@128..131 @@ -909,8 +871,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@145..165 0: COLON@145..147 ":" [Newline("\n")] [] 1: CSS_BOGUS_PSEUDO_CLASS@147..165 - 0: CSS_IDENTIFIER@147..156 - 0: IDENT@147..156 "nth-child" [] [] + 0: NTH_CHILD_KW@147..156 "nth-child" [] [] 1: L_PAREN@156..157 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@157..165 0: CSS_PSEUDO_CLASS_NTH@157..165 @@ -936,8 +897,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@167..189 0: COLON@167..169 ":" [Newline("\n")] [] 1: CSS_BOGUS_PSEUDO_CLASS@169..189 - 0: CSS_IDENTIFIER@169..178 - 0: IDENT@169..178 "nth-child" [] [] + 0: NTH_CHILD_KW@169..178 "nth-child" [] [] 1: L_PAREN@178..179 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@179..184 0: CSS_PSEUDO_CLASS_NTH@179..184 @@ -965,8 +925,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@191..212 0: COLON@191..193 ":" [Newline("\n")] [] 1: CSS_BOGUS_PSEUDO_CLASS@193..212 - 0: CSS_IDENTIFIER@193..202 - 0: IDENT@193..202 "nth-child" [] [] + 0: NTH_CHILD_KW@193..202 "nth-child" [] [] 1: L_PAREN@202..203 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@203..208 0: CSS_PSEUDO_CLASS_NTH@203..208 @@ -993,8 +952,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@214..237 0: COLON@214..216 ":" [Newline("\n")] [] 1: CSS_BOGUS_PSEUDO_CLASS@216..237 - 0: CSS_IDENTIFIER@216..225 - 0: IDENT@216..225 "nth-child" [] [] + 0: NTH_CHILD_KW@216..225 "nth-child" [] [] 1: L_PAREN@225..226 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@226..231 0: CSS_PSEUDO_CLASS_NTH_IDENTIFIER@226..231 @@ -1017,8 +975,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@239..261 0: COLON@239..241 ":" [Newline("\n")] [] 1: CSS_BOGUS_PSEUDO_CLASS@241..261 - 0: CSS_IDENTIFIER@241..250 - 0: IDENT@241..250 "nth-child" [] [] + 0: NTH_CHILD_KW@241..250 "nth-child" [] [] 1: L_PAREN@250..251 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@251..256 0: CSS_PSEUDO_CLASS_NTH_IDENTIFIER@251..256 @@ -1040,8 +997,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@263..290 0: COLON@263..265 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@265..290 - 0: CSS_IDENTIFIER@265..274 - 0: IDENT@265..274 "nth-child" [] [] + 0: NTH_CHILD_KW@265..274 "nth-child" [] [] 1: L_PAREN@274..275 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@275..288 0: CSS_PSEUDO_CLASS_NTH_IDENTIFIER@275..280 @@ -1074,8 +1030,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@292..318 0: COLON@292..294 ":" [Newline("\n")] [] 1: CSS_BOGUS_PSEUDO_CLASS@294..318 - 0: CSS_IDENTIFIER@294..303 - 0: IDENT@294..303 "nth-child" [] [] + 0: NTH_CHILD_KW@294..303 "nth-child" [] [] 1: L_PAREN@303..304 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@304..318 0: CSS_PSEUDO_CLASS_NTH_IDENTIFIER@304..309 @@ -1107,8 +1062,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@320..345 0: COLON@320..322 ":" [Newline("\n")] [] 1: CSS_BOGUS_PSEUDO_CLASS@322..345 - 0: CSS_IDENTIFIER@322..331 - 0: IDENT@322..331 "nth-child" [] [] + 0: NTH_CHILD_KW@322..331 "nth-child" [] [] 1: L_PAREN@331..332 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@332..337 0: CSS_PSEUDO_CLASS_NTH_IDENTIFIER@332..337 @@ -1133,8 +1087,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@347..371 0: COLON@347..349 ":" [Newline("\n")] [] 1: CSS_BOGUS_PSEUDO_CLASS@349..371 - 0: CSS_IDENTIFIER@349..358 - 0: IDENT@349..358 "nth-child" [] [] + 0: NTH_CHILD_KW@349..358 "nth-child" [] [] 1: L_PAREN@358..359 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@359..364 0: CSS_PSEUDO_CLASS_NTH_IDENTIFIER@359..364 @@ -1158,8 +1111,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@373..391 0: COLON@373..375 ":" [Newline("\n")] [] 1: CSS_BOGUS_PSEUDO_CLASS@375..391 - 0: CSS_IDENTIFIER@375..384 - 0: IDENT@375..384 "nth-child" [] [] + 0: NTH_CHILD_KW@375..384 "nth-child" [] [] 1: L_PAREN@384..385 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@385..391 0: CSS_PSEUDO_CLASS_NTH@385..391 diff --git a/crates/biome_css_parser/tests/css_test_suite/error/selector/pseudo_class/pseudo_class_function_relative_selector_list.css.snap b/crates/biome_css_parser/tests/css_test_suite/error/selector/pseudo_class/pseudo_class_function_relative_selector_list.css.snap index f1682475b8c6..ef8c1bf09cf0 100644 --- a/crates/biome_css_parser/tests/css_test_suite/error/selector/pseudo_class/pseudo_class_function_relative_selector_list.css.snap +++ b/crates/biome_css_parser/tests/css_test_suite/error/selector/pseudo_class/pseudo_class_function_relative_selector_list.css.snap @@ -35,9 +35,7 @@ CssRoot { colon_token: COLON@0..1 ":" [] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@1..4 "has" [] [], - }, + HAS_KW@1..4 "has" [] [], L_PAREN@4..6 "(" [] [Whitespace(" ")], CssRelativeSelectorList [], ], @@ -62,9 +60,7 @@ CssRoot { colon_token: COLON@8..10 ":" [Newline("\n")] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@10..13 "has" [] [], - }, + HAS_KW@10..13 "has" [] [], L_PAREN@13..14 "(" [] [], CssRelativeSelectorList [], R_PAREN@14..16 ")" [] [Whitespace(" ")], @@ -90,9 +86,7 @@ CssRoot { colon_token: COLON@18..20 ":" [Newline("\n")] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@20..23 "has" [] [], - }, + HAS_KW@20..23 "has" [] [], L_PAREN@23..24 "(" [] [], CssRelativeSelectorList [], CssBogus { @@ -124,9 +118,7 @@ CssRoot { colon_token: COLON@36..38 ":" [Newline("\n")] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@38..41 "has" [] [], - }, + HAS_KW@38..41 "has" [] [], L_PAREN@41..42 "(" [] [], CssRelativeSelectorList [], CssBogus { @@ -157,9 +149,7 @@ CssRoot { colon_token: COLON@53..55 ":" [Newline("\n")] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@55..58 "has" [] [], - }, + HAS_KW@55..58 "has" [] [], L_PAREN@58..59 "(" [] [], CssRelativeSelectorList [], CssBogus { @@ -193,9 +183,7 @@ CssRoot { colon_token: COLON@78..80 ":" [Newline("\n")] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@80..83 "has" [] [], - }, + HAS_KW@80..83 "has" [] [], L_PAREN@83..84 "(" [] [], CssRelativeSelectorList [ CssRelativeSelector { @@ -260,9 +248,7 @@ CssRoot { colon_token: COLON@108..110 ":" [Newline("\n")] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@110..113 "has" [] [], - }, + HAS_KW@110..113 "has" [] [], L_PAREN@113..114 "(" [] [], CssRelativeSelectorList [ CssRelativeSelector { @@ -318,9 +304,7 @@ CssRoot { colon_token: COLON@128..130 ":" [Newline("\n")] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@130..133 "has" [] [], - }, + HAS_KW@130..133 "has" [] [], L_PAREN@133..134 "(" [] [], CssRelativeSelectorList [ CssRelativeSelector { @@ -362,9 +346,7 @@ CssRoot { colon_token: COLON@141..143 ":" [Newline("\n")] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@143..146 "has" [] [], - }, + HAS_KW@143..146 "has" [] [], L_PAREN@146..147 "(" [] [], CssRelativeSelectorList [ CssRelativeSelector { @@ -411,8 +393,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@0..6 0: COLON@0..1 ":" [] [] 1: CSS_BOGUS_PSEUDO_CLASS@1..6 - 0: CSS_IDENTIFIER@1..4 - 0: IDENT@1..4 "has" [] [] + 0: HAS_KW@1..4 "has" [] [] 1: L_PAREN@4..6 "(" [] [Whitespace(" ")] 2: CSS_RELATIVE_SELECTOR_LIST@6..6 1: CSS_BLOCK@6..8 @@ -428,8 +409,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@8..16 0: COLON@8..10 ":" [Newline("\n")] [] 1: CSS_BOGUS_PSEUDO_CLASS@10..16 - 0: CSS_IDENTIFIER@10..13 - 0: IDENT@10..13 "has" [] [] + 0: HAS_KW@10..13 "has" [] [] 1: L_PAREN@13..14 "(" [] [] 2: CSS_RELATIVE_SELECTOR_LIST@14..14 3: R_PAREN@14..16 ")" [] [Whitespace(" ")] @@ -446,8 +426,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@18..34 0: COLON@18..20 ":" [Newline("\n")] [] 1: CSS_BOGUS_PSEUDO_CLASS@20..34 - 0: CSS_IDENTIFIER@20..23 - 0: IDENT@20..23 "has" [] [] + 0: HAS_KW@20..23 "has" [] [] 1: L_PAREN@23..24 "(" [] [] 2: CSS_RELATIVE_SELECTOR_LIST@24..24 3: CSS_BOGUS@24..32 @@ -467,8 +446,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@36..51 0: COLON@36..38 ":" [Newline("\n")] [] 1: CSS_BOGUS_PSEUDO_CLASS@38..51 - 0: CSS_IDENTIFIER@38..41 - 0: IDENT@38..41 "has" [] [] + 0: HAS_KW@38..41 "has" [] [] 1: L_PAREN@41..42 "(" [] [] 2: CSS_RELATIVE_SELECTOR_LIST@42..42 3: CSS_BOGUS@42..51 @@ -487,8 +465,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@53..76 0: COLON@53..55 ":" [Newline("\n")] [] 1: CSS_BOGUS_PSEUDO_CLASS@55..76 - 0: CSS_IDENTIFIER@55..58 - 0: IDENT@55..58 "has" [] [] + 0: HAS_KW@55..58 "has" [] [] 1: L_PAREN@58..59 "(" [] [] 2: CSS_RELATIVE_SELECTOR_LIST@59..59 3: CSS_BOGUS@59..74 @@ -510,8 +487,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@78..106 0: COLON@78..80 ":" [Newline("\n")] [] 1: CSS_BOGUS_PSEUDO_CLASS@80..106 - 0: CSS_IDENTIFIER@80..83 - 0: IDENT@80..83 "has" [] [] + 0: HAS_KW@80..83 "has" [] [] 1: L_PAREN@83..84 "(" [] [] 2: CSS_RELATIVE_SELECTOR_LIST@84..96 0: CSS_RELATIVE_SELECTOR@84..95 @@ -553,8 +529,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@108..126 0: COLON@108..110 ":" [Newline("\n")] [] 1: CSS_BOGUS_PSEUDO_CLASS@110..126 - 0: CSS_IDENTIFIER@110..113 - 0: IDENT@110..113 "has" [] [] + 0: HAS_KW@110..113 "has" [] [] 1: L_PAREN@113..114 "(" [] [] 2: CSS_RELATIVE_SELECTOR_LIST@114..126 0: CSS_RELATIVE_SELECTOR@114..126 @@ -590,8 +565,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@128..139 0: COLON@128..130 ":" [Newline("\n")] [] 1: CSS_BOGUS_PSEUDO_CLASS@130..139 - 0: CSS_IDENTIFIER@130..133 - 0: IDENT@130..133 "has" [] [] + 0: HAS_KW@130..133 "has" [] [] 1: L_PAREN@133..134 "(" [] [] 2: CSS_RELATIVE_SELECTOR_LIST@134..139 0: CSS_RELATIVE_SELECTOR@134..139 @@ -617,8 +591,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@141..151 0: COLON@141..143 ":" [Newline("\n")] [] 1: CSS_BOGUS_PSEUDO_CLASS@143..151 - 0: CSS_IDENTIFIER@143..146 - 0: IDENT@143..146 "has" [] [] + 0: HAS_KW@143..146 "has" [] [] 1: L_PAREN@146..147 "(" [] [] 2: CSS_RELATIVE_SELECTOR_LIST@147..151 0: CSS_RELATIVE_SELECTOR@147..151 diff --git a/crates/biome_css_parser/tests/css_test_suite/error/selector/pseudo_class/pseudo_class_function_selector.css.snap b/crates/biome_css_parser/tests/css_test_suite/error/selector/pseudo_class/pseudo_class_function_selector.css.snap index 494129239941..c4d955d98b01 100644 --- a/crates/biome_css_parser/tests/css_test_suite/error/selector/pseudo_class/pseudo_class_function_selector.css.snap +++ b/crates/biome_css_parser/tests/css_test_suite/error/selector/pseudo_class/pseudo_class_function_selector.css.snap @@ -32,9 +32,7 @@ CssRoot { colon_token: COLON@0..1 ":" [] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@1..7 "global" [] [], - }, + GLOBAL_KW@1..7 "global" [] [], L_PAREN@7..9 "(" [] [Whitespace(" ")], ], }, @@ -58,9 +56,7 @@ CssRoot { colon_token: COLON@11..13 ":" [Newline("\n")] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@13..19 "global" [] [], - }, + GLOBAL_KW@13..19 "global" [] [], L_PAREN@19..20 "(" [] [], R_PAREN@20..22 ")" [] [Whitespace(" ")], ], @@ -85,9 +81,7 @@ CssRoot { colon_token: COLON@24..26 ":" [Newline("\n")] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@26..32 "global" [] [], - }, + GLOBAL_KW@26..32 "global" [] [], L_PAREN@32..33 "(" [] [], CssCompoundSelector { nesting_selector_token: missing (optional), @@ -131,9 +125,7 @@ CssRoot { colon_token: COLON@49..51 ":" [Newline("\n")] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@51..57 "global" [] [], - }, + GLOBAL_KW@51..57 "global" [] [], L_PAREN@57..58 "(" [] [], CssCompoundSelector { nesting_selector_token: missing (optional), @@ -176,9 +168,7 @@ CssRoot { colon_token: COLON@73..75 ":" [Newline("\n")] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@75..81 "global" [] [], - }, + GLOBAL_KW@75..81 "global" [] [], L_PAREN@81..82 "(" [] [], CssComplexSelector { left: CssCompoundSelector { @@ -230,9 +220,7 @@ CssRoot { colon_token: COLON@96..98 ":" [Newline("\n")] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@98..104 "global" [] [], - }, + GLOBAL_KW@98..104 "global" [] [], L_PAREN@104..105 "(" [] [], CssComplexSelector { left: CssCompoundSelector { @@ -289,8 +277,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@0..9 0: COLON@0..1 ":" [] [] 1: CSS_BOGUS_PSEUDO_CLASS@1..9 - 0: CSS_IDENTIFIER@1..7 - 0: IDENT@1..7 "global" [] [] + 0: GLOBAL_KW@1..7 "global" [] [] 1: L_PAREN@7..9 "(" [] [Whitespace(" ")] 1: CSS_BLOCK@9..11 0: L_CURLY@9..10 "{" [] [] @@ -305,8 +292,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@11..22 0: COLON@11..13 ":" [Newline("\n")] [] 1: CSS_BOGUS_PSEUDO_CLASS@13..22 - 0: CSS_IDENTIFIER@13..19 - 0: IDENT@13..19 "global" [] [] + 0: GLOBAL_KW@13..19 "global" [] [] 1: L_PAREN@19..20 "(" [] [] 2: R_PAREN@20..22 ")" [] [Whitespace(" ")] 1: CSS_BLOCK@22..24 @@ -322,8 +308,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@24..47 0: COLON@24..26 ":" [Newline("\n")] [] 1: CSS_BOGUS_PSEUDO_CLASS@26..47 - 0: CSS_IDENTIFIER@26..32 - 0: IDENT@26..32 "global" [] [] + 0: GLOBAL_KW@26..32 "global" [] [] 1: L_PAREN@32..33 "(" [] [] 2: CSS_COMPOUND_SELECTOR@33..37 0: (empty) @@ -351,8 +336,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@49..71 0: COLON@49..51 ":" [Newline("\n")] [] 1: CSS_BOGUS_PSEUDO_CLASS@51..71 - 0: CSS_IDENTIFIER@51..57 - 0: IDENT@51..57 "global" [] [] + 0: GLOBAL_KW@51..57 "global" [] [] 1: L_PAREN@57..58 "(" [] [] 2: CSS_COMPOUND_SELECTOR@58..62 0: (empty) @@ -379,8 +363,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@73..94 0: COLON@73..75 ":" [Newline("\n")] [] 1: CSS_BOGUS_PSEUDO_CLASS@75..94 - 0: CSS_IDENTIFIER@75..81 - 0: IDENT@75..81 "global" [] [] + 0: GLOBAL_KW@75..81 "global" [] [] 1: L_PAREN@81..82 "(" [] [] 2: CSS_COMPLEX_SELECTOR@82..94 0: CSS_COMPOUND_SELECTOR@82..86 @@ -413,8 +396,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@96..116 0: COLON@96..98 ":" [Newline("\n")] [] 1: CSS_BOGUS_PSEUDO_CLASS@98..116 - 0: CSS_IDENTIFIER@98..104 - 0: IDENT@98..104 "global" [] [] + 0: GLOBAL_KW@98..104 "global" [] [] 1: L_PAREN@104..105 "(" [] [] 2: CSS_COMPLEX_SELECTOR@105..116 0: CSS_COMPOUND_SELECTOR@105..109 diff --git a/crates/biome_css_parser/tests/css_test_suite/error/selector/pseudo_class/pseudo_class_function_selector_list.css.snap b/crates/biome_css_parser/tests/css_test_suite/error/selector/pseudo_class/pseudo_class_function_selector_list.css.snap index a0484739d195..f58364e69f00 100644 --- a/crates/biome_css_parser/tests/css_test_suite/error/selector/pseudo_class/pseudo_class_function_selector_list.css.snap +++ b/crates/biome_css_parser/tests/css_test_suite/error/selector/pseudo_class/pseudo_class_function_selector_list.css.snap @@ -35,9 +35,7 @@ CssRoot { colon_token: COLON@0..1 ":" [] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@1..6 "where" [] [], - }, + WHERE_KW@1..6 "where" [] [], L_PAREN@6..8 "(" [] [Whitespace(" ")], CssSelectorList [], ], @@ -62,9 +60,7 @@ CssRoot { colon_token: COLON@10..12 ":" [Newline("\n")] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@12..17 "where" [] [], - }, + WHERE_KW@12..17 "where" [] [], L_PAREN@17..18 "(" [] [], CssSelectorList [], R_PAREN@18..20 ")" [] [Whitespace(" ")], @@ -90,9 +86,7 @@ CssRoot { colon_token: COLON@22..24 ":" [Newline("\n")] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@24..29 "where" [] [], - }, + WHERE_KW@24..29 "where" [] [], L_PAREN@29..30 "(" [] [], CssSelectorList [], CssBogus { @@ -124,9 +118,7 @@ CssRoot { colon_token: COLON@42..44 ":" [Newline("\n")] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@44..49 "where" [] [], - }, + WHERE_KW@44..49 "where" [] [], L_PAREN@49..50 "(" [] [], CssSelectorList [], CssBogus { @@ -157,9 +149,7 @@ CssRoot { colon_token: COLON@61..63 ":" [Newline("\n")] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@63..68 "where" [] [], - }, + WHERE_KW@63..68 "where" [] [], L_PAREN@68..69 "(" [] [], CssSelectorList [], CssBogus { @@ -193,9 +183,7 @@ CssRoot { colon_token: COLON@88..90 ":" [Newline("\n")] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@90..95 "where" [] [], - }, + WHERE_KW@90..95 "where" [] [], L_PAREN@95..96 "(" [] [], CssSelectorList [ CssComplexSelector { @@ -257,9 +245,7 @@ CssRoot { colon_token: COLON@120..122 ":" [Newline("\n")] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@122..127 "where" [] [], - }, + WHERE_KW@122..127 "where" [] [], L_PAREN@127..128 "(" [] [], CssSelectorList [ CssComplexSelector { @@ -312,9 +298,7 @@ CssRoot { colon_token: COLON@142..144 ":" [Newline("\n")] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@144..149 "where" [] [], - }, + WHERE_KW@144..149 "where" [] [], L_PAREN@149..150 "(" [] [], CssSelectorList [ CssCompoundSelector { @@ -353,9 +337,7 @@ CssRoot { colon_token: COLON@157..159 ":" [Newline("\n")] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@159..164 "where" [] [], - }, + WHERE_KW@159..164 "where" [] [], L_PAREN@164..165 "(" [] [], CssSelectorList [ CssCompoundSelector { @@ -399,8 +381,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@0..8 0: COLON@0..1 ":" [] [] 1: CSS_BOGUS_PSEUDO_CLASS@1..8 - 0: CSS_IDENTIFIER@1..6 - 0: IDENT@1..6 "where" [] [] + 0: WHERE_KW@1..6 "where" [] [] 1: L_PAREN@6..8 "(" [] [Whitespace(" ")] 2: CSS_SELECTOR_LIST@8..8 1: CSS_BLOCK@8..10 @@ -416,8 +397,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@10..20 0: COLON@10..12 ":" [Newline("\n")] [] 1: CSS_BOGUS_PSEUDO_CLASS@12..20 - 0: CSS_IDENTIFIER@12..17 - 0: IDENT@12..17 "where" [] [] + 0: WHERE_KW@12..17 "where" [] [] 1: L_PAREN@17..18 "(" [] [] 2: CSS_SELECTOR_LIST@18..18 3: R_PAREN@18..20 ")" [] [Whitespace(" ")] @@ -434,8 +414,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@22..40 0: COLON@22..24 ":" [Newline("\n")] [] 1: CSS_BOGUS_PSEUDO_CLASS@24..40 - 0: CSS_IDENTIFIER@24..29 - 0: IDENT@24..29 "where" [] [] + 0: WHERE_KW@24..29 "where" [] [] 1: L_PAREN@29..30 "(" [] [] 2: CSS_SELECTOR_LIST@30..30 3: CSS_BOGUS@30..38 @@ -455,8 +434,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@42..59 0: COLON@42..44 ":" [Newline("\n")] [] 1: CSS_BOGUS_PSEUDO_CLASS@44..59 - 0: CSS_IDENTIFIER@44..49 - 0: IDENT@44..49 "where" [] [] + 0: WHERE_KW@44..49 "where" [] [] 1: L_PAREN@49..50 "(" [] [] 2: CSS_SELECTOR_LIST@50..50 3: CSS_BOGUS@50..59 @@ -475,8 +453,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@61..86 0: COLON@61..63 ":" [Newline("\n")] [] 1: CSS_BOGUS_PSEUDO_CLASS@63..86 - 0: CSS_IDENTIFIER@63..68 - 0: IDENT@63..68 "where" [] [] + 0: WHERE_KW@63..68 "where" [] [] 1: L_PAREN@68..69 "(" [] [] 2: CSS_SELECTOR_LIST@69..69 3: CSS_BOGUS@69..84 @@ -498,8 +475,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@88..118 0: COLON@88..90 ":" [Newline("\n")] [] 1: CSS_BOGUS_PSEUDO_CLASS@90..118 - 0: CSS_IDENTIFIER@90..95 - 0: IDENT@90..95 "where" [] [] + 0: WHERE_KW@90..95 "where" [] [] 1: L_PAREN@95..96 "(" [] [] 2: CSS_SELECTOR_LIST@96..108 0: CSS_COMPLEX_SELECTOR@96..107 @@ -539,8 +515,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@120..140 0: COLON@120..122 ":" [Newline("\n")] [] 1: CSS_BOGUS_PSEUDO_CLASS@122..140 - 0: CSS_IDENTIFIER@122..127 - 0: IDENT@122..127 "where" [] [] + 0: WHERE_KW@122..127 "where" [] [] 1: L_PAREN@127..128 "(" [] [] 2: CSS_SELECTOR_LIST@128..140 0: CSS_COMPLEX_SELECTOR@128..140 @@ -574,8 +549,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@142..155 0: COLON@142..144 ":" [Newline("\n")] [] 1: CSS_BOGUS_PSEUDO_CLASS@144..155 - 0: CSS_IDENTIFIER@144..149 - 0: IDENT@144..149 "where" [] [] + 0: WHERE_KW@144..149 "where" [] [] 1: L_PAREN@149..150 "(" [] [] 2: CSS_SELECTOR_LIST@150..155 0: CSS_COMPOUND_SELECTOR@150..155 @@ -599,8 +573,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@157..169 0: COLON@157..159 ":" [Newline("\n")] [] 1: CSS_BOGUS_PSEUDO_CLASS@159..169 - 0: CSS_IDENTIFIER@159..164 - 0: IDENT@159..164 "where" [] [] + 0: WHERE_KW@159..164 "where" [] [] 1: L_PAREN@164..165 "(" [] [] 2: CSS_SELECTOR_LIST@165..169 0: CSS_COMPOUND_SELECTOR@165..169 diff --git a/crates/biome_css_parser/tests/css_test_suite/error/selector/pseudo_class/pseudo_class_function_value_list.css.snap b/crates/biome_css_parser/tests/css_test_suite/error/selector/pseudo_class/pseudo_class_function_value_list.css.snap index c647753d5191..dcfb8cb561ce 100644 --- a/crates/biome_css_parser/tests/css_test_suite/error/selector/pseudo_class/pseudo_class_function_value_list.css.snap +++ b/crates/biome_css_parser/tests/css_test_suite/error/selector/pseudo_class/pseudo_class_function_value_list.css.snap @@ -33,9 +33,7 @@ CssRoot { colon_token: COLON@0..1 ":" [] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@1..5 "lang" [] [], - }, + LANG_KW@1..5 "lang" [] [], L_PAREN@5..7 "(" [] [Whitespace(" ")], CssPseudoValueList [], ], @@ -60,9 +58,7 @@ CssRoot { colon_token: COLON@9..11 ":" [Newline("\n")] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@11..15 "lang" [] [], - }, + LANG_KW@11..15 "lang" [] [], L_PAREN@15..16 "(" [] [], CssPseudoValueList [], R_PAREN@16..18 ")" [] [Whitespace(" ")], @@ -88,9 +84,7 @@ CssRoot { colon_token: COLON@20..22 ":" [Newline("\n")] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@22..26 "lang" [] [], - }, + LANG_KW@22..26 "lang" [] [], L_PAREN@26..27 "(" [] [], CssPseudoValueList [], CssBogus { @@ -125,9 +119,7 @@ CssRoot { colon_token: COLON@43..45 ":" [Newline("\n")] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@45..49 "lang" [] [], - }, + LANG_KW@45..49 "lang" [] [], L_PAREN@49..50 "(" [] [], CssPseudoValueList [], CssBogus { @@ -160,9 +152,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@65..67 ":" [Newline("\n")] [], class: CssPseudoClassFunctionValueList { - name: CssIdentifier { - value_token: IDENT@67..71 "lang" [] [], - }, + name_token: LANG_KW@67..71 "lang" [] [], l_paren_token: L_PAREN@71..72 "(" [] [], value_list: CssPseudoValueList [ CssIdentifier { @@ -195,9 +185,7 @@ CssRoot { colon_token: COLON@81..83 ":" [Newline("\n")] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@83..87 "lang" [] [], - }, + LANG_KW@83..87 "lang" [] [], L_PAREN@87..88 "(" [] [], CssPseudoValueList [ CssIdentifier { @@ -231,9 +219,7 @@ CssRoot { colon_token: COLON@96..98 ":" [Newline("\n")] [], class: CssBogusPseudoClass { items: [ - CssIdentifier { - value_token: IDENT@98..102 "lang" [] [], - }, + LANG_KW@98..102 "lang" [] [], L_PAREN@102..103 "(" [] [], CssPseudoValueList [ CssIdentifier { @@ -272,8 +258,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@0..7 0: COLON@0..1 ":" [] [] 1: CSS_BOGUS_PSEUDO_CLASS@1..7 - 0: CSS_IDENTIFIER@1..5 - 0: IDENT@1..5 "lang" [] [] + 0: LANG_KW@1..5 "lang" [] [] 1: L_PAREN@5..7 "(" [] [Whitespace(" ")] 2: CSS_PSEUDO_VALUE_LIST@7..7 1: CSS_BLOCK@7..9 @@ -289,8 +274,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@9..18 0: COLON@9..11 ":" [Newline("\n")] [] 1: CSS_BOGUS_PSEUDO_CLASS@11..18 - 0: CSS_IDENTIFIER@11..15 - 0: IDENT@11..15 "lang" [] [] + 0: LANG_KW@11..15 "lang" [] [] 1: L_PAREN@15..16 "(" [] [] 2: CSS_PSEUDO_VALUE_LIST@16..16 3: R_PAREN@16..18 ")" [] [Whitespace(" ")] @@ -307,8 +291,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@20..41 0: COLON@20..22 ":" [Newline("\n")] [] 1: CSS_BOGUS_PSEUDO_CLASS@22..41 - 0: CSS_IDENTIFIER@22..26 - 0: IDENT@22..26 "lang" [] [] + 0: LANG_KW@22..26 "lang" [] [] 1: L_PAREN@26..27 "(" [] [] 2: CSS_PSEUDO_VALUE_LIST@27..27 3: CSS_BOGUS@27..39 @@ -331,8 +314,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@43..63 0: COLON@43..45 ":" [Newline("\n")] [] 1: CSS_BOGUS_PSEUDO_CLASS@45..63 - 0: CSS_IDENTIFIER@45..49 - 0: IDENT@45..49 "lang" [] [] + 0: LANG_KW@45..49 "lang" [] [] 1: L_PAREN@49..50 "(" [] [] 2: CSS_PSEUDO_VALUE_LIST@50..50 3: CSS_BOGUS@50..63 @@ -354,8 +336,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@65..79 0: COLON@65..67 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_VALUE_LIST@67..79 - 0: CSS_IDENTIFIER@67..71 - 0: IDENT@67..71 "lang" [] [] + 0: LANG_KW@67..71 "lang" [] [] 1: L_PAREN@71..72 "(" [] [] 2: CSS_PSEUDO_VALUE_LIST@72..77 0: CSS_IDENTIFIER@72..75 @@ -377,8 +358,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@81..94 0: COLON@81..83 ":" [Newline("\n")] [] 1: CSS_BOGUS_PSEUDO_CLASS@83..94 - 0: CSS_IDENTIFIER@83..87 - 0: IDENT@83..87 "lang" [] [] + 0: LANG_KW@83..87 "lang" [] [] 1: L_PAREN@87..88 "(" [] [] 2: CSS_PSEUDO_VALUE_LIST@88..94 0: CSS_IDENTIFIER@88..91 @@ -399,8 +379,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@96..109 0: COLON@96..98 ":" [Newline("\n")] [] 1: CSS_BOGUS_PSEUDO_CLASS@98..109 - 0: CSS_IDENTIFIER@98..102 - 0: IDENT@98..102 "lang" [] [] + 0: LANG_KW@98..102 "lang" [] [] 1: L_PAREN@102..103 "(" [] [] 2: CSS_PSEUDO_VALUE_LIST@103..109 0: CSS_IDENTIFIER@103..105 diff --git a/crates/biome_css_parser/tests/css_test_suite/ok/at_rule/at_rule_color_profile.css b/crates/biome_css_parser/tests/css_test_suite/ok/at_rule/at_rule_color_profile.css new file mode 100644 index 000000000000..4bfdabf66974 --- /dev/null +++ b/crates/biome_css_parser/tests/css_test_suite/ok/at_rule/at_rule_color_profile.css @@ -0,0 +1,5 @@ +@color-profile --fogra39 { } + +@color-profile device-cmyk { } + +@color-profile DEVICE-CMYK { } diff --git a/crates/biome_css_parser/tests/css_test_suite/ok/at_rule/at_rule_color_profile.css.snap b/crates/biome_css_parser/tests/css_test_suite/ok/at_rule/at_rule_color_profile.css.snap new file mode 100644 index 000000000000..cb9924cecd25 --- /dev/null +++ b/crates/biome_css_parser/tests/css_test_suite/ok/at_rule/at_rule_color_profile.css.snap @@ -0,0 +1,111 @@ +--- +source: crates/biome_css_parser/tests/spec_test.rs +expression: snapshot +--- + +## Input + +```css +@color-profile --fogra39 { } + +@color-profile device-cmyk { } + +@color-profile DEVICE-CMYK { } + +``` + + +## AST + +``` +CssRoot { + bom_token: missing (optional), + rules: CssRuleList [ + CssAtRule { + at_token: AT@0..1 "@" [] [], + rule: CssColorProfileAtRule { + color_profile_token: COLOR_PROFILE_KW@1..15 "color-profile" [] [Whitespace(" ")], + name: CssIdentifier { + value_token: IDENT@15..25 "--fogra39" [] [Whitespace(" ")], + }, + block: CssBlock { + l_curly_token: L_CURLY@25..28 "{" [] [Whitespace(" ")], + declaration_list: CssDeclarationList [], + r_curly_token: R_CURLY@28..29 "}" [] [], + }, + }, + }, + CssAtRule { + at_token: AT@29..32 "@" [Newline("\n"), Newline("\n")] [], + rule: CssColorProfileAtRule { + color_profile_token: COLOR_PROFILE_KW@32..46 "color-profile" [] [Whitespace(" ")], + name: CssIdentifier { + value_token: IDENT@46..58 "device-cmyk" [] [Whitespace(" ")], + }, + block: CssBlock { + l_curly_token: L_CURLY@58..61 "{" [] [Whitespace(" ")], + declaration_list: CssDeclarationList [], + r_curly_token: R_CURLY@61..62 "}" [] [], + }, + }, + }, + CssAtRule { + at_token: AT@62..65 "@" [Newline("\n"), Newline("\n")] [], + rule: CssColorProfileAtRule { + color_profile_token: COLOR_PROFILE_KW@65..79 "color-profile" [] [Whitespace(" ")], + name: CssIdentifier { + value_token: IDENT@79..91 "DEVICE-CMYK" [] [Whitespace(" ")], + }, + block: CssBlock { + l_curly_token: L_CURLY@91..94 "{" [] [Whitespace(" ")], + declaration_list: CssDeclarationList [], + r_curly_token: R_CURLY@94..95 "}" [] [], + }, + }, + }, + ], + eof_token: EOF@95..96 "" [Newline("\n")] [], +} +``` + +## CST + +``` +0: CSS_ROOT@0..96 + 0: (empty) + 1: CSS_RULE_LIST@0..95 + 0: CSS_AT_RULE@0..29 + 0: AT@0..1 "@" [] [] + 1: CSS_COLOR_PROFILE_AT_RULE@1..29 + 0: COLOR_PROFILE_KW@1..15 "color-profile" [] [Whitespace(" ")] + 1: CSS_IDENTIFIER@15..25 + 0: IDENT@15..25 "--fogra39" [] [Whitespace(" ")] + 2: CSS_BLOCK@25..29 + 0: L_CURLY@25..28 "{" [] [Whitespace(" ")] + 1: CSS_DECLARATION_LIST@28..28 + 2: R_CURLY@28..29 "}" [] [] + 1: CSS_AT_RULE@29..62 + 0: AT@29..32 "@" [Newline("\n"), Newline("\n")] [] + 1: CSS_COLOR_PROFILE_AT_RULE@32..62 + 0: COLOR_PROFILE_KW@32..46 "color-profile" [] [Whitespace(" ")] + 1: CSS_IDENTIFIER@46..58 + 0: IDENT@46..58 "device-cmyk" [] [Whitespace(" ")] + 2: CSS_BLOCK@58..62 + 0: L_CURLY@58..61 "{" [] [Whitespace(" ")] + 1: CSS_DECLARATION_LIST@61..61 + 2: R_CURLY@61..62 "}" [] [] + 2: CSS_AT_RULE@62..95 + 0: AT@62..65 "@" [Newline("\n"), Newline("\n")] [] + 1: CSS_COLOR_PROFILE_AT_RULE@65..95 + 0: COLOR_PROFILE_KW@65..79 "color-profile" [] [Whitespace(" ")] + 1: CSS_IDENTIFIER@79..91 + 0: IDENT@79..91 "DEVICE-CMYK" [] [Whitespace(" ")] + 2: CSS_BLOCK@91..95 + 0: L_CURLY@91..94 "{" [] [Whitespace(" ")] + 1: CSS_DECLARATION_LIST@94..94 + 2: R_CURLY@94..95 "}" [] [] + 2: EOF@95..96 "" [Newline("\n")] [] + +``` + + diff --git a/crates/biome_css_parser/tests/css_test_suite/ok/at_rule/at_rule_counter_style.css b/crates/biome_css_parser/tests/css_test_suite/ok/at_rule/at_rule_counter_style.css new file mode 100644 index 000000000000..01bb87bf881b --- /dev/null +++ b/crates/biome_css_parser/tests/css_test_suite/ok/at_rule/at_rule_counter_style.css @@ -0,0 +1 @@ +@counter-style thumbs { } diff --git a/crates/biome_css_parser/tests/css_test_suite/ok/at_rule/at_rule_counter_style.css.snap b/crates/biome_css_parser/tests/css_test_suite/ok/at_rule/at_rule_counter_style.css.snap new file mode 100644 index 000000000000..1f4e59696bb1 --- /dev/null +++ b/crates/biome_css_parser/tests/css_test_suite/ok/at_rule/at_rule_counter_style.css.snap @@ -0,0 +1,59 @@ +--- +source: crates/biome_css_parser/tests/spec_test.rs +expression: snapshot +--- + +## Input + +```css +@counter-style thumbs { } + +``` + + +## AST + +``` +CssRoot { + bom_token: missing (optional), + rules: CssRuleList [ + CssAtRule { + at_token: AT@0..1 "@" [] [], + rule: CssCounterStyleAtRule { + counter_style_token: COUNTER_STYLE_KW@1..15 "counter-style" [] [Whitespace(" ")], + name: CssIdentifier { + value_token: IDENT@15..22 "thumbs" [] [Whitespace(" ")], + }, + block: CssBlock { + l_curly_token: L_CURLY@22..25 "{" [] [Whitespace(" ")], + declaration_list: CssDeclarationList [], + r_curly_token: R_CURLY@25..26 "}" [] [], + }, + }, + }, + ], + eof_token: EOF@26..27 "" [Newline("\n")] [], +} +``` + +## CST + +``` +0: CSS_ROOT@0..27 + 0: (empty) + 1: CSS_RULE_LIST@0..26 + 0: CSS_AT_RULE@0..26 + 0: AT@0..1 "@" [] [] + 1: CSS_COUNTER_STYLE_AT_RULE@1..26 + 0: COUNTER_STYLE_KW@1..15 "counter-style" [] [Whitespace(" ")] + 1: CSS_IDENTIFIER@15..22 + 0: IDENT@15..22 "thumbs" [] [Whitespace(" ")] + 2: CSS_BLOCK@22..26 + 0: L_CURLY@22..25 "{" [] [Whitespace(" ")] + 1: CSS_DECLARATION_LIST@25..25 + 2: R_CURLY@25..26 "}" [] [] + 2: EOF@26..27 "" [Newline("\n")] [] + +``` + + diff --git a/crates/biome_css_parser/tests/css_test_suite/ok/selector/pseudo_class/pseudo_class_an_plus_b.css.snap b/crates/biome_css_parser/tests/css_test_suite/ok/selector/pseudo_class/pseudo_class_an_plus_b.css.snap index 513c6b4f3130..aed374f3bd78 100644 --- a/crates/biome_css_parser/tests/css_test_suite/ok/selector/pseudo_class/pseudo_class_an_plus_b.css.snap +++ b/crates/biome_css_parser/tests/css_test_suite/ok/selector/pseudo_class/pseudo_class_an_plus_b.css.snap @@ -133,9 +133,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@0..1 ":" [] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@1..10 "nth-child" [] [], - }, + name: NTH_CHILD_KW@1..10 "nth-child" [] [], l_paren_token: L_PAREN@10..11 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -174,9 +172,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@19..21 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@21..30 "nth-child" [] [], - }, + name: NTH_CHILD_KW@21..30 "nth-child" [] [], l_paren_token: L_PAREN@30..31 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -215,9 +211,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@40..42 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@42..51 "nth-child" [] [], - }, + name: NTH_CHILD_KW@42..51 "nth-child" [] [], l_paren_token: L_PAREN@51..52 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -256,9 +250,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@62..64 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@64..73 "nth-child" [] [], - }, + name: NTH_CHILD_KW@64..73 "nth-child" [] [], l_paren_token: L_PAREN@73..74 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -297,9 +289,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@83..85 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@85..94 "nth-child" [] [], - }, + name: NTH_CHILD_KW@85..94 "nth-child" [] [], l_paren_token: L_PAREN@94..95 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -338,9 +328,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@103..105 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@105..114 "nth-child" [] [], - }, + name: NTH_CHILD_KW@105..114 "nth-child" [] [], l_paren_token: L_PAREN@114..115 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -379,9 +367,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@124..126 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@126..135 "nth-child" [] [], - }, + name: NTH_CHILD_KW@126..135 "nth-child" [] [], l_paren_token: L_PAREN@135..136 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -420,9 +406,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@145..147 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@147..156 "nth-child" [] [], - }, + name: NTH_CHILD_KW@147..156 "nth-child" [] [], l_paren_token: L_PAREN@156..157 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -461,9 +445,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@167..169 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@169..178 "nth-child" [] [], - }, + name: NTH_CHILD_KW@169..178 "nth-child" [] [], l_paren_token: L_PAREN@178..179 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -502,9 +484,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@188..190 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@190..199 "nth-child" [] [], - }, + name: NTH_CHILD_KW@190..199 "nth-child" [] [], l_paren_token: L_PAREN@199..200 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -543,9 +523,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@210..212 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@212..221 "nth-child" [] [], - }, + name: NTH_CHILD_KW@212..221 "nth-child" [] [], l_paren_token: L_PAREN@221..222 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -584,9 +562,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@233..235 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@235..244 "nth-child" [] [], - }, + name: NTH_CHILD_KW@235..244 "nth-child" [] [], l_paren_token: L_PAREN@244..245 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -625,9 +601,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@255..257 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@257..266 "nth-child" [] [], - }, + name: NTH_CHILD_KW@257..266 "nth-child" [] [], l_paren_token: L_PAREN@266..267 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -666,9 +640,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@276..278 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@278..287 "nth-child" [] [], - }, + name: NTH_CHILD_KW@278..287 "nth-child" [] [], l_paren_token: L_PAREN@287..288 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -707,9 +679,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@298..300 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@300..309 "nth-child" [] [], - }, + name: NTH_CHILD_KW@300..309 "nth-child" [] [], l_paren_token: L_PAREN@309..310 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -748,9 +718,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@321..323 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@323..332 "nth-child" [] [], - }, + name: NTH_CHILD_KW@323..332 "nth-child" [] [], l_paren_token: L_PAREN@332..333 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -789,9 +757,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@342..344 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@344..353 "nth-child" [] [], - }, + name: NTH_CHILD_KW@344..353 "nth-child" [] [], l_paren_token: L_PAREN@353..354 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -830,9 +796,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@364..366 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@366..375 "nth-child" [] [], - }, + name: NTH_CHILD_KW@366..375 "nth-child" [] [], l_paren_token: L_PAREN@375..376 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -871,9 +835,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@387..389 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@389..398 "nth-child" [] [], - }, + name: NTH_CHILD_KW@389..398 "nth-child" [] [], l_paren_token: L_PAREN@398..399 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -912,9 +874,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@409..411 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@411..420 "nth-child" [] [], - }, + name: NTH_CHILD_KW@411..420 "nth-child" [] [], l_paren_token: L_PAREN@420..421 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -953,9 +913,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@430..432 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@432..441 "nth-child" [] [], - }, + name: NTH_CHILD_KW@432..441 "nth-child" [] [], l_paren_token: L_PAREN@441..442 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -994,9 +952,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@452..454 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@454..463 "nth-child" [] [], - }, + name: NTH_CHILD_KW@454..463 "nth-child" [] [], l_paren_token: L_PAREN@463..464 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -1035,9 +991,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@474..476 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@476..485 "nth-child" [] [], - }, + name: NTH_CHILD_KW@476..485 "nth-child" [] [], l_paren_token: L_PAREN@485..486 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -1076,9 +1030,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@497..499 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@499..508 "nth-child" [] [], - }, + name: NTH_CHILD_KW@499..508 "nth-child" [] [], l_paren_token: L_PAREN@508..509 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -1115,9 +1067,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@516..518 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@518..527 "nth-child" [] [], - }, + name: NTH_CHILD_KW@518..527 "nth-child" [] [], l_paren_token: L_PAREN@527..528 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -1154,9 +1104,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@536..538 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@538..547 "nth-child" [] [], - }, + name: NTH_CHILD_KW@538..547 "nth-child" [] [], l_paren_token: L_PAREN@547..548 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -1193,9 +1141,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@557..559 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@559..568 "nth-child" [] [], - }, + name: NTH_CHILD_KW@559..568 "nth-child" [] [], l_paren_token: L_PAREN@568..569 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -1232,9 +1178,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@577..579 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@579..588 "nth-child" [] [], - }, + name: NTH_CHILD_KW@579..588 "nth-child" [] [], l_paren_token: L_PAREN@588..589 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -1271,9 +1215,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@596..598 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@598..607 "nth-child" [] [], - }, + name: NTH_CHILD_KW@598..607 "nth-child" [] [], l_paren_token: L_PAREN@607..608 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -1310,9 +1252,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@616..618 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@618..627 "nth-child" [] [], - }, + name: NTH_CHILD_KW@618..627 "nth-child" [] [], l_paren_token: L_PAREN@627..628 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -1349,9 +1289,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@636..638 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@638..647 "nth-child" [] [], - }, + name: NTH_CHILD_KW@638..647 "nth-child" [] [], l_paren_token: L_PAREN@647..648 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -1388,9 +1326,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@657..659 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@659..668 "nth-child" [] [], - }, + name: NTH_CHILD_KW@659..668 "nth-child" [] [], l_paren_token: L_PAREN@668..669 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -1427,9 +1363,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@677..679 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@679..688 "nth-child" [] [], - }, + name: NTH_CHILD_KW@679..688 "nth-child" [] [], l_paren_token: L_PAREN@688..689 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -1466,9 +1400,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@698..700 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@700..709 "nth-child" [] [], - }, + name: NTH_CHILD_KW@700..709 "nth-child" [] [], l_paren_token: L_PAREN@709..710 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -1505,9 +1437,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@720..722 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@722..731 "nth-child" [] [], - }, + name: NTH_CHILD_KW@722..731 "nth-child" [] [], l_paren_token: L_PAREN@731..732 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -1544,9 +1474,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@741..743 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@743..752 "nth-child" [] [], - }, + name: NTH_CHILD_KW@743..752 "nth-child" [] [], l_paren_token: L_PAREN@752..753 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -1583,9 +1511,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@761..763 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@763..772 "nth-child" [] [], - }, + name: NTH_CHILD_KW@763..772 "nth-child" [] [], l_paren_token: L_PAREN@772..773 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -1622,9 +1548,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@782..784 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@784..793 "nth-child" [] [], - }, + name: NTH_CHILD_KW@784..793 "nth-child" [] [], l_paren_token: L_PAREN@793..794 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -1661,9 +1585,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@803..805 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@805..814 "nth-child" [] [], - }, + name: NTH_CHILD_KW@805..814 "nth-child" [] [], l_paren_token: L_PAREN@814..815 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -1700,9 +1622,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@825..827 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@827..836 "nth-child" [] [], - }, + name: NTH_CHILD_KW@827..836 "nth-child" [] [], l_paren_token: L_PAREN@836..837 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -1739,9 +1659,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@845..847 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@847..856 "nth-child" [] [], - }, + name: NTH_CHILD_KW@847..856 "nth-child" [] [], l_paren_token: L_PAREN@856..857 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -1778,9 +1696,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@866..868 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@868..877 "nth-child" [] [], - }, + name: NTH_CHILD_KW@868..877 "nth-child" [] [], l_paren_token: L_PAREN@877..878 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -1817,9 +1733,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@888..890 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@890..899 "nth-child" [] [], - }, + name: NTH_CHILD_KW@890..899 "nth-child" [] [], l_paren_token: L_PAREN@899..900 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -1856,9 +1770,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@909..911 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@911..920 "nth-child" [] [], - }, + name: NTH_CHILD_KW@911..920 "nth-child" [] [], l_paren_token: L_PAREN@920..921 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -1895,9 +1807,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@929..931 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@931..940 "nth-child" [] [], - }, + name: NTH_CHILD_KW@931..940 "nth-child" [] [], l_paren_token: L_PAREN@940..941 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -1934,9 +1844,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@950..952 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@952..961 "nth-child" [] [], - }, + name: NTH_CHILD_KW@952..961 "nth-child" [] [], l_paren_token: L_PAREN@961..962 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -1973,9 +1881,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@971..973 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@973..982 "nth-child" [] [], - }, + name: NTH_CHILD_KW@973..982 "nth-child" [] [], l_paren_token: L_PAREN@982..983 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -2012,9 +1918,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@993..995 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@995..1004 "nth-child" [] [], - }, + name: NTH_CHILD_KW@995..1004 "nth-child" [] [], l_paren_token: L_PAREN@1004..1005 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -2046,9 +1950,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@1010..1012 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@1012..1021 "nth-child" [] [], - }, + name: NTH_CHILD_KW@1012..1021 "nth-child" [] [], l_paren_token: L_PAREN@1021..1022 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -2080,9 +1982,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@1028..1030 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@1030..1039 "nth-child" [] [], - }, + name: NTH_CHILD_KW@1030..1039 "nth-child" [] [], l_paren_token: L_PAREN@1039..1040 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -2114,9 +2014,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@1046..1048 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@1048..1057 "nth-child" [] [], - }, + name: NTH_CHILD_KW@1048..1057 "nth-child" [] [], l_paren_token: L_PAREN@1057..1058 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -2150,9 +2048,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@1064..1066 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@1066..1075 "nth-child" [] [], - }, + name: NTH_CHILD_KW@1066..1075 "nth-child" [] [], l_paren_token: L_PAREN@1075..1076 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -2186,9 +2082,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@1083..1085 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@1085..1094 "nth-child" [] [], - }, + name: NTH_CHILD_KW@1085..1094 "nth-child" [] [], l_paren_token: L_PAREN@1094..1095 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -2222,9 +2116,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@1102..1104 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@1104..1113 "nth-child" [] [], - }, + name: NTH_CHILD_KW@1104..1113 "nth-child" [] [], l_paren_token: L_PAREN@1113..1114 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -2256,9 +2148,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@1119..1121 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@1121..1130 "nth-child" [] [], - }, + name: NTH_CHILD_KW@1121..1130 "nth-child" [] [], l_paren_token: L_PAREN@1130..1131 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -2290,9 +2180,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@1137..1139 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@1139..1148 "nth-child" [] [], - }, + name: NTH_CHILD_KW@1139..1148 "nth-child" [] [], l_paren_token: L_PAREN@1148..1149 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -2324,9 +2212,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@1155..1157 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@1157..1166 "nth-child" [] [], - }, + name: NTH_CHILD_KW@1157..1166 "nth-child" [] [], l_paren_token: L_PAREN@1166..1167 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -2360,9 +2246,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@1173..1175 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@1175..1184 "nth-child" [] [], - }, + name: NTH_CHILD_KW@1175..1184 "nth-child" [] [], l_paren_token: L_PAREN@1184..1185 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -2396,9 +2280,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@1192..1194 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@1194..1203 "nth-child" [] [], - }, + name: NTH_CHILD_KW@1194..1203 "nth-child" [] [], l_paren_token: L_PAREN@1203..1204 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -2432,9 +2314,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@1211..1213 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@1213..1222 "nth-child" [] [], - }, + name: NTH_CHILD_KW@1213..1222 "nth-child" [] [], l_paren_token: L_PAREN@1222..1223 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNthNumber { @@ -2466,9 +2346,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@1228..1230 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@1230..1239 "nth-child" [] [], - }, + name: NTH_CHILD_KW@1230..1239 "nth-child" [] [], l_paren_token: L_PAREN@1239..1240 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNthNumber { @@ -2500,9 +2378,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@1246..1248 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@1248..1257 "nth-child" [] [], - }, + name: NTH_CHILD_KW@1248..1257 "nth-child" [] [], l_paren_token: L_PAREN@1257..1258 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNthNumber { @@ -2534,9 +2410,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@1264..1266 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@1266..1275 "nth-child" [] [], - }, + name: NTH_CHILD_KW@1266..1275 "nth-child" [] [], l_paren_token: L_PAREN@1275..1276 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -2575,9 +2449,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@1296..1299 ":" [Newline("\n"), Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@1299..1308 "Nth-Child" [] [], - }, + name: NTH_CHILD_KW@1299..1308 "Nth-Child" [] [], l_paren_token: L_PAREN@1308..1309 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -2616,9 +2488,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@1317..1319 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@1319..1328 "NTH-CHILD" [] [], - }, + name: NTH_CHILD_KW@1319..1328 "NTH-CHILD" [] [], l_paren_token: L_PAREN@1328..1329 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -2657,9 +2527,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@1337..1340 ":" [Newline("\n"), Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@1340..1349 "nth-child" [] [], - }, + name: NTH_CHILD_KW@1340..1349 "nth-child" [] [], l_paren_token: L_PAREN@1349..1350 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNthIdentifier { @@ -2688,9 +2556,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@1357..1359 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@1359..1368 "nth-child" [] [], - }, + name: NTH_CHILD_KW@1359..1368 "nth-child" [] [], l_paren_token: L_PAREN@1368..1369 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNthIdentifier { @@ -2719,9 +2585,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@1376..1378 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@1378..1387 "nth-child" [] [], - }, + name: NTH_CHILD_KW@1378..1387 "nth-child" [] [], l_paren_token: L_PAREN@1387..1388 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNthIdentifier { @@ -2750,9 +2614,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@1395..1397 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@1397..1406 "nth-child" [] [], - }, + name: NTH_CHILD_KW@1397..1406 "nth-child" [] [], l_paren_token: L_PAREN@1406..1407 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNthIdentifier { @@ -2781,9 +2643,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@1415..1417 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@1417..1426 "nth-child" [] [], - }, + name: NTH_CHILD_KW@1417..1426 "nth-child" [] [], l_paren_token: L_PAREN@1426..1427 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNthIdentifier { @@ -2812,9 +2672,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@1435..1437 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@1437..1446 "nth-child" [] [], - }, + name: NTH_CHILD_KW@1437..1446 "nth-child" [] [], l_paren_token: L_PAREN@1446..1447 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNthIdentifier { @@ -2843,9 +2701,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@1455..1458 ":" [Newline("\n"), Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@1458..1467 "nth-child" [] [], - }, + name: NTH_CHILD_KW@1458..1467 "nth-child" [] [], l_paren_token: L_PAREN@1467..1476 "(" [] [Comments("/*test*/")], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -2884,9 +2740,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@1508..1510 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@1510..1524 "nth-last-child" [] [], - }, + name: NTH_LAST_CHILD_KW@1510..1524 "nth-last-child" [] [], l_paren_token: L_PAREN@1524..1533 "(" [] [Comments("/*test*/")], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -2925,9 +2779,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@1566..1569 ":" [Newline("\n"), Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@1569..1578 "nth-child" [] [], - }, + name: NTH_CHILD_KW@1569..1578 "nth-child" [] [], l_paren_token: L_PAREN@1578..1581 "(" [] [Whitespace(" ")], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -2966,9 +2818,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@1595..1597 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@1597..1611 "nth-last-child" [] [], - }, + name: NTH_LAST_CHILD_KW@1597..1611 "nth-last-child" [] [], l_paren_token: L_PAREN@1611..1614 "(" [] [Whitespace(" ")], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -3007,9 +2857,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@1629..1632 ":" [Newline("\n"), Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@1632..1641 "nth-child" [] [], - }, + name: NTH_CHILD_KW@1632..1641 "nth-child" [] [], l_paren_token: L_PAREN@1641..1642 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -3048,9 +2896,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@1651..1653 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@1653..1667 "nth-last-child" [] [], - }, + name: NTH_LAST_CHILD_KW@1653..1667 "nth-last-child" [] [], l_paren_token: L_PAREN@1667..1668 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -3089,9 +2935,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@1676..1678 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@1678..1689 "nth-of-type" [] [], - }, + name: NTH_OF_TYPE_KW@1678..1689 "nth-of-type" [] [], l_paren_token: L_PAREN@1689..1690 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -3130,9 +2974,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@1698..1700 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@1700..1716 "nth-last-of-type" [] [], - }, + name: NTH_LAST_OF_TYPE_KW@1700..1716 "nth-last-of-type" [] [], l_paren_token: L_PAREN@1716..1717 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -3171,9 +3013,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@1725..1728 ":" [Newline("\n"), Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@1728..1735 "nth-col" [] [], - }, + name: NTH_COL_KW@1728..1735 "nth-col" [] [], l_paren_token: L_PAREN@1735..1736 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNthIdentifier { @@ -3202,9 +3042,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@1743..1745 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@1745..1752 "nth-col" [] [], - }, + name: NTH_COL_KW@1745..1752 "nth-col" [] [], l_paren_token: L_PAREN@1752..1753 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -3243,9 +3081,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@1761..1763 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@1763..1775 "nth-last-col" [] [], - }, + name: NTH_LAST_COL_KW@1763..1775 "nth-last-col" [] [], l_paren_token: L_PAREN@1775..1776 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNthIdentifier { @@ -3274,9 +3110,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@1783..1785 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@1785..1797 "nth-last-col" [] [], - }, + name: NTH_LAST_COL_KW@1785..1797 "nth-last-col" [] [], l_paren_token: L_PAREN@1797..1798 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -3320,9 +3154,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@1810..1811 ":" [] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@1811..1820 "nth-child" [] [], - }, + name: NTH_CHILD_KW@1811..1820 "nth-child" [] [], l_paren_token: L_PAREN@1820..1821 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNthNumber { @@ -3359,9 +3191,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@1827..1828 ":" [] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@1828..1837 "nth-child" [] [], - }, + name: NTH_CHILD_KW@1828..1837 "nth-child" [] [], l_paren_token: L_PAREN@1837..1838 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNthNumber { @@ -3398,9 +3228,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@1845..1846 ":" [] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@1846..1855 "nth-child" [] [], - }, + name: NTH_CHILD_KW@1846..1855 "nth-child" [] [], l_paren_token: L_PAREN@1855..1856 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNthNumber { @@ -3437,9 +3265,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@1863..1864 ":" [] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@1864..1873 "nth-child" [] [], - }, + name: NTH_CHILD_KW@1864..1873 "nth-child" [] [], l_paren_token: L_PAREN@1873..1874 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNthNumber { @@ -3476,9 +3302,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@1880..1881 ":" [] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@1881..1890 "nth-child" [] [], - }, + name: NTH_CHILD_KW@1881..1890 "nth-child" [] [], l_paren_token: L_PAREN@1890..1891 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNthNumber { @@ -3515,9 +3339,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@1898..1899 ":" [] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@1899..1908 "nth-child" [] [], - }, + name: NTH_CHILD_KW@1899..1908 "nth-child" [] [], l_paren_token: L_PAREN@1908..1909 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNthNumber { @@ -3554,9 +3376,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@1916..1917 ":" [] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@1917..1926 "nth-child" [] [], - }, + name: NTH_CHILD_KW@1917..1926 "nth-child" [] [], l_paren_token: L_PAREN@1926..1927 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNthNumber { @@ -3593,9 +3413,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@1933..1934 ":" [] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@1934..1943 "nth-child" [] [], - }, + name: NTH_CHILD_KW@1934..1943 "nth-child" [] [], l_paren_token: L_PAREN@1943..1944 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNthNumber { @@ -3632,9 +3450,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@1951..1952 ":" [] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@1952..1961 "nth-child" [] [], - }, + name: NTH_CHILD_KW@1952..1961 "nth-child" [] [], l_paren_token: L_PAREN@1961..1962 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNthNumber { @@ -3666,9 +3482,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@1967..1970 ":" [Newline("\n"), Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@1970..1979 "nth-child" [] [], - }, + name: NTH_CHILD_KW@1970..1979 "nth-child" [] [], l_paren_token: L_PAREN@1979..1980 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -3721,9 +3535,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@1994..1996 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@1996..2005 "nth-child" [] [], - }, + name: NTH_CHILD_KW@1996..2005 "nth-child" [] [], l_paren_token: L_PAREN@2005..2009 "(" [] [Whitespace(" ")], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -3776,9 +3588,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@2026..2028 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@2028..2037 "nth-child" [] [], - }, + name: NTH_CHILD_KW@2028..2037 "nth-child" [] [], l_paren_token: L_PAREN@2037..2038 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -3844,9 +3654,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@2058..2060 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@2060..2069 "nth-child" [] [], - }, + name: NTH_CHILD_KW@2060..2069 "nth-child" [] [], l_paren_token: L_PAREN@2069..2070 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -3912,9 +3720,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@2091..2093 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@2093..2102 "nth-child" [] [], - }, + name: NTH_CHILD_KW@2093..2102 "nth-child" [] [], l_paren_token: L_PAREN@2102..2103 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -3977,9 +3783,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@2130..2131 ":" [] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@2131..2140 "nth-child" [] [], - }, + name: NTH_CHILD_KW@2131..2140 "nth-child" [] [], l_paren_token: L_PAREN@2140..2141 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNthIdentifier { @@ -3995,9 +3799,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@2149..2150 ":" [] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@2150..2153 "not" [] [], - }, + name: NOT_KW@2150..2153 "not" [] [], l_paren_token: L_PAREN@2153..2154 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -4048,9 +3850,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@2167..2169 ":" [Newline("\n")] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@2169..2178 "nth-child" [] [], - }, + name: NTH_CHILD_KW@2169..2178 "nth-child" [] [], l_paren_token: L_PAREN@2178..2179 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNth { @@ -4114,8 +3914,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@0..17 0: COLON@0..1 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@1..17 - 0: CSS_IDENTIFIER@1..10 - 0: IDENT@1..10 "nth-child" [] [] + 0: NTH_CHILD_KW@1..10 "nth-child" [] [] 1: L_PAREN@10..11 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@11..15 0: CSS_PSEUDO_CLASS_NTH@11..15 @@ -4142,8 +3941,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@19..38 0: COLON@19..21 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@21..38 - 0: CSS_IDENTIFIER@21..30 - 0: IDENT@21..30 "nth-child" [] [] + 0: NTH_CHILD_KW@21..30 "nth-child" [] [] 1: L_PAREN@30..31 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@31..36 0: CSS_PSEUDO_CLASS_NTH@31..36 @@ -4170,8 +3968,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@40..60 0: COLON@40..42 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@42..60 - 0: CSS_IDENTIFIER@42..51 - 0: IDENT@42..51 "nth-child" [] [] + 0: NTH_CHILD_KW@42..51 "nth-child" [] [] 1: L_PAREN@51..52 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@52..58 0: CSS_PSEUDO_CLASS_NTH@52..58 @@ -4198,8 +3995,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@62..81 0: COLON@62..64 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@64..81 - 0: CSS_IDENTIFIER@64..73 - 0: IDENT@64..73 "nth-child" [] [] + 0: NTH_CHILD_KW@64..73 "nth-child" [] [] 1: L_PAREN@73..74 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@74..79 0: CSS_PSEUDO_CLASS_NTH@74..79 @@ -4226,8 +4022,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@83..101 0: COLON@83..85 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@85..101 - 0: CSS_IDENTIFIER@85..94 - 0: IDENT@85..94 "nth-child" [] [] + 0: NTH_CHILD_KW@85..94 "nth-child" [] [] 1: L_PAREN@94..95 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@95..99 0: CSS_PSEUDO_CLASS_NTH@95..99 @@ -4254,8 +4049,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@103..122 0: COLON@103..105 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@105..122 - 0: CSS_IDENTIFIER@105..114 - 0: IDENT@105..114 "nth-child" [] [] + 0: NTH_CHILD_KW@105..114 "nth-child" [] [] 1: L_PAREN@114..115 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@115..120 0: CSS_PSEUDO_CLASS_NTH@115..120 @@ -4282,8 +4076,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@124..143 0: COLON@124..126 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@126..143 - 0: CSS_IDENTIFIER@126..135 - 0: IDENT@126..135 "nth-child" [] [] + 0: NTH_CHILD_KW@126..135 "nth-child" [] [] 1: L_PAREN@135..136 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@136..141 0: CSS_PSEUDO_CLASS_NTH@136..141 @@ -4310,8 +4103,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@145..165 0: COLON@145..147 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@147..165 - 0: CSS_IDENTIFIER@147..156 - 0: IDENT@147..156 "nth-child" [] [] + 0: NTH_CHILD_KW@147..156 "nth-child" [] [] 1: L_PAREN@156..157 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@157..163 0: CSS_PSEUDO_CLASS_NTH@157..163 @@ -4338,8 +4130,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@167..186 0: COLON@167..169 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@169..186 - 0: CSS_IDENTIFIER@169..178 - 0: IDENT@169..178 "nth-child" [] [] + 0: NTH_CHILD_KW@169..178 "nth-child" [] [] 1: L_PAREN@178..179 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@179..184 0: CSS_PSEUDO_CLASS_NTH@179..184 @@ -4366,8 +4157,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@188..208 0: COLON@188..190 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@190..208 - 0: CSS_IDENTIFIER@190..199 - 0: IDENT@190..199 "nth-child" [] [] + 0: NTH_CHILD_KW@190..199 "nth-child" [] [] 1: L_PAREN@199..200 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@200..206 0: CSS_PSEUDO_CLASS_NTH@200..206 @@ -4394,8 +4184,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@210..231 0: COLON@210..212 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@212..231 - 0: CSS_IDENTIFIER@212..221 - 0: IDENT@212..221 "nth-child" [] [] + 0: NTH_CHILD_KW@212..221 "nth-child" [] [] 1: L_PAREN@221..222 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@222..229 0: CSS_PSEUDO_CLASS_NTH@222..229 @@ -4422,8 +4211,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@233..253 0: COLON@233..235 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@235..253 - 0: CSS_IDENTIFIER@235..244 - 0: IDENT@235..244 "nth-child" [] [] + 0: NTH_CHILD_KW@235..244 "nth-child" [] [] 1: L_PAREN@244..245 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@245..251 0: CSS_PSEUDO_CLASS_NTH@245..251 @@ -4450,8 +4238,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@255..274 0: COLON@255..257 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@257..274 - 0: CSS_IDENTIFIER@257..266 - 0: IDENT@257..266 "nth-child" [] [] + 0: NTH_CHILD_KW@257..266 "nth-child" [] [] 1: L_PAREN@266..267 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@267..272 0: CSS_PSEUDO_CLASS_NTH@267..272 @@ -4478,8 +4265,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@276..296 0: COLON@276..278 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@278..296 - 0: CSS_IDENTIFIER@278..287 - 0: IDENT@278..287 "nth-child" [] [] + 0: NTH_CHILD_KW@278..287 "nth-child" [] [] 1: L_PAREN@287..288 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@288..294 0: CSS_PSEUDO_CLASS_NTH@288..294 @@ -4506,8 +4292,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@298..319 0: COLON@298..300 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@300..319 - 0: CSS_IDENTIFIER@300..309 - 0: IDENT@300..309 "nth-child" [] [] + 0: NTH_CHILD_KW@300..309 "nth-child" [] [] 1: L_PAREN@309..310 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@310..317 0: CSS_PSEUDO_CLASS_NTH@310..317 @@ -4534,8 +4319,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@321..340 0: COLON@321..323 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@323..340 - 0: CSS_IDENTIFIER@323..332 - 0: IDENT@323..332 "nth-child" [] [] + 0: NTH_CHILD_KW@323..332 "nth-child" [] [] 1: L_PAREN@332..333 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@333..338 0: CSS_PSEUDO_CLASS_NTH@333..338 @@ -4562,8 +4346,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@342..362 0: COLON@342..344 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@344..362 - 0: CSS_IDENTIFIER@344..353 - 0: IDENT@344..353 "nth-child" [] [] + 0: NTH_CHILD_KW@344..353 "nth-child" [] [] 1: L_PAREN@353..354 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@354..360 0: CSS_PSEUDO_CLASS_NTH@354..360 @@ -4590,8 +4373,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@364..385 0: COLON@364..366 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@366..385 - 0: CSS_IDENTIFIER@366..375 - 0: IDENT@366..375 "nth-child" [] [] + 0: NTH_CHILD_KW@366..375 "nth-child" [] [] 1: L_PAREN@375..376 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@376..383 0: CSS_PSEUDO_CLASS_NTH@376..383 @@ -4618,8 +4400,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@387..407 0: COLON@387..389 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@389..407 - 0: CSS_IDENTIFIER@389..398 - 0: IDENT@389..398 "nth-child" [] [] + 0: NTH_CHILD_KW@389..398 "nth-child" [] [] 1: L_PAREN@398..399 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@399..405 0: CSS_PSEUDO_CLASS_NTH@399..405 @@ -4646,8 +4427,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@409..428 0: COLON@409..411 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@411..428 - 0: CSS_IDENTIFIER@411..420 - 0: IDENT@411..420 "nth-child" [] [] + 0: NTH_CHILD_KW@411..420 "nth-child" [] [] 1: L_PAREN@420..421 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@421..426 0: CSS_PSEUDO_CLASS_NTH@421..426 @@ -4674,8 +4454,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@430..450 0: COLON@430..432 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@432..450 - 0: CSS_IDENTIFIER@432..441 - 0: IDENT@432..441 "nth-child" [] [] + 0: NTH_CHILD_KW@432..441 "nth-child" [] [] 1: L_PAREN@441..442 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@442..448 0: CSS_PSEUDO_CLASS_NTH@442..448 @@ -4702,8 +4481,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@452..472 0: COLON@452..454 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@454..472 - 0: CSS_IDENTIFIER@454..463 - 0: IDENT@454..463 "nth-child" [] [] + 0: NTH_CHILD_KW@454..463 "nth-child" [] [] 1: L_PAREN@463..464 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@464..470 0: CSS_PSEUDO_CLASS_NTH@464..470 @@ -4730,8 +4508,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@474..495 0: COLON@474..476 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@476..495 - 0: CSS_IDENTIFIER@476..485 - 0: IDENT@476..485 "nth-child" [] [] + 0: NTH_CHILD_KW@476..485 "nth-child" [] [] 1: L_PAREN@485..486 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@486..493 0: CSS_PSEUDO_CLASS_NTH@486..493 @@ -4758,8 +4535,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@497..514 0: COLON@497..499 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@499..514 - 0: CSS_IDENTIFIER@499..508 - 0: IDENT@499..508 "nth-child" [] [] + 0: NTH_CHILD_KW@499..508 "nth-child" [] [] 1: L_PAREN@508..509 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@509..512 0: CSS_PSEUDO_CLASS_NTH@509..512 @@ -4785,8 +4561,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@516..534 0: COLON@516..518 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@518..534 - 0: CSS_IDENTIFIER@518..527 - 0: IDENT@518..527 "nth-child" [] [] + 0: NTH_CHILD_KW@518..527 "nth-child" [] [] 1: L_PAREN@527..528 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@528..532 0: CSS_PSEUDO_CLASS_NTH@528..532 @@ -4812,8 +4587,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@536..555 0: COLON@536..538 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@538..555 - 0: CSS_IDENTIFIER@538..547 - 0: IDENT@538..547 "nth-child" [] [] + 0: NTH_CHILD_KW@538..547 "nth-child" [] [] 1: L_PAREN@547..548 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@548..553 0: CSS_PSEUDO_CLASS_NTH@548..553 @@ -4839,8 +4613,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@557..575 0: COLON@557..559 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@559..575 - 0: CSS_IDENTIFIER@559..568 - 0: IDENT@559..568 "nth-child" [] [] + 0: NTH_CHILD_KW@559..568 "nth-child" [] [] 1: L_PAREN@568..569 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@569..573 0: CSS_PSEUDO_CLASS_NTH@569..573 @@ -4866,8 +4639,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@577..594 0: COLON@577..579 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@579..594 - 0: CSS_IDENTIFIER@579..588 - 0: IDENT@579..588 "nth-child" [] [] + 0: NTH_CHILD_KW@579..588 "nth-child" [] [] 1: L_PAREN@588..589 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@589..592 0: CSS_PSEUDO_CLASS_NTH@589..592 @@ -4893,8 +4665,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@596..614 0: COLON@596..598 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@598..614 - 0: CSS_IDENTIFIER@598..607 - 0: IDENT@598..607 "nth-child" [] [] + 0: NTH_CHILD_KW@598..607 "nth-child" [] [] 1: L_PAREN@607..608 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@608..612 0: CSS_PSEUDO_CLASS_NTH@608..612 @@ -4920,8 +4691,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@616..634 0: COLON@616..618 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@618..634 - 0: CSS_IDENTIFIER@618..627 - 0: IDENT@618..627 "nth-child" [] [] + 0: NTH_CHILD_KW@618..627 "nth-child" [] [] 1: L_PAREN@627..628 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@628..632 0: CSS_PSEUDO_CLASS_NTH@628..632 @@ -4947,8 +4717,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@636..655 0: COLON@636..638 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@638..655 - 0: CSS_IDENTIFIER@638..647 - 0: IDENT@638..647 "nth-child" [] [] + 0: NTH_CHILD_KW@638..647 "nth-child" [] [] 1: L_PAREN@647..648 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@648..653 0: CSS_PSEUDO_CLASS_NTH@648..653 @@ -4974,8 +4743,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@657..675 0: COLON@657..659 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@659..675 - 0: CSS_IDENTIFIER@659..668 - 0: IDENT@659..668 "nth-child" [] [] + 0: NTH_CHILD_KW@659..668 "nth-child" [] [] 1: L_PAREN@668..669 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@669..673 0: CSS_PSEUDO_CLASS_NTH@669..673 @@ -5001,8 +4769,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@677..696 0: COLON@677..679 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@679..696 - 0: CSS_IDENTIFIER@679..688 - 0: IDENT@679..688 "nth-child" [] [] + 0: NTH_CHILD_KW@679..688 "nth-child" [] [] 1: L_PAREN@688..689 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@689..694 0: CSS_PSEUDO_CLASS_NTH@689..694 @@ -5028,8 +4795,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@698..718 0: COLON@698..700 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@700..718 - 0: CSS_IDENTIFIER@700..709 - 0: IDENT@700..709 "nth-child" [] [] + 0: NTH_CHILD_KW@700..709 "nth-child" [] [] 1: L_PAREN@709..710 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@710..716 0: CSS_PSEUDO_CLASS_NTH@710..716 @@ -5055,8 +4821,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@720..739 0: COLON@720..722 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@722..739 - 0: CSS_IDENTIFIER@722..731 - 0: IDENT@722..731 "nth-child" [] [] + 0: NTH_CHILD_KW@722..731 "nth-child" [] [] 1: L_PAREN@731..732 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@732..737 0: CSS_PSEUDO_CLASS_NTH@732..737 @@ -5082,8 +4847,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@741..759 0: COLON@741..743 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@743..759 - 0: CSS_IDENTIFIER@743..752 - 0: IDENT@743..752 "nth-child" [] [] + 0: NTH_CHILD_KW@743..752 "nth-child" [] [] 1: L_PAREN@752..753 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@753..757 0: CSS_PSEUDO_CLASS_NTH@753..757 @@ -5109,8 +4873,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@761..780 0: COLON@761..763 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@763..780 - 0: CSS_IDENTIFIER@763..772 - 0: IDENT@763..772 "nth-child" [] [] + 0: NTH_CHILD_KW@763..772 "nth-child" [] [] 1: L_PAREN@772..773 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@773..778 0: CSS_PSEUDO_CLASS_NTH@773..778 @@ -5136,8 +4899,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@782..801 0: COLON@782..784 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@784..801 - 0: CSS_IDENTIFIER@784..793 - 0: IDENT@784..793 "nth-child" [] [] + 0: NTH_CHILD_KW@784..793 "nth-child" [] [] 1: L_PAREN@793..794 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@794..799 0: CSS_PSEUDO_CLASS_NTH@794..799 @@ -5163,8 +4925,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@803..823 0: COLON@803..805 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@805..823 - 0: CSS_IDENTIFIER@805..814 - 0: IDENT@805..814 "nth-child" [] [] + 0: NTH_CHILD_KW@805..814 "nth-child" [] [] 1: L_PAREN@814..815 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@815..821 0: CSS_PSEUDO_CLASS_NTH@815..821 @@ -5190,8 +4951,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@825..843 0: COLON@825..827 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@827..843 - 0: CSS_IDENTIFIER@827..836 - 0: IDENT@827..836 "nth-child" [] [] + 0: NTH_CHILD_KW@827..836 "nth-child" [] [] 1: L_PAREN@836..837 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@837..841 0: CSS_PSEUDO_CLASS_NTH@837..841 @@ -5217,8 +4977,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@845..864 0: COLON@845..847 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@847..864 - 0: CSS_IDENTIFIER@847..856 - 0: IDENT@847..856 "nth-child" [] [] + 0: NTH_CHILD_KW@847..856 "nth-child" [] [] 1: L_PAREN@856..857 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@857..862 0: CSS_PSEUDO_CLASS_NTH@857..862 @@ -5244,8 +5003,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@866..886 0: COLON@866..868 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@868..886 - 0: CSS_IDENTIFIER@868..877 - 0: IDENT@868..877 "nth-child" [] [] + 0: NTH_CHILD_KW@868..877 "nth-child" [] [] 1: L_PAREN@877..878 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@878..884 0: CSS_PSEUDO_CLASS_NTH@878..884 @@ -5271,8 +5029,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@888..907 0: COLON@888..890 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@890..907 - 0: CSS_IDENTIFIER@890..899 - 0: IDENT@890..899 "nth-child" [] [] + 0: NTH_CHILD_KW@890..899 "nth-child" [] [] 1: L_PAREN@899..900 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@900..905 0: CSS_PSEUDO_CLASS_NTH@900..905 @@ -5298,8 +5055,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@909..927 0: COLON@909..911 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@911..927 - 0: CSS_IDENTIFIER@911..920 - 0: IDENT@911..920 "nth-child" [] [] + 0: NTH_CHILD_KW@911..920 "nth-child" [] [] 1: L_PAREN@920..921 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@921..925 0: CSS_PSEUDO_CLASS_NTH@921..925 @@ -5325,8 +5081,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@929..948 0: COLON@929..931 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@931..948 - 0: CSS_IDENTIFIER@931..940 - 0: IDENT@931..940 "nth-child" [] [] + 0: NTH_CHILD_KW@931..940 "nth-child" [] [] 1: L_PAREN@940..941 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@941..946 0: CSS_PSEUDO_CLASS_NTH@941..946 @@ -5352,8 +5107,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@950..969 0: COLON@950..952 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@952..969 - 0: CSS_IDENTIFIER@952..961 - 0: IDENT@952..961 "nth-child" [] [] + 0: NTH_CHILD_KW@952..961 "nth-child" [] [] 1: L_PAREN@961..962 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@962..967 0: CSS_PSEUDO_CLASS_NTH@962..967 @@ -5379,8 +5133,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@971..991 0: COLON@971..973 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@973..991 - 0: CSS_IDENTIFIER@973..982 - 0: IDENT@973..982 "nth-child" [] [] + 0: NTH_CHILD_KW@973..982 "nth-child" [] [] 1: L_PAREN@982..983 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@983..989 0: CSS_PSEUDO_CLASS_NTH@983..989 @@ -5406,8 +5159,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@993..1008 0: COLON@993..995 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@995..1008 - 0: CSS_IDENTIFIER@995..1004 - 0: IDENT@995..1004 "nth-child" [] [] + 0: NTH_CHILD_KW@995..1004 "nth-child" [] [] 1: L_PAREN@1004..1005 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@1005..1006 0: CSS_PSEUDO_CLASS_NTH@1005..1006 @@ -5430,8 +5182,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@1010..1026 0: COLON@1010..1012 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@1012..1026 - 0: CSS_IDENTIFIER@1012..1021 - 0: IDENT@1012..1021 "nth-child" [] [] + 0: NTH_CHILD_KW@1012..1021 "nth-child" [] [] 1: L_PAREN@1021..1022 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@1022..1024 0: CSS_PSEUDO_CLASS_NTH@1022..1024 @@ -5454,8 +5205,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@1028..1044 0: COLON@1028..1030 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@1030..1044 - 0: CSS_IDENTIFIER@1030..1039 - 0: IDENT@1030..1039 "nth-child" [] [] + 0: NTH_CHILD_KW@1030..1039 "nth-child" [] [] 1: L_PAREN@1039..1040 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@1040..1042 0: CSS_PSEUDO_CLASS_NTH@1040..1042 @@ -5478,8 +5228,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@1046..1062 0: COLON@1046..1048 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@1048..1062 - 0: CSS_IDENTIFIER@1048..1057 - 0: IDENT@1048..1057 "nth-child" [] [] + 0: NTH_CHILD_KW@1048..1057 "nth-child" [] [] 1: L_PAREN@1057..1058 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@1058..1060 0: CSS_PSEUDO_CLASS_NTH@1058..1060 @@ -5503,8 +5252,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@1064..1081 0: COLON@1064..1066 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@1066..1081 - 0: CSS_IDENTIFIER@1066..1075 - 0: IDENT@1066..1075 "nth-child" [] [] + 0: NTH_CHILD_KW@1066..1075 "nth-child" [] [] 1: L_PAREN@1075..1076 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@1076..1079 0: CSS_PSEUDO_CLASS_NTH@1076..1079 @@ -5528,8 +5276,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@1083..1100 0: COLON@1083..1085 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@1085..1100 - 0: CSS_IDENTIFIER@1085..1094 - 0: IDENT@1085..1094 "nth-child" [] [] + 0: NTH_CHILD_KW@1085..1094 "nth-child" [] [] 1: L_PAREN@1094..1095 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@1095..1098 0: CSS_PSEUDO_CLASS_NTH@1095..1098 @@ -5553,8 +5300,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@1102..1117 0: COLON@1102..1104 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@1104..1117 - 0: CSS_IDENTIFIER@1104..1113 - 0: IDENT@1104..1113 "nth-child" [] [] + 0: NTH_CHILD_KW@1104..1113 "nth-child" [] [] 1: L_PAREN@1113..1114 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@1114..1115 0: CSS_PSEUDO_CLASS_NTH@1114..1115 @@ -5577,8 +5323,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@1119..1135 0: COLON@1119..1121 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@1121..1135 - 0: CSS_IDENTIFIER@1121..1130 - 0: IDENT@1121..1130 "nth-child" [] [] + 0: NTH_CHILD_KW@1121..1130 "nth-child" [] [] 1: L_PAREN@1130..1131 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@1131..1133 0: CSS_PSEUDO_CLASS_NTH@1131..1133 @@ -5601,8 +5346,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@1137..1153 0: COLON@1137..1139 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@1139..1153 - 0: CSS_IDENTIFIER@1139..1148 - 0: IDENT@1139..1148 "nth-child" [] [] + 0: NTH_CHILD_KW@1139..1148 "nth-child" [] [] 1: L_PAREN@1148..1149 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@1149..1151 0: CSS_PSEUDO_CLASS_NTH@1149..1151 @@ -5625,8 +5369,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@1155..1171 0: COLON@1155..1157 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@1157..1171 - 0: CSS_IDENTIFIER@1157..1166 - 0: IDENT@1157..1166 "nth-child" [] [] + 0: NTH_CHILD_KW@1157..1166 "nth-child" [] [] 1: L_PAREN@1166..1167 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@1167..1169 0: CSS_PSEUDO_CLASS_NTH@1167..1169 @@ -5650,8 +5393,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@1173..1190 0: COLON@1173..1175 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@1175..1190 - 0: CSS_IDENTIFIER@1175..1184 - 0: IDENT@1175..1184 "nth-child" [] [] + 0: NTH_CHILD_KW@1175..1184 "nth-child" [] [] 1: L_PAREN@1184..1185 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@1185..1188 0: CSS_PSEUDO_CLASS_NTH@1185..1188 @@ -5675,8 +5417,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@1192..1209 0: COLON@1192..1194 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@1194..1209 - 0: CSS_IDENTIFIER@1194..1203 - 0: IDENT@1194..1203 "nth-child" [] [] + 0: NTH_CHILD_KW@1194..1203 "nth-child" [] [] 1: L_PAREN@1203..1204 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@1204..1207 0: CSS_PSEUDO_CLASS_NTH@1204..1207 @@ -5700,8 +5441,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@1211..1226 0: COLON@1211..1213 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@1213..1226 - 0: CSS_IDENTIFIER@1213..1222 - 0: IDENT@1213..1222 "nth-child" [] [] + 0: NTH_CHILD_KW@1213..1222 "nth-child" [] [] 1: L_PAREN@1222..1223 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@1223..1224 0: CSS_PSEUDO_CLASS_NTH_NUMBER@1223..1224 @@ -5723,8 +5463,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@1228..1244 0: COLON@1228..1230 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@1230..1244 - 0: CSS_IDENTIFIER@1230..1239 - 0: IDENT@1230..1239 "nth-child" [] [] + 0: NTH_CHILD_KW@1230..1239 "nth-child" [] [] 1: L_PAREN@1239..1240 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@1240..1242 0: CSS_PSEUDO_CLASS_NTH_NUMBER@1240..1242 @@ -5746,8 +5485,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@1246..1262 0: COLON@1246..1248 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@1248..1262 - 0: CSS_IDENTIFIER@1248..1257 - 0: IDENT@1248..1257 "nth-child" [] [] + 0: NTH_CHILD_KW@1248..1257 "nth-child" [] [] 1: L_PAREN@1257..1258 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@1258..1260 0: CSS_PSEUDO_CLASS_NTH_NUMBER@1258..1260 @@ -5769,8 +5507,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@1264..1294 0: COLON@1264..1266 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@1266..1294 - 0: CSS_IDENTIFIER@1266..1275 - 0: IDENT@1266..1275 "nth-child" [] [] + 0: NTH_CHILD_KW@1266..1275 "nth-child" [] [] 1: L_PAREN@1275..1276 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@1276..1292 0: CSS_PSEUDO_CLASS_NTH@1276..1292 @@ -5797,8 +5534,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@1296..1315 0: COLON@1296..1299 ":" [Newline("\n"), Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@1299..1315 - 0: CSS_IDENTIFIER@1299..1308 - 0: IDENT@1299..1308 "Nth-Child" [] [] + 0: NTH_CHILD_KW@1299..1308 "Nth-Child" [] [] 1: L_PAREN@1308..1309 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@1309..1313 0: CSS_PSEUDO_CLASS_NTH@1309..1313 @@ -5825,8 +5561,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@1317..1335 0: COLON@1317..1319 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@1319..1335 - 0: CSS_IDENTIFIER@1319..1328 - 0: IDENT@1319..1328 "NTH-CHILD" [] [] + 0: NTH_CHILD_KW@1319..1328 "NTH-CHILD" [] [] 1: L_PAREN@1328..1329 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@1329..1333 0: CSS_PSEUDO_CLASS_NTH@1329..1333 @@ -5853,8 +5588,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@1337..1355 0: COLON@1337..1340 ":" [Newline("\n"), Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@1340..1355 - 0: CSS_IDENTIFIER@1340..1349 - 0: IDENT@1340..1349 "nth-child" [] [] + 0: NTH_CHILD_KW@1340..1349 "nth-child" [] [] 1: L_PAREN@1349..1350 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@1350..1353 0: CSS_PSEUDO_CLASS_NTH_IDENTIFIER@1350..1353 @@ -5874,8 +5608,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@1357..1374 0: COLON@1357..1359 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@1359..1374 - 0: CSS_IDENTIFIER@1359..1368 - 0: IDENT@1359..1368 "nth-child" [] [] + 0: NTH_CHILD_KW@1359..1368 "nth-child" [] [] 1: L_PAREN@1368..1369 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@1369..1372 0: CSS_PSEUDO_CLASS_NTH_IDENTIFIER@1369..1372 @@ -5895,8 +5628,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@1376..1393 0: COLON@1376..1378 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@1378..1393 - 0: CSS_IDENTIFIER@1378..1387 - 0: IDENT@1378..1387 "nth-child" [] [] + 0: NTH_CHILD_KW@1378..1387 "nth-child" [] [] 1: L_PAREN@1387..1388 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@1388..1391 0: CSS_PSEUDO_CLASS_NTH_IDENTIFIER@1388..1391 @@ -5916,8 +5648,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@1395..1413 0: COLON@1395..1397 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@1397..1413 - 0: CSS_IDENTIFIER@1397..1406 - 0: IDENT@1397..1406 "nth-child" [] [] + 0: NTH_CHILD_KW@1397..1406 "nth-child" [] [] 1: L_PAREN@1406..1407 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@1407..1411 0: CSS_PSEUDO_CLASS_NTH_IDENTIFIER@1407..1411 @@ -5937,8 +5668,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@1415..1433 0: COLON@1415..1417 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@1417..1433 - 0: CSS_IDENTIFIER@1417..1426 - 0: IDENT@1417..1426 "nth-child" [] [] + 0: NTH_CHILD_KW@1417..1426 "nth-child" [] [] 1: L_PAREN@1426..1427 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@1427..1431 0: CSS_PSEUDO_CLASS_NTH_IDENTIFIER@1427..1431 @@ -5958,8 +5688,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@1435..1453 0: COLON@1435..1437 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@1437..1453 - 0: CSS_IDENTIFIER@1437..1446 - 0: IDENT@1437..1446 "nth-child" [] [] + 0: NTH_CHILD_KW@1437..1446 "nth-child" [] [] 1: L_PAREN@1446..1447 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@1447..1451 0: CSS_PSEUDO_CLASS_NTH_IDENTIFIER@1447..1451 @@ -5979,8 +5708,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@1455..1506 0: COLON@1455..1458 ":" [Newline("\n"), Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@1458..1506 - 0: CSS_IDENTIFIER@1458..1467 - 0: IDENT@1458..1467 "nth-child" [] [] + 0: NTH_CHILD_KW@1458..1467 "nth-child" [] [] 1: L_PAREN@1467..1476 "(" [] [Comments("/*test*/")] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@1476..1504 0: CSS_PSEUDO_CLASS_NTH@1476..1504 @@ -6007,8 +5735,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@1508..1564 0: COLON@1508..1510 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@1510..1564 - 0: CSS_IDENTIFIER@1510..1524 - 0: IDENT@1510..1524 "nth-last-child" [] [] + 0: NTH_LAST_CHILD_KW@1510..1524 "nth-last-child" [] [] 1: L_PAREN@1524..1533 "(" [] [Comments("/*test*/")] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@1533..1562 0: CSS_PSEUDO_CLASS_NTH@1533..1562 @@ -6035,8 +5762,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@1566..1593 0: COLON@1566..1569 ":" [Newline("\n"), Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@1569..1593 - 0: CSS_IDENTIFIER@1569..1578 - 0: IDENT@1569..1578 "nth-child" [] [] + 0: NTH_CHILD_KW@1569..1578 "nth-child" [] [] 1: L_PAREN@1578..1581 "(" [] [Whitespace(" ")] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@1581..1591 0: CSS_PSEUDO_CLASS_NTH@1581..1591 @@ -6063,8 +5789,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@1595..1627 0: COLON@1595..1597 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@1597..1627 - 0: CSS_IDENTIFIER@1597..1611 - 0: IDENT@1597..1611 "nth-last-child" [] [] + 0: NTH_LAST_CHILD_KW@1597..1611 "nth-last-child" [] [] 1: L_PAREN@1611..1614 "(" [] [Whitespace(" ")] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@1614..1625 0: CSS_PSEUDO_CLASS_NTH@1614..1625 @@ -6091,8 +5816,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@1629..1649 0: COLON@1629..1632 ":" [Newline("\n"), Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@1632..1649 - 0: CSS_IDENTIFIER@1632..1641 - 0: IDENT@1632..1641 "nth-child" [] [] + 0: NTH_CHILD_KW@1632..1641 "nth-child" [] [] 1: L_PAREN@1641..1642 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@1642..1647 0: CSS_PSEUDO_CLASS_NTH@1642..1647 @@ -6119,8 +5843,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@1651..1674 0: COLON@1651..1653 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@1653..1674 - 0: CSS_IDENTIFIER@1653..1667 - 0: IDENT@1653..1667 "nth-last-child" [] [] + 0: NTH_LAST_CHILD_KW@1653..1667 "nth-last-child" [] [] 1: L_PAREN@1667..1668 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@1668..1672 0: CSS_PSEUDO_CLASS_NTH@1668..1672 @@ -6147,8 +5870,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@1676..1696 0: COLON@1676..1678 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@1678..1696 - 0: CSS_IDENTIFIER@1678..1689 - 0: IDENT@1678..1689 "nth-of-type" [] [] + 0: NTH_OF_TYPE_KW@1678..1689 "nth-of-type" [] [] 1: L_PAREN@1689..1690 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@1690..1694 0: CSS_PSEUDO_CLASS_NTH@1690..1694 @@ -6175,8 +5897,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@1698..1723 0: COLON@1698..1700 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@1700..1723 - 0: CSS_IDENTIFIER@1700..1716 - 0: IDENT@1700..1716 "nth-last-of-type" [] [] + 0: NTH_LAST_OF_TYPE_KW@1700..1716 "nth-last-of-type" [] [] 1: L_PAREN@1716..1717 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@1717..1721 0: CSS_PSEUDO_CLASS_NTH@1717..1721 @@ -6203,8 +5924,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@1725..1741 0: COLON@1725..1728 ":" [Newline("\n"), Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@1728..1741 - 0: CSS_IDENTIFIER@1728..1735 - 0: IDENT@1728..1735 "nth-col" [] [] + 0: NTH_COL_KW@1728..1735 "nth-col" [] [] 1: L_PAREN@1735..1736 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@1736..1739 0: CSS_PSEUDO_CLASS_NTH_IDENTIFIER@1736..1739 @@ -6224,8 +5944,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@1743..1759 0: COLON@1743..1745 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@1745..1759 - 0: CSS_IDENTIFIER@1745..1752 - 0: IDENT@1745..1752 "nth-col" [] [] + 0: NTH_COL_KW@1745..1752 "nth-col" [] [] 1: L_PAREN@1752..1753 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@1753..1757 0: CSS_PSEUDO_CLASS_NTH@1753..1757 @@ -6252,8 +5971,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@1761..1781 0: COLON@1761..1763 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@1763..1781 - 0: CSS_IDENTIFIER@1763..1775 - 0: IDENT@1763..1775 "nth-last-col" [] [] + 0: NTH_LAST_COL_KW@1763..1775 "nth-last-col" [] [] 1: L_PAREN@1775..1776 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@1776..1779 0: CSS_PSEUDO_CLASS_NTH_IDENTIFIER@1776..1779 @@ -6273,8 +5991,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@1783..1804 0: COLON@1783..1785 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@1785..1804 - 0: CSS_IDENTIFIER@1785..1797 - 0: IDENT@1785..1797 "nth-last-col" [] [] + 0: NTH_LAST_COL_KW@1785..1797 "nth-last-col" [] [] 1: L_PAREN@1797..1798 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@1798..1802 0: CSS_PSEUDO_CLASS_NTH@1798..1802 @@ -6304,8 +6021,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@1810..1823 0: COLON@1810..1811 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@1811..1823 - 0: CSS_IDENTIFIER@1811..1820 - 0: IDENT@1811..1820 "nth-child" [] [] + 0: NTH_CHILD_KW@1811..1820 "nth-child" [] [] 1: L_PAREN@1820..1821 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@1821..1822 0: CSS_PSEUDO_CLASS_NTH_NUMBER@1821..1822 @@ -6330,8 +6046,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@1827..1841 0: COLON@1827..1828 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@1828..1841 - 0: CSS_IDENTIFIER@1828..1837 - 0: IDENT@1828..1837 "nth-child" [] [] + 0: NTH_CHILD_KW@1828..1837 "nth-child" [] [] 1: L_PAREN@1837..1838 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@1838..1840 0: CSS_PSEUDO_CLASS_NTH_NUMBER@1838..1840 @@ -6356,8 +6071,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@1845..1859 0: COLON@1845..1846 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@1846..1859 - 0: CSS_IDENTIFIER@1846..1855 - 0: IDENT@1846..1855 "nth-child" [] [] + 0: NTH_CHILD_KW@1846..1855 "nth-child" [] [] 1: L_PAREN@1855..1856 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@1856..1858 0: CSS_PSEUDO_CLASS_NTH_NUMBER@1856..1858 @@ -6382,8 +6096,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@1863..1876 0: COLON@1863..1864 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@1864..1876 - 0: CSS_IDENTIFIER@1864..1873 - 0: IDENT@1864..1873 "nth-child" [] [] + 0: NTH_CHILD_KW@1864..1873 "nth-child" [] [] 1: L_PAREN@1873..1874 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@1874..1875 0: CSS_PSEUDO_CLASS_NTH_NUMBER@1874..1875 @@ -6408,8 +6121,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@1880..1894 0: COLON@1880..1881 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@1881..1894 - 0: CSS_IDENTIFIER@1881..1890 - 0: IDENT@1881..1890 "nth-child" [] [] + 0: NTH_CHILD_KW@1881..1890 "nth-child" [] [] 1: L_PAREN@1890..1891 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@1891..1893 0: CSS_PSEUDO_CLASS_NTH_NUMBER@1891..1893 @@ -6434,8 +6146,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@1898..1912 0: COLON@1898..1899 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@1899..1912 - 0: CSS_IDENTIFIER@1899..1908 - 0: IDENT@1899..1908 "nth-child" [] [] + 0: NTH_CHILD_KW@1899..1908 "nth-child" [] [] 1: L_PAREN@1908..1909 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@1909..1911 0: CSS_PSEUDO_CLASS_NTH_NUMBER@1909..1911 @@ -6460,8 +6171,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@1916..1929 0: COLON@1916..1917 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@1917..1929 - 0: CSS_IDENTIFIER@1917..1926 - 0: IDENT@1917..1926 "nth-child" [] [] + 0: NTH_CHILD_KW@1917..1926 "nth-child" [] [] 1: L_PAREN@1926..1927 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@1927..1928 0: CSS_PSEUDO_CLASS_NTH_NUMBER@1927..1928 @@ -6486,8 +6196,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@1933..1947 0: COLON@1933..1934 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@1934..1947 - 0: CSS_IDENTIFIER@1934..1943 - 0: IDENT@1934..1943 "nth-child" [] [] + 0: NTH_CHILD_KW@1934..1943 "nth-child" [] [] 1: L_PAREN@1943..1944 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@1944..1946 0: CSS_PSEUDO_CLASS_NTH_NUMBER@1944..1946 @@ -6512,8 +6221,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@1951..1965 0: COLON@1951..1952 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@1952..1965 - 0: CSS_IDENTIFIER@1952..1961 - 0: IDENT@1952..1961 "nth-child" [] [] + 0: NTH_CHILD_KW@1952..1961 "nth-child" [] [] 1: L_PAREN@1961..1962 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@1962..1964 0: CSS_PSEUDO_CLASS_NTH_NUMBER@1962..1964 @@ -6535,8 +6243,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@1967..1992 0: COLON@1967..1970 ":" [Newline("\n"), Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@1970..1992 - 0: CSS_IDENTIFIER@1970..1979 - 0: IDENT@1970..1979 "nth-child" [] [] + 0: NTH_CHILD_KW@1970..1979 "nth-child" [] [] 1: L_PAREN@1979..1980 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@1980..1990 0: CSS_PSEUDO_CLASS_NTH@1980..1985 @@ -6572,8 +6279,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@1994..2024 0: COLON@1994..1996 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@1996..2024 - 0: CSS_IDENTIFIER@1996..2005 - 0: IDENT@1996..2005 "nth-child" [] [] + 0: NTH_CHILD_KW@1996..2005 "nth-child" [] [] 1: L_PAREN@2005..2009 "(" [] [Whitespace(" ")] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@2009..2022 0: CSS_PSEUDO_CLASS_NTH@2009..2014 @@ -6609,8 +6315,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@2026..2056 0: COLON@2026..2028 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@2028..2056 - 0: CSS_IDENTIFIER@2028..2037 - 0: IDENT@2028..2037 "nth-child" [] [] + 0: NTH_CHILD_KW@2028..2037 "nth-child" [] [] 1: L_PAREN@2037..2038 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@2038..2054 0: CSS_PSEUDO_CLASS_NTH@2038..2043 @@ -6655,8 +6360,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@2058..2089 0: COLON@2058..2060 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@2060..2089 - 0: CSS_IDENTIFIER@2060..2069 - 0: IDENT@2060..2069 "nth-child" [] [] + 0: NTH_CHILD_KW@2060..2069 "nth-child" [] [] 1: L_PAREN@2069..2070 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@2070..2087 0: CSS_PSEUDO_CLASS_NTH@2070..2075 @@ -6701,8 +6405,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@2091..2125 0: COLON@2091..2093 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@2093..2125 - 0: CSS_IDENTIFIER@2093..2102 - 0: IDENT@2093..2102 "nth-child" [] [] + 0: NTH_CHILD_KW@2093..2102 "nth-child" [] [] 1: L_PAREN@2102..2103 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@2103..2123 0: CSS_PSEUDO_CLASS_NTH@2103..2108 @@ -6744,8 +6447,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@2130..2165 0: COLON@2130..2131 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@2131..2165 - 0: CSS_IDENTIFIER@2131..2140 - 0: IDENT@2131..2140 "nth-child" [] [] + 0: NTH_CHILD_KW@2131..2140 "nth-child" [] [] 1: L_PAREN@2140..2141 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@2141..2163 0: CSS_PSEUDO_CLASS_NTH_IDENTIFIER@2141..2146 @@ -6760,8 +6462,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@2149..2163 0: COLON@2149..2150 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@2150..2163 - 0: CSS_IDENTIFIER@2150..2153 - 0: IDENT@2150..2153 "not" [] [] + 0: NOT_KW@2150..2153 "not" [] [] 1: L_PAREN@2153..2154 "(" [] [] 2: CSS_SELECTOR_LIST@2154..2162 0: CSS_COMPOUND_SELECTOR@2154..2162 @@ -6792,8 +6493,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@2167..2184 0: COLON@2167..2169 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@2169..2184 - 0: CSS_IDENTIFIER@2169..2178 - 0: IDENT@2169..2178 "nth-child" [] [] + 0: NTH_CHILD_KW@2169..2178 "nth-child" [] [] 1: L_PAREN@2178..2179 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@2179..2183 0: CSS_PSEUDO_CLASS_NTH@2179..2183 diff --git a/crates/biome_css_parser/tests/css_test_suite/ok/selector/pseudo_class/pseudo_class_any.css.snap b/crates/biome_css_parser/tests/css_test_suite/ok/selector/pseudo_class/pseudo_class_any.css.snap index ee63211a3734..cd8813d8b216 100644 --- a/crates/biome_css_parser/tests/css_test_suite/ok/selector/pseudo_class/pseudo_class_any.css.snap +++ b/crates/biome_css_parser/tests/css_test_suite/ok/selector/pseudo_class/pseudo_class_any.css.snap @@ -43,9 +43,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@0..1 ":" [] [], class: CssPseudoClassFunctionCompoundSelectorList { - name: CssIdentifier { - value_token: IDENT@1..12 "-webkit-any" [] [], - }, + name: _WEBKIT_ANY_KW@1..12 "-webkit-any" [] [], l_paren_token: L_PAREN@12..13 "(" [] [], compound_selector_list: CssCompoundSelectorList [ CssCompoundSelector { @@ -80,9 +78,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@25..27 ":" [Newline("\n")] [], class: CssPseudoClassFunctionCompoundSelectorList { - name: CssIdentifier { - value_token: IDENT@27..35 "-moz-any" [] [], - }, + name: _MOZ_ANY_KW@27..35 "-moz-any" [] [], l_paren_token: L_PAREN@35..36 "(" [] [], compound_selector_list: CssCompoundSelectorList [ CssCompoundSelector { @@ -118,9 +114,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@48..50 ":" [Newline("\n")] [], class: CssPseudoClassFunctionCompoundSelectorList { - name: CssIdentifier { - value_token: IDENT@50..61 "-webkit-any" [] [], - }, + name: _WEBKIT_ANY_KW@50..61 "-webkit-any" [] [], l_paren_token: L_PAREN@61..62 "(" [] [], compound_selector_list: CssCompoundSelectorList [ CssCompoundSelector { @@ -199,9 +193,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@94..96 ":" [Newline("\n")] [], class: CssPseudoClassFunctionCompoundSelectorList { - name: CssIdentifier { - value_token: IDENT@96..104 "-moz-any" [] [], - }, + name: _MOZ_ANY_KW@96..104 "-moz-any" [] [], l_paren_token: L_PAREN@104..105 "(" [] [], compound_selector_list: CssCompoundSelectorList [ CssCompoundSelector { @@ -279,9 +271,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@137..139 ":" [Newline("\n")] [], class: CssPseudoClassFunctionCompoundSelectorList { - name: CssIdentifier { - value_token: IDENT@139..150 "-webkit-any" [] [], - }, + name: _WEBKIT_ANY_KW@139..150 "-webkit-any" [] [], l_paren_token: L_PAREN@150..151 "(" [] [], compound_selector_list: CssCompoundSelectorList [ CssCompoundSelector { @@ -329,9 +319,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@167..169 ":" [Newline("\n")] [], class: CssPseudoClassFunctionCompoundSelectorList { - name: CssIdentifier { - value_token: IDENT@169..177 "-moz-any" [] [], - }, + name: _MOZ_ANY_KW@169..177 "-moz-any" [] [], l_paren_token: L_PAREN@177..178 "(" [] [], compound_selector_list: CssCompoundSelectorList [ CssCompoundSelector { @@ -379,9 +367,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@194..196 ":" [Newline("\n")] [], class: CssPseudoClassFunctionCompoundSelectorList { - name: CssIdentifier { - value_token: IDENT@196..207 "-webkit-any" [] [], - }, + name: _WEBKIT_ANY_KW@196..207 "-webkit-any" [] [], l_paren_token: L_PAREN@207..208 "(" [] [], compound_selector_list: CssCompoundSelectorList [ CssCompoundSelector { @@ -442,9 +428,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@232..234 ":" [Newline("\n")] [], class: CssPseudoClassFunctionCompoundSelectorList { - name: CssIdentifier { - value_token: IDENT@234..242 "-moz-any" [] [], - }, + name: _MOZ_ANY_KW@234..242 "-moz-any" [] [], l_paren_token: L_PAREN@242..243 "(" [] [], compound_selector_list: CssCompoundSelectorList [ CssCompoundSelector { @@ -505,9 +489,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@267..269 ":" [Newline("\n")] [], class: CssPseudoClassFunctionCompoundSelectorList { - name: CssIdentifier { - value_token: IDENT@269..280 "-webkit-any" [] [], - }, + name: _WEBKIT_ANY_KW@269..280 "-webkit-any" [] [], l_paren_token: L_PAREN@280..281 "(" [] [], compound_selector_list: CssCompoundSelectorList [ CssCompoundSelector { @@ -534,9 +516,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@285..287 ":" [Newline("\n")] [], class: CssPseudoClassFunctionCompoundSelectorList { - name: CssIdentifier { - value_token: IDENT@287..298 "-webkit-any" [] [], - }, + name: _WEBKIT_ANY_KW@287..298 "-webkit-any" [] [], l_paren_token: L_PAREN@298..300 "(" [] [Whitespace(" ")], compound_selector_list: CssCompoundSelectorList [ CssCompoundSelector { @@ -576,9 +556,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@311..313 ":" [Newline("\n")] [], class: CssPseudoClassFunctionCompoundSelectorList { - name: CssIdentifier { - value_token: IDENT@313..324 "-webkit-any" [] [], - }, + name: _WEBKIT_ANY_KW@313..324 "-webkit-any" [] [], l_paren_token: L_PAREN@324..325 "(" [] [], compound_selector_list: CssCompoundSelectorList [ CssCompoundSelector { @@ -620,9 +598,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@337..339 ":" [Newline("\n")] [], class: CssPseudoClassFunctionCompoundSelectorList { - name: CssIdentifier { - value_token: IDENT@339..350 "-webkit-any" [] [], - }, + name: _WEBKIT_ANY_KW@339..350 "-webkit-any" [] [], l_paren_token: L_PAREN@350..351 "(" [] [], compound_selector_list: CssCompoundSelectorList [ CssCompoundSelector { @@ -717,9 +693,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@394..395 ":" [] [], class: CssPseudoClassFunctionCompoundSelectorList { - name: CssIdentifier { - value_token: IDENT@395..406 "-webkit-any" [] [], - }, + name: _WEBKIT_ANY_KW@395..406 "-webkit-any" [] [], l_paren_token: L_PAREN@406..407 "(" [] [], compound_selector_list: CssCompoundSelectorList [ CssCompoundSelector { @@ -751,9 +725,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@420..422 ":" [Newline("\n")] [], class: CssPseudoClassFunctionCompoundSelectorList { - name: CssIdentifier { - value_token: IDENT@422..433 "-webkit-any" [] [], - }, + name: _WEBKIT_ANY_KW@422..433 "-webkit-any" [] [], l_paren_token: L_PAREN@433..434 "(" [] [], compound_selector_list: CssCompoundSelectorList [ CssCompoundSelector { @@ -806,9 +778,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@463..464 ":" [] [], class: CssPseudoClassFunctionCompoundSelectorList { - name: CssIdentifier { - value_token: IDENT@464..475 "-webkit-any" [] [], - }, + name: _WEBKIT_ANY_KW@464..475 "-webkit-any" [] [], l_paren_token: L_PAREN@475..476 "(" [] [], compound_selector_list: CssCompoundSelectorList [ CssCompoundSelector { @@ -860,9 +830,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@494..495 ":" [] [], class: CssPseudoClassFunctionCompoundSelectorList { - name: CssIdentifier { - value_token: IDENT@495..506 "-webkit-any" [] [], - }, + name: _WEBKIT_ANY_KW@495..506 "-webkit-any" [] [], l_paren_token: L_PAREN@506..507 "(" [] [], compound_selector_list: CssCompoundSelectorList [ CssCompoundSelector { @@ -913,9 +881,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@525..527 ":" [Newline("\n")] [], class: CssPseudoClassFunctionCompoundSelectorList { - name: CssIdentifier { - value_token: IDENT@527..535 "-moz-any" [] [], - }, + name: _MOZ_ANY_KW@527..535 "-moz-any" [] [], l_paren_token: L_PAREN@535..536 "(" [] [], compound_selector_list: CssCompoundSelectorList [ CssCompoundSelector { @@ -975,8 +941,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@0..23 0: COLON@0..1 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_COMPOUND_SELECTOR_LIST@1..23 - 0: CSS_IDENTIFIER@1..12 - 0: IDENT@1..12 "-webkit-any" [] [] + 0: _WEBKIT_ANY_KW@1..12 "-webkit-any" [] [] 1: L_PAREN@12..13 "(" [] [] 2: CSS_COMPOUND_SELECTOR_LIST@13..21 0: CSS_COMPOUND_SELECTOR@13..21 @@ -1000,8 +965,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@25..46 0: COLON@25..27 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_COMPOUND_SELECTOR_LIST@27..46 - 0: CSS_IDENTIFIER@27..35 - 0: IDENT@27..35 "-moz-any" [] [] + 0: _MOZ_ANY_KW@27..35 "-moz-any" [] [] 1: L_PAREN@35..36 "(" [] [] 2: CSS_COMPOUND_SELECTOR_LIST@36..44 0: CSS_COMPOUND_SELECTOR@36..44 @@ -1026,8 +990,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@48..83 0: COLON@48..50 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_COMPOUND_SELECTOR_LIST@50..83 - 0: CSS_IDENTIFIER@50..61 - 0: IDENT@50..61 "-webkit-any" [] [] + 0: _WEBKIT_ANY_KW@50..61 "-webkit-any" [] [] 1: L_PAREN@61..62 "(" [] [] 2: CSS_COMPOUND_SELECTOR_LIST@62..82 0: CSS_COMPOUND_SELECTOR@62..68 @@ -1081,8 +1044,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@94..126 0: COLON@94..96 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_COMPOUND_SELECTOR_LIST@96..126 - 0: CSS_IDENTIFIER@96..104 - 0: IDENT@96..104 "-moz-any" [] [] + 0: _MOZ_ANY_KW@96..104 "-moz-any" [] [] 1: L_PAREN@104..105 "(" [] [] 2: CSS_COMPOUND_SELECTOR_LIST@105..125 0: CSS_COMPOUND_SELECTOR@105..111 @@ -1135,8 +1097,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@137..165 0: COLON@137..139 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_COMPOUND_SELECTOR_LIST@139..165 - 0: CSS_IDENTIFIER@139..150 - 0: IDENT@139..150 "-webkit-any" [] [] + 0: _WEBKIT_ANY_KW@139..150 "-webkit-any" [] [] 1: L_PAREN@150..151 "(" [] [] 2: CSS_COMPOUND_SELECTOR_LIST@151..163 0: CSS_COMPOUND_SELECTOR@151..163 @@ -1169,8 +1130,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@167..192 0: COLON@167..169 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_COMPOUND_SELECTOR_LIST@169..192 - 0: CSS_IDENTIFIER@169..177 - 0: IDENT@169..177 "-moz-any" [] [] + 0: _MOZ_ANY_KW@169..177 "-moz-any" [] [] 1: L_PAREN@177..178 "(" [] [] 2: CSS_COMPOUND_SELECTOR_LIST@178..190 0: CSS_COMPOUND_SELECTOR@178..190 @@ -1203,8 +1163,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@194..230 0: COLON@194..196 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_COMPOUND_SELECTOR_LIST@196..230 - 0: CSS_IDENTIFIER@196..207 - 0: IDENT@196..207 "-webkit-any" [] [] + 0: _WEBKIT_ANY_KW@196..207 "-webkit-any" [] [] 1: L_PAREN@207..208 "(" [] [] 2: CSS_COMPOUND_SELECTOR_LIST@208..228 0: CSS_COMPOUND_SELECTOR@208..220 @@ -1246,8 +1205,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@232..265 0: COLON@232..234 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_COMPOUND_SELECTOR_LIST@234..265 - 0: CSS_IDENTIFIER@234..242 - 0: IDENT@234..242 "-moz-any" [] [] + 0: _MOZ_ANY_KW@234..242 "-moz-any" [] [] 1: L_PAREN@242..243 "(" [] [] 2: CSS_COMPOUND_SELECTOR_LIST@243..263 0: CSS_COMPOUND_SELECTOR@243..255 @@ -1289,8 +1247,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@267..284 0: COLON@267..269 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_COMPOUND_SELECTOR_LIST@269..284 - 0: CSS_IDENTIFIER@269..280 - 0: IDENT@269..280 "-webkit-any" [] [] + 0: _WEBKIT_ANY_KW@269..280 "-webkit-any" [] [] 1: L_PAREN@280..281 "(" [] [] 2: CSS_COMPOUND_SELECTOR_LIST@281..283 0: CSS_COMPOUND_SELECTOR@281..283 @@ -1309,8 +1266,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@285..310 0: COLON@285..287 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_COMPOUND_SELECTOR_LIST@287..310 - 0: CSS_IDENTIFIER@287..298 - 0: IDENT@287..298 "-webkit-any" [] [] + 0: _WEBKIT_ANY_KW@287..298 "-webkit-any" [] [] 1: L_PAREN@298..300 "(" [] [Whitespace(" ")] 2: CSS_COMPOUND_SELECTOR_LIST@300..309 0: CSS_COMPOUND_SELECTOR@300..305 @@ -1338,8 +1294,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@311..336 0: COLON@311..313 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_COMPOUND_SELECTOR_LIST@313..336 - 0: CSS_IDENTIFIER@313..324 - 0: IDENT@313..324 "-webkit-any" [] [] + 0: _WEBKIT_ANY_KW@313..324 "-webkit-any" [] [] 1: L_PAREN@324..325 "(" [] [] 2: CSS_COMPOUND_SELECTOR_LIST@325..335 0: CSS_COMPOUND_SELECTOR@325..329 @@ -1368,8 +1323,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@337..373 0: COLON@337..339 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_COMPOUND_SELECTOR_LIST@339..373 - 0: CSS_IDENTIFIER@339..350 - 0: IDENT@339..350 "-webkit-any" [] [] + 0: _WEBKIT_ANY_KW@339..350 "-webkit-any" [] [] 1: L_PAREN@350..351 "(" [] [] 2: CSS_COMPOUND_SELECTOR_LIST@351..371 0: CSS_COMPOUND_SELECTOR@351..352 @@ -1434,8 +1388,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@394..419 0: COLON@394..395 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_COMPOUND_SELECTOR_LIST@395..419 - 0: CSS_IDENTIFIER@395..406 - 0: IDENT@395..406 "-webkit-any" [] [] + 0: _WEBKIT_ANY_KW@395..406 "-webkit-any" [] [] 1: L_PAREN@406..407 "(" [] [] 2: CSS_COMPOUND_SELECTOR_LIST@407..418 0: CSS_COMPOUND_SELECTOR@407..418 @@ -1456,8 +1409,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@420..446 0: COLON@420..422 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_COMPOUND_SELECTOR_LIST@422..446 - 0: CSS_IDENTIFIER@422..433 - 0: IDENT@422..433 "-webkit-any" [] [] + 0: _WEBKIT_ANY_KW@422..433 "-webkit-any" [] [] 1: L_PAREN@433..434 "(" [] [] 2: CSS_COMPOUND_SELECTOR_LIST@434..445 0: CSS_COMPOUND_SELECTOR@434..445 @@ -1493,8 +1445,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@463..490 0: COLON@463..464 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_COMPOUND_SELECTOR_LIST@464..490 - 0: CSS_IDENTIFIER@464..475 - 0: IDENT@464..475 "-webkit-any" [] [] + 0: _WEBKIT_ANY_KW@464..475 "-webkit-any" [] [] 1: L_PAREN@475..476 "(" [] [] 2: CSS_COMPOUND_SELECTOR_LIST@476..489 0: CSS_COMPOUND_SELECTOR@476..481 @@ -1528,8 +1479,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@494..523 0: COLON@494..495 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_COMPOUND_SELECTOR_LIST@495..523 - 0: CSS_IDENTIFIER@495..506 - 0: IDENT@495..506 "-webkit-any" [] [] + 0: _WEBKIT_ANY_KW@495..506 "-webkit-any" [] [] 1: L_PAREN@506..507 "(" [] [] 2: CSS_COMPOUND_SELECTOR_LIST@507..521 0: CSS_COMPOUND_SELECTOR@507..515 @@ -1564,8 +1514,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@525..545 0: COLON@525..527 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_COMPOUND_SELECTOR_LIST@527..545 - 0: CSS_IDENTIFIER@527..535 - 0: IDENT@527..535 "-moz-any" [] [] + 0: _MOZ_ANY_KW@527..535 "-moz-any" [] [] 1: L_PAREN@535..536 "(" [] [] 2: CSS_COMPOUND_SELECTOR_LIST@536..544 0: CSS_COMPOUND_SELECTOR@536..544 diff --git a/crates/biome_css_parser/tests/css_test_suite/ok/selector/pseudo_class/pseudo_class_basic.css.snap b/crates/biome_css_parser/tests/css_test_suite/ok/selector/pseudo_class/pseudo_class_basic.css.snap index 39d669cb8769..5cb1c8b22342 100644 --- a/crates/biome_css_parser/tests/css_test_suite/ok/selector/pseudo_class/pseudo_class_basic.css.snap +++ b/crates/biome_css_parser/tests/css_test_suite/ok/selector/pseudo_class/pseudo_class_basic.css.snap @@ -185,9 +185,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@77..79 ":" [Newline("\n")] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@79..86 "matches" [] [], - }, + name: MATCHES_KW@79..86 "matches" [] [], l_paren_token: L_PAREN@86..87 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -272,9 +270,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@128..129 ":" [] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@129..132 "not" [] [], - }, + name: NOT_KW@129..132 "not" [] [], l_paren_token: L_PAREN@132..133 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -335,9 +331,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@164..165 ":" [] [], class: CssPseudoClassFunctionRelativeSelectorList { - name: CssIdentifier { - value_token: IDENT@165..168 "has" [] [], - }, + name_token: HAS_KW@165..168 "has" [] [], l_paren_token: L_PAREN@168..169 "(" [] [], relative_selector_list: CssRelativeSelectorList [ CssRelativeSelector { @@ -352,9 +346,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@170..171 ":" [] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@171..180 "nth-child" [] [], - }, + name: NTH_CHILD_KW@171..180 "nth-child" [] [], l_paren_token: L_PAREN@180..181 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNthNumber { @@ -378,9 +370,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@184..185 ":" [] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@185..188 "not" [] [], - }, + name: NOT_KW@185..188 "not" [] [], l_paren_token: L_PAREN@188..189 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -390,9 +380,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@189..190 ":" [] [], class: CssPseudoClassFunctionRelativeSelectorList { - name: CssIdentifier { - value_token: IDENT@190..193 "has" [] [], - }, + name_token: HAS_KW@190..193 "has" [] [], l_paren_token: L_PAREN@193..194 "(" [] [], relative_selector_list: CssRelativeSelectorList [ CssRelativeSelector { @@ -407,9 +395,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@195..196 ":" [] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@196..205 "nth-child" [] [], - }, + name: NTH_CHILD_KW@196..205 "nth-child" [] [], l_paren_token: L_PAREN@205..206 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNthNumber { @@ -572,9 +558,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@367..368 ":" [] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@368..370 "is" [] [], - }, + name: IS_KW@368..370 "is" [] [], l_paren_token: L_PAREN@370..371 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -706,9 +690,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@436..437 ":" [] [], class: CssPseudoClassFunctionNth { - name: CssIdentifier { - value_token: IDENT@437..446 "nth-child" [] [], - }, + name: NTH_CHILD_KW@437..446 "nth-child" [] [], l_paren_token: L_PAREN@446..447 "(" [] [], selector: CssPseudoClassNthSelector { nth: CssPseudoClassNthNumber { @@ -909,8 +891,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@77..116 0: COLON@77..79 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@79..116 - 0: CSS_IDENTIFIER@79..86 - 0: IDENT@79..86 "matches" [] [] + 0: MATCHES_KW@79..86 "matches" [] [] 1: L_PAREN@86..87 "(" [] [] 2: CSS_SELECTOR_LIST@87..115 0: CSS_COMPOUND_SELECTOR@87..94 @@ -969,8 +950,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@128..150 0: COLON@128..129 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@129..150 - 0: CSS_IDENTIFIER@129..132 - 0: IDENT@129..132 "not" [] [] + 0: NOT_KW@129..132 "not" [] [] 1: L_PAREN@132..133 "(" [] [] 2: CSS_SELECTOR_LIST@133..148 0: CSS_COMPOUND_SELECTOR@133..148 @@ -1011,8 +991,7 @@ CssRoot { 1: CSS_PSEUDO_CLASS_SELECTOR@164..184 0: COLON@164..165 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_RELATIVE_SELECTOR_LIST@165..184 - 0: CSS_IDENTIFIER@165..168 - 0: IDENT@165..168 "has" [] [] + 0: HAS_KW@165..168 "has" [] [] 1: L_PAREN@168..169 "(" [] [] 2: CSS_RELATIVE_SELECTOR_LIST@169..183 0: CSS_RELATIVE_SELECTOR@169..183 @@ -1026,8 +1005,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@170..183 0: COLON@170..171 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@171..183 - 0: CSS_IDENTIFIER@171..180 - 0: IDENT@171..180 "nth-child" [] [] + 0: NTH_CHILD_KW@171..180 "nth-child" [] [] 1: L_PAREN@180..181 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@181..182 0: CSS_PSEUDO_CLASS_NTH_NUMBER@181..182 @@ -1040,8 +1018,7 @@ CssRoot { 2: CSS_PSEUDO_CLASS_SELECTOR@184..211 0: COLON@184..185 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@185..211 - 0: CSS_IDENTIFIER@185..188 - 0: IDENT@185..188 "not" [] [] + 0: NOT_KW@185..188 "not" [] [] 1: L_PAREN@188..189 "(" [] [] 2: CSS_SELECTOR_LIST@189..209 0: CSS_COMPOUND_SELECTOR@189..209 @@ -1051,8 +1028,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@189..209 0: COLON@189..190 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_RELATIVE_SELECTOR_LIST@190..209 - 0: CSS_IDENTIFIER@190..193 - 0: IDENT@190..193 "has" [] [] + 0: HAS_KW@190..193 "has" [] [] 1: L_PAREN@193..194 "(" [] [] 2: CSS_RELATIVE_SELECTOR_LIST@194..208 0: CSS_RELATIVE_SELECTOR@194..208 @@ -1066,8 +1042,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@195..208 0: COLON@195..196 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@196..208 - 0: CSS_IDENTIFIER@196..205 - 0: IDENT@196..205 "nth-child" [] [] + 0: NTH_CHILD_KW@196..205 "nth-child" [] [] 1: L_PAREN@205..206 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@206..207 0: CSS_PSEUDO_CLASS_NTH_NUMBER@206..207 @@ -1167,8 +1142,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@367..374 0: COLON@367..368 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@368..374 - 0: CSS_IDENTIFIER@368..370 - 0: IDENT@368..370 "is" [] [] + 0: IS_KW@368..370 "is" [] [] 1: L_PAREN@370..371 "(" [] [] 2: CSS_SELECTOR_LIST@371..372 0: CSS_COMPOUND_SELECTOR@371..372 @@ -1256,8 +1230,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@436..450 0: COLON@436..437 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_NTH@437..450 - 0: CSS_IDENTIFIER@437..446 - 0: IDENT@437..446 "nth-child" [] [] + 0: NTH_CHILD_KW@437..446 "nth-child" [] [] 1: L_PAREN@446..447 "(" [] [] 2: CSS_PSEUDO_CLASS_NTH_SELECTOR@447..448 0: CSS_PSEUDO_CLASS_NTH_NUMBER@447..448 diff --git a/crates/biome_css_parser/tests/css_test_suite/ok/selector/pseudo_class/pseudo_class_current.css.snap b/crates/biome_css_parser/tests/css_test_suite/ok/selector/pseudo_class/pseudo_class_current.css.snap index 9d4f142fbb3f..82cae677f34f 100644 --- a/crates/biome_css_parser/tests/css_test_suite/ok/selector/pseudo_class/pseudo_class_current.css.snap +++ b/crates/biome_css_parser/tests/css_test_suite/ok/selector/pseudo_class/pseudo_class_current.css.snap @@ -27,9 +27,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@0..1 ":" [] [], class: CssPseudoClassFunctionCompoundSelectorList { - name: CssIdentifier { - value_token: IDENT@1..8 "current" [] [], - }, + name: CURRENT_KW@1..8 "current" [] [], l_paren_token: L_PAREN@8..9 "(" [] [], compound_selector_list: CssCompoundSelectorList [ CssCompoundSelector { @@ -98,9 +96,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@26..28 ":" [Newline("\n")] [], class: CssPseudoClassFunctionCompoundSelectorList { - name: CssIdentifier { - value_token: IDENT@28..35 "current" [] [], - }, + name: CURRENT_KW@28..35 "current" [] [], l_paren_token: L_PAREN@35..36 "(" [] [], compound_selector_list: CssCompoundSelectorList [ CssCompoundSelector { @@ -193,8 +189,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@0..24 0: COLON@0..1 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_COMPOUND_SELECTOR_LIST@1..24 - 0: CSS_IDENTIFIER@1..8 - 0: IDENT@1..8 "current" [] [] + 0: CURRENT_KW@1..8 "current" [] [] 1: L_PAREN@8..9 "(" [] [] 2: CSS_COMPOUND_SELECTOR_LIST@9..22 0: CSS_COMPOUND_SELECTOR@9..10 @@ -243,8 +238,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@26..50 0: COLON@26..28 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_COMPOUND_SELECTOR_LIST@28..50 - 0: CSS_IDENTIFIER@28..35 - 0: IDENT@28..35 "current" [] [] + 0: CURRENT_KW@28..35 "current" [] [] 1: L_PAREN@35..36 "(" [] [] 2: CSS_COMPOUND_SELECTOR_LIST@36..49 0: CSS_COMPOUND_SELECTOR@36..37 diff --git a/crates/biome_css_parser/tests/css_test_suite/ok/selector/pseudo_class/pseudo_class_dir.css.snap b/crates/biome_css_parser/tests/css_test_suite/ok/selector/pseudo_class/pseudo_class_dir.css.snap index cd6fb535015f..270f12582abc 100644 --- a/crates/biome_css_parser/tests/css_test_suite/ok/selector/pseudo_class/pseudo_class_dir.css.snap +++ b/crates/biome_css_parser/tests/css_test_suite/ok/selector/pseudo_class/pseudo_class_dir.css.snap @@ -31,9 +31,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@0..1 ":" [] [], class: CssPseudoClassFunctionIdentifier { - name: CssIdentifier { - value_token: IDENT@1..4 "dir" [] [], - }, + name_token: DIR_KW@1..4 "dir" [] [], l_paren_token: L_PAREN@4..5 "(" [] [], ident: CssIdentifier { value_token: IDENT@5..8 "ltr" [] [], @@ -59,9 +57,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@12..14 ":" [Newline("\n")] [], class: CssPseudoClassFunctionIdentifier { - name: CssIdentifier { - value_token: IDENT@14..17 "dir" [] [], - }, + name_token: DIR_KW@14..17 "dir" [] [], l_paren_token: L_PAREN@17..21 "(" [] [Whitespace(" ")], ident: CssIdentifier { value_token: IDENT@21..27 "ltr" [] [Whitespace(" ")], @@ -87,9 +83,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@31..33 ":" [Newline("\n")] [], class: CssPseudoClassFunctionIdentifier { - name: CssIdentifier { - value_token: IDENT@33..36 "dir" [] [], - }, + name_token: DIR_KW@33..36 "dir" [] [], l_paren_token: L_PAREN@36..37 "(" [] [], ident: CssIdentifier { value_token: IDENT@37..40 "rtl" [] [], @@ -115,9 +109,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@44..46 ":" [Newline("\n")] [], class: CssPseudoClassFunctionIdentifier { - name: CssIdentifier { - value_token: IDENT@46..49 "dir" [] [], - }, + name_token: DIR_KW@46..49 "dir" [] [], l_paren_token: L_PAREN@49..53 "(" [] [Whitespace(" ")], ident: CssIdentifier { value_token: IDENT@53..59 "rtl" [] [Whitespace(" ")], @@ -143,9 +135,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@63..65 ":" [Newline("\n")] [], class: CssPseudoClassFunctionIdentifier { - name: CssIdentifier { - value_token: IDENT@65..68 "dir" [] [], - }, + name_token: DIR_KW@65..68 "dir" [] [], l_paren_token: L_PAREN@68..72 "(" [] [Whitespace(" ")], ident: CssIdentifier { value_token: IDENT@72..78 "RTL" [] [Whitespace(" ")], @@ -172,9 +162,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@82..84 ":" [Newline("\n")] [], class: CssPseudoClassFunctionIdentifier { - name: CssIdentifier { - value_token: IDENT@84..87 "dir" [] [], - }, + name_token: DIR_KW@84..87 "dir" [] [], l_paren_token: L_PAREN@87..88 "(" [] [], ident: CssIdentifier { value_token: IDENT@88..91 "ltr" [] [], @@ -225,8 +213,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@0..10 0: COLON@0..1 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_IDENTIFIER@1..10 - 0: CSS_IDENTIFIER@1..4 - 0: IDENT@1..4 "dir" [] [] + 0: DIR_KW@1..4 "dir" [] [] 1: L_PAREN@4..5 "(" [] [] 2: CSS_IDENTIFIER@5..8 0: IDENT@5..8 "ltr" [] [] @@ -244,8 +231,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@12..29 0: COLON@12..14 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_IDENTIFIER@14..29 - 0: CSS_IDENTIFIER@14..17 - 0: IDENT@14..17 "dir" [] [] + 0: DIR_KW@14..17 "dir" [] [] 1: L_PAREN@17..21 "(" [] [Whitespace(" ")] 2: CSS_IDENTIFIER@21..27 0: IDENT@21..27 "ltr" [] [Whitespace(" ")] @@ -263,8 +249,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@31..42 0: COLON@31..33 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_IDENTIFIER@33..42 - 0: CSS_IDENTIFIER@33..36 - 0: IDENT@33..36 "dir" [] [] + 0: DIR_KW@33..36 "dir" [] [] 1: L_PAREN@36..37 "(" [] [] 2: CSS_IDENTIFIER@37..40 0: IDENT@37..40 "rtl" [] [] @@ -282,8 +267,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@44..61 0: COLON@44..46 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_IDENTIFIER@46..61 - 0: CSS_IDENTIFIER@46..49 - 0: IDENT@46..49 "dir" [] [] + 0: DIR_KW@46..49 "dir" [] [] 1: L_PAREN@49..53 "(" [] [Whitespace(" ")] 2: CSS_IDENTIFIER@53..59 0: IDENT@53..59 "rtl" [] [Whitespace(" ")] @@ -301,8 +285,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@63..80 0: COLON@63..65 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_IDENTIFIER@65..80 - 0: CSS_IDENTIFIER@65..68 - 0: IDENT@65..68 "dir" [] [] + 0: DIR_KW@65..68 "dir" [] [] 1: L_PAREN@68..72 "(" [] [Whitespace(" ")] 2: CSS_IDENTIFIER@72..78 0: IDENT@72..78 "RTL" [] [Whitespace(" ")] @@ -321,8 +304,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@82..92 0: COLON@82..84 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_IDENTIFIER@84..92 - 0: CSS_IDENTIFIER@84..87 - 0: IDENT@84..87 "dir" [] [] + 0: DIR_KW@84..87 "dir" [] [] 1: L_PAREN@87..88 "(" [] [] 2: CSS_IDENTIFIER@88..91 0: IDENT@88..91 "ltr" [] [] diff --git a/crates/biome_css_parser/tests/css_test_suite/ok/selector/pseudo_class/pseudo_class_future.css.snap b/crates/biome_css_parser/tests/css_test_suite/ok/selector/pseudo_class/pseudo_class_future.css.snap index 6ecf5cb6e766..6d93d6e9977c 100644 --- a/crates/biome_css_parser/tests/css_test_suite/ok/selector/pseudo_class/pseudo_class_future.css.snap +++ b/crates/biome_css_parser/tests/css_test_suite/ok/selector/pseudo_class/pseudo_class_future.css.snap @@ -27,9 +27,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@0..1 ":" [] [], class: CssPseudoClassFunctionCompoundSelectorList { - name: CssIdentifier { - value_token: IDENT@1..7 "future" [] [], - }, + name: FUTURE_KW@1..7 "future" [] [], l_paren_token: L_PAREN@7..8 "(" [] [], compound_selector_list: CssCompoundSelectorList [ CssCompoundSelector { @@ -98,9 +96,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@25..27 ":" [Newline("\n")] [], class: CssPseudoClassFunctionCompoundSelectorList { - name: CssIdentifier { - value_token: IDENT@27..33 "future" [] [], - }, + name: FUTURE_KW@27..33 "future" [] [], l_paren_token: L_PAREN@33..34 "(" [] [], compound_selector_list: CssCompoundSelectorList [ CssCompoundSelector { @@ -193,8 +189,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@0..23 0: COLON@0..1 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_COMPOUND_SELECTOR_LIST@1..23 - 0: CSS_IDENTIFIER@1..7 - 0: IDENT@1..7 "future" [] [] + 0: FUTURE_KW@1..7 "future" [] [] 1: L_PAREN@7..8 "(" [] [] 2: CSS_COMPOUND_SELECTOR_LIST@8..21 0: CSS_COMPOUND_SELECTOR@8..9 @@ -243,8 +238,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@25..48 0: COLON@25..27 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_COMPOUND_SELECTOR_LIST@27..48 - 0: CSS_IDENTIFIER@27..33 - 0: IDENT@27..33 "future" [] [] + 0: FUTURE_KW@27..33 "future" [] [] 1: L_PAREN@33..34 "(" [] [] 2: CSS_COMPOUND_SELECTOR_LIST@34..47 0: CSS_COMPOUND_SELECTOR@34..35 diff --git a/crates/biome_css_parser/tests/css_test_suite/ok/selector/pseudo_class/pseudo_class_has.css.snap b/crates/biome_css_parser/tests/css_test_suite/ok/selector/pseudo_class/pseudo_class_has.css.snap index 4db4da9d244b..c5f54f0c34c7 100644 --- a/crates/biome_css_parser/tests/css_test_suite/ok/selector/pseudo_class/pseudo_class_has.css.snap +++ b/crates/biome_css_parser/tests/css_test_suite/ok/selector/pseudo_class/pseudo_class_has.css.snap @@ -41,9 +41,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@1..2 ":" [] [], class: CssPseudoClassFunctionRelativeSelectorList { - name: CssIdentifier { - value_token: IDENT@2..5 "has" [] [], - }, + name_token: HAS_KW@2..5 "has" [] [], l_paren_token: L_PAREN@5..6 "(" [] [], relative_selector_list: CssRelativeSelectorList [ CssRelativeSelector { @@ -86,9 +84,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@17..18 ":" [] [], class: CssPseudoClassFunctionRelativeSelectorList { - name: CssIdentifier { - value_token: IDENT@18..21 "has" [] [], - }, + name_token: HAS_KW@18..21 "has" [] [], l_paren_token: L_PAREN@21..25 "(" [] [Whitespace(" ")], relative_selector_list: CssRelativeSelectorList [ CssRelativeSelector { @@ -131,9 +127,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@39..40 ":" [] [], class: CssPseudoClassFunctionRelativeSelectorList { - name: CssIdentifier { - value_token: IDENT@40..43 "has" [] [], - }, + name_token: HAS_KW@40..43 "has" [] [], l_paren_token: L_PAREN@43..47 "(" [] [Whitespace(" ")], relative_selector_list: CssRelativeSelectorList [ CssRelativeSelector { @@ -176,9 +170,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@63..64 ":" [] [], class: CssPseudoClassFunctionRelativeSelectorList { - name: CssIdentifier { - value_token: IDENT@64..67 "has" [] [], - }, + name_token: HAS_KW@64..67 "has" [] [], l_paren_token: L_PAREN@67..71 "(" [] [Whitespace(" ")], relative_selector_list: CssRelativeSelectorList [ CssRelativeSelector { @@ -235,9 +227,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@101..102 ":" [] [], class: CssPseudoClassFunctionRelativeSelectorList { - name: CssIdentifier { - value_token: IDENT@102..105 "has" [] [], - }, + name_token: HAS_KW@102..105 "has" [] [], l_paren_token: L_PAREN@105..109 "(" [] [Whitespace(" ")], relative_selector_list: CssRelativeSelectorList [ CssRelativeSelector { @@ -280,9 +270,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@122..123 ":" [] [], class: CssPseudoClassFunctionRelativeSelectorList { - name: CssIdentifier { - value_token: IDENT@123..126 "has" [] [], - }, + name_token: HAS_KW@123..126 "has" [] [], l_paren_token: L_PAREN@126..127 "(" [] [], relative_selector_list: CssRelativeSelectorList [ CssRelativeSelector { @@ -325,9 +313,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@143..144 ":" [] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@144..147 "not" [] [], - }, + name: NOT_KW@144..147 "not" [] [], l_paren_token: L_PAREN@147..148 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -337,9 +323,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@148..149 ":" [] [], class: CssPseudoClassFunctionRelativeSelectorList { - name: CssIdentifier { - value_token: IDENT@149..152 "has" [] [], - }, + name_token: HAS_KW@149..152 "has" [] [], l_paren_token: L_PAREN@152..153 "(" [] [], relative_selector_list: CssRelativeSelectorList [ CssRelativeSelector { @@ -458,9 +442,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@188..189 ":" [] [], class: CssPseudoClassFunctionRelativeSelectorList { - name: CssIdentifier { - value_token: IDENT@189..192 "has" [] [], - }, + name_token: HAS_KW@189..192 "has" [] [], l_paren_token: L_PAREN@192..193 "(" [] [], relative_selector_list: CssRelativeSelectorList [ CssRelativeSelector { @@ -472,9 +454,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@193..194 ":" [] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@194..197 "not" [] [], - }, + name: NOT_KW@194..197 "not" [] [], l_paren_token: L_PAREN@197..198 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -576,9 +556,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@229..230 ":" [] [], class: CssPseudoClassFunctionRelativeSelectorList { - name: CssIdentifier { - value_token: IDENT@230..233 "has" [] [], - }, + name_token: HAS_KW@230..233 "has" [] [], l_paren_token: L_PAREN@233..234 "(" [] [], relative_selector_list: CssRelativeSelectorList [ CssRelativeSelector { @@ -623,9 +601,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@253..254 ":" [] [], class: CssPseudoClassFunctionRelativeSelectorList { - name: CssIdentifier { - value_token: IDENT@254..257 "has" [] [], - }, + name_token: HAS_KW@254..257 "has" [] [], l_paren_token: L_PAREN@257..258 "(" [] [], relative_selector_list: CssRelativeSelectorList [ CssRelativeSelector { @@ -648,9 +624,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@261..262 ":" [] [], class: CssPseudoClassFunctionRelativeSelectorList { - name: CssIdentifier { - value_token: IDENT@262..265 "has" [] [], - }, + name_token: HAS_KW@262..265 "has" [] [], l_paren_token: L_PAREN@265..266 "(" [] [], relative_selector_list: CssRelativeSelectorList [ CssRelativeSelector { @@ -708,9 +682,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@284..285 ":" [] [], class: CssPseudoClassFunctionRelativeSelectorList { - name: CssIdentifier { - value_token: IDENT@285..288 "has" [] [], - }, + name_token: HAS_KW@285..288 "has" [] [], l_paren_token: L_PAREN@288..289 "(" [] [], relative_selector_list: CssRelativeSelectorList [ CssRelativeSelector { @@ -776,8 +748,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@1..13 0: COLON@1..2 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_RELATIVE_SELECTOR_LIST@2..13 - 0: CSS_IDENTIFIER@2..5 - 0: IDENT@2..5 "has" [] [] + 0: HAS_KW@2..5 "has" [] [] 1: L_PAREN@5..6 "(" [] [] 2: CSS_RELATIVE_SELECTOR_LIST@6..11 0: CSS_RELATIVE_SELECTOR@6..11 @@ -806,8 +777,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@17..35 0: COLON@17..18 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_RELATIVE_SELECTOR_LIST@18..35 - 0: CSS_IDENTIFIER@18..21 - 0: IDENT@18..21 "has" [] [] + 0: HAS_KW@18..21 "has" [] [] 1: L_PAREN@21..25 "(" [] [Whitespace(" ")] 2: CSS_RELATIVE_SELECTOR_LIST@25..33 0: CSS_RELATIVE_SELECTOR@25..33 @@ -836,8 +806,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@39..59 0: COLON@39..40 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_RELATIVE_SELECTOR_LIST@40..59 - 0: CSS_IDENTIFIER@40..43 - 0: IDENT@40..43 "has" [] [] + 0: HAS_KW@40..43 "has" [] [] 1: L_PAREN@43..47 "(" [] [Whitespace(" ")] 2: CSS_RELATIVE_SELECTOR_LIST@47..57 0: CSS_RELATIVE_SELECTOR@47..57 @@ -866,8 +835,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@63..97 0: COLON@63..64 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_RELATIVE_SELECTOR_LIST@64..97 - 0: CSS_IDENTIFIER@64..67 - 0: IDENT@64..67 "has" [] [] + 0: HAS_KW@64..67 "has" [] [] 1: L_PAREN@67..71 "(" [] [Whitespace(" ")] 2: CSS_RELATIVE_SELECTOR_LIST@71..95 0: CSS_RELATIVE_SELECTOR@71..81 @@ -906,8 +874,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@101..117 0: COLON@101..102 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_RELATIVE_SELECTOR_LIST@102..117 - 0: CSS_IDENTIFIER@102..105 - 0: IDENT@102..105 "has" [] [] + 0: HAS_KW@102..105 "has" [] [] 1: L_PAREN@105..109 "(" [] [Whitespace(" ")] 2: CSS_RELATIVE_SELECTOR_LIST@109..115 0: CSS_RELATIVE_SELECTOR@109..115 @@ -936,8 +903,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@122..133 0: COLON@122..123 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_RELATIVE_SELECTOR_LIST@123..133 - 0: CSS_IDENTIFIER@123..126 - 0: IDENT@123..126 "has" [] [] + 0: HAS_KW@123..126 "has" [] [] 1: L_PAREN@126..127 "(" [] [] 2: CSS_RELATIVE_SELECTOR_LIST@127..131 0: CSS_RELATIVE_SELECTOR@127..131 @@ -966,8 +932,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@143..178 0: COLON@143..144 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@144..178 - 0: CSS_IDENTIFIER@144..147 - 0: IDENT@144..147 "not" [] [] + 0: NOT_KW@144..147 "not" [] [] 1: L_PAREN@147..148 "(" [] [] 2: CSS_SELECTOR_LIST@148..176 0: CSS_COMPOUND_SELECTOR@148..176 @@ -977,8 +942,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@148..176 0: COLON@148..149 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_RELATIVE_SELECTOR_LIST@149..176 - 0: CSS_IDENTIFIER@149..152 - 0: IDENT@149..152 "has" [] [] + 0: HAS_KW@149..152 "has" [] [] 1: L_PAREN@152..153 "(" [] [] 2: CSS_RELATIVE_SELECTOR_LIST@153..175 0: CSS_RELATIVE_SELECTOR@153..155 @@ -1058,8 +1022,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@188..223 0: COLON@188..189 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_RELATIVE_SELECTOR_LIST@189..223 - 0: CSS_IDENTIFIER@189..192 - 0: IDENT@189..192 "has" [] [] + 0: HAS_KW@189..192 "has" [] [] 1: L_PAREN@192..193 "(" [] [] 2: CSS_RELATIVE_SELECTOR_LIST@193..221 0: CSS_RELATIVE_SELECTOR@193..221 @@ -1071,8 +1034,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@193..221 0: COLON@193..194 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@194..221 - 0: CSS_IDENTIFIER@194..197 - 0: IDENT@194..197 "not" [] [] + 0: NOT_KW@194..197 "not" [] [] 1: L_PAREN@197..198 "(" [] [] 2: CSS_SELECTOR_LIST@198..220 0: CSS_COMPOUND_SELECTOR@198..200 @@ -1140,8 +1102,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@229..237 0: COLON@229..230 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_RELATIVE_SELECTOR_LIST@230..237 - 0: CSS_IDENTIFIER@230..233 - 0: IDENT@230..233 "has" [] [] + 0: HAS_KW@230..233 "has" [] [] 1: L_PAREN@233..234 "(" [] [] 2: CSS_RELATIVE_SELECTOR_LIST@234..235 0: CSS_RELATIVE_SELECTOR@234..235 @@ -1172,8 +1133,7 @@ CssRoot { 1: CSS_PSEUDO_CLASS_SELECTOR@253..261 0: COLON@253..254 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_RELATIVE_SELECTOR_LIST@254..261 - 0: CSS_IDENTIFIER@254..257 - 0: IDENT@254..257 "has" [] [] + 0: HAS_KW@254..257 "has" [] [] 1: L_PAREN@257..258 "(" [] [] 2: CSS_RELATIVE_SELECTOR_LIST@258..260 0: CSS_RELATIVE_SELECTOR@258..260 @@ -1189,8 +1149,7 @@ CssRoot { 2: CSS_PSEUDO_CLASS_SELECTOR@261..276 0: COLON@261..262 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_RELATIVE_SELECTOR_LIST@262..276 - 0: CSS_IDENTIFIER@262..265 - 0: IDENT@262..265 "has" [] [] + 0: HAS_KW@262..265 "has" [] [] 1: L_PAREN@265..266 "(" [] [] 2: CSS_RELATIVE_SELECTOR_LIST@266..275 0: CSS_RELATIVE_SELECTOR@266..275 @@ -1229,8 +1188,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@284..295 0: COLON@284..285 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_RELATIVE_SELECTOR_LIST@285..295 - 0: CSS_IDENTIFIER@285..288 - 0: IDENT@285..288 "has" [] [] + 0: HAS_KW@285..288 "has" [] [] 1: L_PAREN@288..289 "(" [] [] 2: CSS_RELATIVE_SELECTOR_LIST@289..294 0: CSS_RELATIVE_SELECTOR@289..294 diff --git a/crates/biome_css_parser/tests/css_test_suite/ok/selector/pseudo_class/pseudo_class_host.css.snap b/crates/biome_css_parser/tests/css_test_suite/ok/selector/pseudo_class/pseudo_class_host.css.snap index ca0f28bde99d..395d47598302 100644 --- a/crates/biome_css_parser/tests/css_test_suite/ok/selector/pseudo_class/pseudo_class_host.css.snap +++ b/crates/biome_css_parser/tests/css_test_suite/ok/selector/pseudo_class/pseudo_class_host.css.snap @@ -29,10 +29,8 @@ CssRoot { sub_selectors: CssSubSelectorList [ CssPseudoClassSelector { colon_token: COLON@0..1 ":" [] [], - class: CssPseudoClassFunctionSelector { - name: CssIdentifier { - value_token: IDENT@1..5 "host" [] [], - }, + class: CssPseudoClassFunctionCompoundSelector { + name: HOST_KW@1..5 "host" [] [], l_paren_token: L_PAREN@5..6 "(" [] [], selector: CssCompoundSelector { nesting_selector_token: missing (optional), @@ -66,10 +64,8 @@ CssRoot { sub_selectors: CssSubSelectorList [ CssPseudoClassSelector { colon_token: COLON@33..35 ":" [Newline("\n")] [], - class: CssPseudoClassFunctionSelector { - name: CssIdentifier { - value_token: IDENT@35..39 "host" [] [], - }, + class: CssPseudoClassFunctionCompoundSelector { + name: HOST_KW@35..39 "host" [] [], l_paren_token: L_PAREN@39..43 "(" [] [Whitespace(" ")], selector: CssCompoundSelector { nesting_selector_token: missing (optional), @@ -103,10 +99,8 @@ CssRoot { sub_selectors: CssSubSelectorList [ CssPseudoClassSelector { colon_token: COLON@73..75 ":" [Newline("\n")] [], - class: CssPseudoClassFunctionSelector { - name: CssIdentifier { - value_token: IDENT@75..79 "host" [] [], - }, + class: CssPseudoClassFunctionCompoundSelector { + name: HOST_KW@75..79 "host" [] [], l_paren_token: L_PAREN@79..80 "(" [] [], selector: CssCompoundSelector { nesting_selector_token: missing (optional), @@ -164,10 +158,8 @@ CssRoot { sub_selectors: CssSubSelectorList [ CssPseudoClassSelector { colon_token: COLON@100..102 ":" [Newline("\n")] [], - class: CssPseudoClassFunctionSelector { - name: CssIdentifier { - value_token: IDENT@102..106 "host" [] [], - }, + class: CssPseudoClassFunctionCompoundSelector { + name: HOST_KW@102..106 "host" [] [], l_paren_token: L_PAREN@106..107 "(" [] [], selector: CssCompoundSelector { nesting_selector_token: missing (optional), @@ -226,9 +218,8 @@ CssRoot { 2: CSS_SUB_SELECTOR_LIST@0..31 0: CSS_PSEUDO_CLASS_SELECTOR@0..31 0: COLON@0..1 ":" [] [] - 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR@1..31 - 0: CSS_IDENTIFIER@1..5 - 0: IDENT@1..5 "host" [] [] + 1: CSS_PSEUDO_CLASS_FUNCTION_COMPOUND_SELECTOR@1..31 + 0: HOST_KW@1..5 "host" [] [] 1: L_PAREN@5..6 "(" [] [] 2: CSS_COMPOUND_SELECTOR@6..29 0: (empty) @@ -251,9 +242,8 @@ CssRoot { 2: CSS_SUB_SELECTOR_LIST@33..71 0: CSS_PSEUDO_CLASS_SELECTOR@33..71 0: COLON@33..35 ":" [Newline("\n")] [] - 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR@35..71 - 0: CSS_IDENTIFIER@35..39 - 0: IDENT@35..39 "host" [] [] + 1: CSS_PSEUDO_CLASS_FUNCTION_COMPOUND_SELECTOR@35..71 + 0: HOST_KW@35..39 "host" [] [] 1: L_PAREN@39..43 "(" [] [Whitespace(" ")] 2: CSS_COMPOUND_SELECTOR@43..69 0: (empty) @@ -276,9 +266,8 @@ CssRoot { 2: CSS_SUB_SELECTOR_LIST@73..89 0: CSS_PSEUDO_CLASS_SELECTOR@73..89 0: COLON@73..75 ":" [Newline("\n")] [] - 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR@75..89 - 0: CSS_IDENTIFIER@75..79 - 0: IDENT@75..79 "host" [] [] + 1: CSS_PSEUDO_CLASS_FUNCTION_COMPOUND_SELECTOR@75..89 + 0: HOST_KW@75..79 "host" [] [] 1: L_PAREN@79..80 "(" [] [] 2: CSS_COMPOUND_SELECTOR@80..87 0: (empty) @@ -317,9 +306,8 @@ CssRoot { 2: CSS_SUB_SELECTOR_LIST@100..115 0: CSS_PSEUDO_CLASS_SELECTOR@100..115 0: COLON@100..102 ":" [Newline("\n")] [] - 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR@102..115 - 0: CSS_IDENTIFIER@102..106 - 0: IDENT@102..106 "host" [] [] + 1: CSS_PSEUDO_CLASS_FUNCTION_COMPOUND_SELECTOR@102..115 + 0: HOST_KW@102..106 "host" [] [] 1: L_PAREN@106..107 "(" [] [] 2: CSS_COMPOUND_SELECTOR@107..114 0: (empty) diff --git a/crates/biome_css_parser/tests/css_test_suite/ok/selector/pseudo_class/pseudo_class_host_context.css.snap b/crates/biome_css_parser/tests/css_test_suite/ok/selector/pseudo_class/pseudo_class_host_context.css.snap index 7f2df1730650..fc61056eaf02 100644 --- a/crates/biome_css_parser/tests/css_test_suite/ok/selector/pseudo_class/pseudo_class_host_context.css.snap +++ b/crates/biome_css_parser/tests/css_test_suite/ok/selector/pseudo_class/pseudo_class_host_context.css.snap @@ -27,10 +27,8 @@ CssRoot { sub_selectors: CssSubSelectorList [ CssPseudoClassSelector { colon_token: COLON@0..1 ":" [] [], - class: CssPseudoClassFunctionSelector { - name: CssIdentifier { - value_token: IDENT@1..13 "host-context" [] [], - }, + class: CssPseudoClassFunctionCompoundSelector { + name: HOST_CONTEXT_KW@1..13 "host-context" [] [], l_paren_token: L_PAREN@13..14 "(" [] [], selector: CssCompoundSelector { nesting_selector_token: missing (optional), @@ -62,10 +60,8 @@ CssRoot { sub_selectors: CssSubSelectorList [ CssPseudoClassSelector { colon_token: COLON@20..22 ":" [Newline("\n")] [], - class: CssPseudoClassFunctionSelector { - name: CssIdentifier { - value_token: IDENT@22..34 "host-context" [] [], - }, + class: CssPseudoClassFunctionCompoundSelector { + name: HOST_CONTEXT_KW@22..34 "host-context" [] [], l_paren_token: L_PAREN@34..38 "(" [] [Whitespace(" ")], selector: CssCompoundSelector { nesting_selector_token: missing (optional), @@ -98,10 +94,8 @@ CssRoot { sub_selectors: CssSubSelectorList [ CssPseudoClassSelector { colon_token: COLON@47..49 ":" [Newline("\n")] [], - class: CssPseudoClassFunctionSelector { - name: CssIdentifier { - value_token: IDENT@49..61 "host-context" [] [], - }, + class: CssPseudoClassFunctionCompoundSelector { + name: HOST_CONTEXT_KW@49..61 "host-context" [] [], l_paren_token: L_PAREN@61..62 "(" [] [], selector: CssCompoundSelector { nesting_selector_token: missing (optional), @@ -158,9 +152,8 @@ CssRoot { 2: CSS_SUB_SELECTOR_LIST@0..18 0: CSS_PSEUDO_CLASS_SELECTOR@0..18 0: COLON@0..1 ":" [] [] - 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR@1..18 - 0: CSS_IDENTIFIER@1..13 - 0: IDENT@1..13 "host-context" [] [] + 1: CSS_PSEUDO_CLASS_FUNCTION_COMPOUND_SELECTOR@1..18 + 0: HOST_CONTEXT_KW@1..13 "host-context" [] [] 1: L_PAREN@13..14 "(" [] [] 2: CSS_COMPOUND_SELECTOR@14..16 0: (empty) @@ -182,9 +175,8 @@ CssRoot { 2: CSS_SUB_SELECTOR_LIST@20..45 0: CSS_PSEUDO_CLASS_SELECTOR@20..45 0: COLON@20..22 ":" [Newline("\n")] [] - 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR@22..45 - 0: CSS_IDENTIFIER@22..34 - 0: IDENT@22..34 "host-context" [] [] + 1: CSS_PSEUDO_CLASS_FUNCTION_COMPOUND_SELECTOR@22..45 + 0: HOST_CONTEXT_KW@22..34 "host-context" [] [] 1: L_PAREN@34..38 "(" [] [Whitespace(" ")] 2: CSS_COMPOUND_SELECTOR@38..43 0: (empty) @@ -207,9 +199,8 @@ CssRoot { 2: CSS_SUB_SELECTOR_LIST@47..65 0: CSS_PSEUDO_CLASS_SELECTOR@47..65 0: COLON@47..49 ":" [Newline("\n")] [] - 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR@49..65 - 0: CSS_IDENTIFIER@49..61 - 0: IDENT@49..61 "host-context" [] [] + 1: CSS_PSEUDO_CLASS_FUNCTION_COMPOUND_SELECTOR@49..65 + 0: HOST_CONTEXT_KW@49..61 "host-context" [] [] 1: L_PAREN@61..62 "(" [] [] 2: CSS_COMPOUND_SELECTOR@62..64 0: (empty) diff --git a/crates/biome_css_parser/tests/css_test_suite/ok/selector/pseudo_class/pseudo_class_is.css.snap b/crates/biome_css_parser/tests/css_test_suite/ok/selector/pseudo_class/pseudo_class_is.css.snap index f032912d4fee..2dd2005a8b95 100644 --- a/crates/biome_css_parser/tests/css_test_suite/ok/selector/pseudo_class/pseudo_class_is.css.snap +++ b/crates/biome_css_parser/tests/css_test_suite/ok/selector/pseudo_class/pseudo_class_is.css.snap @@ -42,9 +42,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@0..1 ":" [] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@1..3 "is" [] [], - }, + name: IS_KW@1..3 "is" [] [], l_paren_token: L_PAREN@3..4 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -92,9 +90,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@13..15 ":" [Newline("\n")] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@15..17 "is" [] [], - }, + name: IS_KW@15..17 "is" [] [], l_paren_token: L_PAREN@17..18 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -153,9 +149,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@31..33 ":" [Newline("\n")] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@33..35 "is" [] [], - }, + name: IS_KW@33..35 "is" [] [], l_paren_token: L_PAREN@35..36 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -238,9 +232,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@72..73 ":" [] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@73..75 "is" [] [], - }, + name: IS_KW@73..75 "is" [] [], l_paren_token: L_PAREN@75..76 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -292,9 +284,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@91..93 ":" [Newline("\n")] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@93..95 "is" [] [], - }, + name: IS_KW@93..95 "is" [] [], l_paren_token: L_PAREN@95..96 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -354,9 +344,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@115..116 ":" [] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@116..118 "is" [] [], - }, + name: IS_KW@116..118 "is" [] [], l_paren_token: L_PAREN@118..119 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -417,9 +405,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@138..139 ":" [] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@139..141 "is" [] [], - }, + name: IS_KW@139..141 "is" [] [], l_paren_token: L_PAREN@141..142 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -480,9 +466,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@161..162 ":" [] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@162..164 "is" [] [], - }, + name: IS_KW@162..164 "is" [] [], l_paren_token: L_PAREN@164..165 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -539,9 +523,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@185..186 ":" [] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@186..188 "is" [] [], - }, + name: IS_KW@186..188 "is" [] [], l_paren_token: L_PAREN@188..189 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -602,9 +584,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@209..211 ":" [Newline("\n")] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@211..213 "is" [] [], - }, + name: IS_KW@211..213 "is" [] [], l_paren_token: L_PAREN@213..214 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -682,9 +662,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@242..244 ":" [Newline("\n")] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@244..246 "is" [] [], - }, + name: IS_KW@244..246 "is" [] [], l_paren_token: L_PAREN@246..247 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -739,9 +717,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@267..269 ":" [Newline("\n")] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@269..271 "is" [] [], - }, + name: IS_KW@269..271 "is" [] [], l_paren_token: L_PAREN@271..272 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -800,9 +776,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@298..299 ":" [] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@299..301 "is" [] [], - }, + name: IS_KW@299..301 "is" [] [], l_paren_token: L_PAREN@301..302 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -812,9 +786,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@302..303 ":" [] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@303..306 "not" [] [], - }, + name: NOT_KW@303..306 "not" [] [], l_paren_token: L_PAREN@306..307 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -860,9 +832,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@318..320 ":" [Newline("\n")] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@320..322 "is" [] [], - }, + name: IS_KW@320..322 "is" [] [], l_paren_token: L_PAREN@322..323 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -922,9 +892,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@353..354 ":" [] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@354..356 "is" [] [], - }, + name: IS_KW@354..356 "is" [] [], l_paren_token: L_PAREN@356..357 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -1016,9 +984,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@383..385 ":" [Newline("\n")] [], class: CssPseudoClassFunctionCompoundSelectorList { - name: CssIdentifier { - value_token: IDENT@385..396 "-webkit-any" [] [], - }, + name: _WEBKIT_ANY_KW@385..396 "-webkit-any" [] [], l_paren_token: L_PAREN@396..397 "(" [] [], compound_selector_list: CssCompoundSelectorList [ CssCompoundSelector { @@ -1097,9 +1063,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@429..431 ":" [Newline("\n")] [], class: CssPseudoClassFunctionCompoundSelectorList { - name: CssIdentifier { - value_token: IDENT@431..439 "-moz-any" [] [], - }, + name: _MOZ_ANY_KW@431..439 "-moz-any" [] [], l_paren_token: L_PAREN@439..440 "(" [] [], compound_selector_list: CssCompoundSelectorList [ CssCompoundSelector { @@ -1178,9 +1142,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@472..474 ":" [Newline("\n")] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@474..481 "matches" [] [], - }, + name: MATCHES_KW@474..481 "matches" [] [], l_paren_token: L_PAREN@481..482 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -1259,9 +1221,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@514..516 ":" [Newline("\n")] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@516..518 "is" [] [], - }, + name: IS_KW@516..518 "is" [] [], l_paren_token: L_PAREN@518..519 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -1351,8 +1311,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@0..7 0: COLON@0..1 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@1..7 - 0: CSS_IDENTIFIER@1..3 - 0: IDENT@1..3 "is" [] [] + 0: IS_KW@1..3 "is" [] [] 1: L_PAREN@3..4 "(" [] [] 2: CSS_SELECTOR_LIST@4..6 0: CSS_COMPOUND_SELECTOR@4..6 @@ -1385,8 +1344,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@13..25 0: COLON@13..15 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@15..25 - 0: CSS_IDENTIFIER@15..17 - 0: IDENT@15..17 "is" [] [] + 0: IS_KW@15..17 "is" [] [] 1: L_PAREN@17..18 "(" [] [] 2: CSS_SELECTOR_LIST@18..24 0: CSS_COMPOUND_SELECTOR@18..20 @@ -1427,8 +1385,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@31..57 0: COLON@31..33 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@33..57 - 0: CSS_IDENTIFIER@33..35 - 0: IDENT@33..35 "is" [] [] + 0: IS_KW@33..35 "is" [] [] 1: L_PAREN@35..36 "(" [] [] 2: CSS_SELECTOR_LIST@36..56 0: CSS_COMPOUND_SELECTOR@36..42 @@ -1484,8 +1441,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@72..89 0: COLON@72..73 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@73..89 - 0: CSS_IDENTIFIER@73..75 - 0: IDENT@73..75 "is" [] [] + 0: IS_KW@73..75 "is" [] [] 1: L_PAREN@75..76 "(" [] [] 2: CSS_SELECTOR_LIST@76..87 0: CSS_COMPOUND_SELECTOR@76..81 @@ -1521,8 +1477,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@91..114 0: COLON@91..93 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@93..114 - 0: CSS_IDENTIFIER@93..95 - 0: IDENT@93..95 "is" [] [] + 0: IS_KW@93..95 "is" [] [] 1: L_PAREN@95..96 "(" [] [] 2: CSS_SELECTOR_LIST@96..113 0: CSS_COMPOUND_SELECTOR@96..98 @@ -1565,8 +1520,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@115..137 0: COLON@115..116 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@116..137 - 0: CSS_IDENTIFIER@116..118 - 0: IDENT@116..118 "is" [] [] + 0: IS_KW@116..118 "is" [] [] 1: L_PAREN@118..119 "(" [] [] 2: CSS_SELECTOR_LIST@119..136 0: CSS_COMPOUND_SELECTOR@119..121 @@ -1609,8 +1563,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@138..157 0: COLON@138..139 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@139..157 - 0: CSS_IDENTIFIER@139..141 - 0: IDENT@139..141 "is" [] [] + 0: IS_KW@139..141 "is" [] [] 1: L_PAREN@141..142 "(" [] [] 2: CSS_SELECTOR_LIST@142..155 0: CSS_COMPOUND_SELECTOR@142..144 @@ -1652,8 +1605,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@161..181 0: COLON@161..162 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@162..181 - 0: CSS_IDENTIFIER@162..164 - 0: IDENT@162..164 "is" [] [] + 0: IS_KW@162..164 "is" [] [] 1: L_PAREN@164..165 "(" [] [] 2: CSS_SELECTOR_LIST@165..179 0: CSS_COMPOUND_SELECTOR@165..171 @@ -1691,8 +1643,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@185..207 0: COLON@185..186 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@186..207 - 0: CSS_IDENTIFIER@186..188 - 0: IDENT@186..188 "is" [] [] + 0: IS_KW@186..188 "is" [] [] 1: L_PAREN@188..189 "(" [] [] 2: CSS_SELECTOR_LIST@189..205 0: CSS_COMPOUND_SELECTOR@189..196 @@ -1733,8 +1684,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@209..229 0: COLON@209..211 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@211..229 - 0: CSS_IDENTIFIER@211..213 - 0: IDENT@211..213 "is" [] [] + 0: IS_KW@211..213 "is" [] [] 1: L_PAREN@213..214 "(" [] [] 2: CSS_SELECTOR_LIST@214..227 0: CSS_COMPOUND_SELECTOR@214..216 @@ -1788,8 +1738,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@242..265 0: COLON@242..244 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@244..265 - 0: CSS_IDENTIFIER@244..246 - 0: IDENT@244..246 "is" [] [] + 0: IS_KW@244..246 "is" [] [] 1: L_PAREN@246..247 "(" [] [] 2: CSS_SELECTOR_LIST@247..263 0: CSS_COMPOUND_SELECTOR@247..248 @@ -1826,8 +1775,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@267..294 0: COLON@267..269 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@269..294 - 0: CSS_IDENTIFIER@269..271 - 0: IDENT@269..271 "is" [] [] + 0: IS_KW@269..271 "is" [] [] 1: L_PAREN@271..272 "(" [] [] 2: CSS_SELECTOR_LIST@272..292 0: CSS_COMPOUND_SELECTOR@272..278 @@ -1866,8 +1814,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@298..316 0: COLON@298..299 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@299..316 - 0: CSS_IDENTIFIER@299..301 - 0: IDENT@299..301 "is" [] [] + 0: IS_KW@299..301 "is" [] [] 1: L_PAREN@301..302 "(" [] [] 2: CSS_SELECTOR_LIST@302..314 0: CSS_COMPOUND_SELECTOR@302..314 @@ -1877,8 +1824,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@302..314 0: COLON@302..303 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@303..314 - 0: CSS_IDENTIFIER@303..306 - 0: IDENT@303..306 "not" [] [] + 0: NOT_KW@303..306 "not" [] [] 1: L_PAREN@306..307 "(" [] [] 2: CSS_SELECTOR_LIST@307..313 0: CSS_COMPOUND_SELECTOR@307..313 @@ -1906,8 +1852,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@318..352 0: COLON@318..320 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@320..352 - 0: CSS_IDENTIFIER@320..322 - 0: IDENT@320..322 "is" [] [] + 0: IS_KW@320..322 "is" [] [] 1: L_PAREN@322..323 "(" [] [] 2: CSS_SELECTOR_LIST@323..351 0: CSS_COMPOUND_SELECTOR@323..330 @@ -1950,8 +1895,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@353..381 0: COLON@353..354 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@354..381 - 0: CSS_IDENTIFIER@354..356 - 0: IDENT@354..356 "is" [] [] + 0: IS_KW@354..356 "is" [] [] 1: L_PAREN@356..357 "(" [] [] 2: CSS_SELECTOR_LIST@357..379 0: CSS_COMPOUND_SELECTOR@357..359 @@ -2016,8 +1960,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@383..418 0: COLON@383..385 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_COMPOUND_SELECTOR_LIST@385..418 - 0: CSS_IDENTIFIER@385..396 - 0: IDENT@385..396 "-webkit-any" [] [] + 0: _WEBKIT_ANY_KW@385..396 "-webkit-any" [] [] 1: L_PAREN@396..397 "(" [] [] 2: CSS_COMPOUND_SELECTOR_LIST@397..417 0: CSS_COMPOUND_SELECTOR@397..403 @@ -2071,8 +2014,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@429..461 0: COLON@429..431 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_COMPOUND_SELECTOR_LIST@431..461 - 0: CSS_IDENTIFIER@431..439 - 0: IDENT@431..439 "-moz-any" [] [] + 0: _MOZ_ANY_KW@431..439 "-moz-any" [] [] 1: L_PAREN@439..440 "(" [] [] 2: CSS_COMPOUND_SELECTOR_LIST@440..460 0: CSS_COMPOUND_SELECTOR@440..446 @@ -2126,8 +2068,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@472..503 0: COLON@472..474 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@474..503 - 0: CSS_IDENTIFIER@474..481 - 0: IDENT@474..481 "matches" [] [] + 0: MATCHES_KW@474..481 "matches" [] [] 1: L_PAREN@481..482 "(" [] [] 2: CSS_SELECTOR_LIST@482..502 0: CSS_COMPOUND_SELECTOR@482..488 @@ -2181,8 +2122,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@514..540 0: COLON@514..516 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@516..540 - 0: CSS_IDENTIFIER@516..518 - 0: IDENT@516..518 "is" [] [] + 0: IS_KW@516..518 "is" [] [] 1: L_PAREN@518..519 "(" [] [] 2: CSS_SELECTOR_LIST@519..539 0: CSS_COMPOUND_SELECTOR@519..525 diff --git a/crates/biome_css_parser/tests/css_test_suite/ok/selector/pseudo_class/pseudo_class_lang.css.snap b/crates/biome_css_parser/tests/css_test_suite/ok/selector/pseudo_class/pseudo_class_lang.css.snap index a865be0edb6c..edb247de31ec 100644 --- a/crates/biome_css_parser/tests/css_test_suite/ok/selector/pseudo_class/pseudo_class_lang.css.snap +++ b/crates/biome_css_parser/tests/css_test_suite/ok/selector/pseudo_class/pseudo_class_lang.css.snap @@ -33,9 +33,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@0..1 ":" [] [], class: CssPseudoClassFunctionValueList { - name: CssIdentifier { - value_token: IDENT@1..5 "lang" [] [], - }, + name_token: LANG_KW@1..5 "lang" [] [], l_paren_token: L_PAREN@5..6 "(" [] [], value_list: CssPseudoValueList [ CssIdentifier { @@ -63,9 +61,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@17..19 ":" [Newline("\n")] [], class: CssPseudoClassFunctionValueList { - name: CssIdentifier { - value_token: IDENT@19..23 "lang" [] [], - }, + name_token: LANG_KW@19..23 "lang" [] [], l_paren_token: L_PAREN@23..24 "(" [] [], value_list: CssPseudoValueList [ CssString { @@ -98,9 +94,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@41..42 ":" [] [], class: CssPseudoClassFunctionValueList { - name: CssIdentifier { - value_token: IDENT@42..46 "lang" [] [], - }, + name_token: LANG_KW@42..46 "lang" [] [], l_paren_token: L_PAREN@46..47 "(" [] [], value_list: CssPseudoValueList [ CssIdentifier { @@ -133,9 +127,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@61..62 ":" [] [], class: CssPseudoClassFunctionValueList { - name: CssIdentifier { - value_token: IDENT@62..66 "lang" [] [], - }, + name_token: LANG_KW@62..66 "lang" [] [], l_paren_token: L_PAREN@66..67 "(" [] [], value_list: CssPseudoValueList [ CssIdentifier { @@ -168,9 +160,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@78..79 ":" [] [], class: CssPseudoClassFunctionValueList { - name: CssIdentifier { - value_token: IDENT@79..83 "lang" [] [], - }, + name_token: LANG_KW@79..83 "lang" [] [], l_paren_token: L_PAREN@83..84 "(" [] [], value_list: CssPseudoValueList [ CssIdentifier { @@ -203,9 +193,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@94..96 ":" [Newline("\n")] [], class: CssPseudoClassFunctionValueList { - name: CssIdentifier { - value_token: IDENT@96..100 "lang" [] [], - }, + name_token: LANG_KW@96..100 "lang" [] [], l_paren_token: L_PAREN@100..101 "(" [] [], value_list: CssPseudoValueList [ CssIdentifier { @@ -246,9 +234,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@114..116 ":" [Newline("\n")] [], class: CssPseudoClassFunctionValueList { - name: CssIdentifier { - value_token: IDENT@116..120 "lang" [] [], - }, + name_token: LANG_KW@116..120 "lang" [] [], l_paren_token: L_PAREN@120..121 "(" [] [], value_list: CssPseudoValueList [ CssIdentifier { @@ -289,9 +275,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@131..133 ":" [Newline("\n")] [], class: CssPseudoClassFunctionValueList { - name: CssIdentifier { - value_token: IDENT@133..137 "lang" [] [], - }, + name_token: LANG_KW@133..137 "lang" [] [], l_paren_token: L_PAREN@137..138 "(" [] [], value_list: CssPseudoValueList [ CssIdentifier { @@ -344,8 +328,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@0..15 0: COLON@0..1 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_VALUE_LIST@1..15 - 0: CSS_IDENTIFIER@1..5 - 0: IDENT@1..5 "lang" [] [] + 0: LANG_KW@1..5 "lang" [] [] 1: L_PAREN@5..6 "(" [] [] 2: CSS_PSEUDO_VALUE_LIST@6..13 0: CSS_IDENTIFIER@6..13 @@ -364,8 +347,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@17..34 0: COLON@17..19 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_VALUE_LIST@19..34 - 0: CSS_IDENTIFIER@19..23 - 0: IDENT@19..23 "lang" [] [] + 0: LANG_KW@19..23 "lang" [] [] 1: L_PAREN@23..24 "(" [] [] 2: CSS_PSEUDO_VALUE_LIST@24..32 0: CSS_STRING@24..32 @@ -387,8 +369,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@41..54 0: COLON@41..42 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_VALUE_LIST@42..54 - 0: CSS_IDENTIFIER@42..46 - 0: IDENT@42..46 "lang" [] [] + 0: LANG_KW@42..46 "lang" [] [] 1: L_PAREN@46..47 "(" [] [] 2: CSS_PSEUDO_VALUE_LIST@47..52 0: CSS_IDENTIFIER@47..52 @@ -410,8 +391,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@61..71 0: COLON@61..62 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_VALUE_LIST@62..71 - 0: CSS_IDENTIFIER@62..66 - 0: IDENT@62..66 "lang" [] [] + 0: LANG_KW@62..66 "lang" [] [] 1: L_PAREN@66..67 "(" [] [] 2: CSS_PSEUDO_VALUE_LIST@67..69 0: CSS_IDENTIFIER@67..69 @@ -433,8 +413,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@78..92 0: COLON@78..79 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_VALUE_LIST@79..92 - 0: CSS_IDENTIFIER@79..83 - 0: IDENT@79..83 "lang" [] [] + 0: LANG_KW@79..83 "lang" [] [] 1: L_PAREN@83..84 "(" [] [] 2: CSS_PSEUDO_VALUE_LIST@84..90 0: CSS_IDENTIFIER@84..86 @@ -457,8 +436,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@94..108 0: COLON@94..96 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_VALUE_LIST@96..108 - 0: CSS_IDENTIFIER@96..100 - 0: IDENT@96..100 "lang" [] [] + 0: LANG_KW@96..100 "lang" [] [] 1: L_PAREN@100..101 "(" [] [] 2: CSS_PSEUDO_VALUE_LIST@101..106 0: CSS_IDENTIFIER@101..106 @@ -486,8 +464,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@114..125 0: COLON@114..116 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_VALUE_LIST@116..125 - 0: CSS_IDENTIFIER@116..120 - 0: IDENT@116..120 "lang" [] [] + 0: LANG_KW@116..120 "lang" [] [] 1: L_PAREN@120..121 "(" [] [] 2: CSS_PSEUDO_VALUE_LIST@121..123 0: CSS_IDENTIFIER@121..123 @@ -515,8 +492,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@131..144 0: COLON@131..133 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_VALUE_LIST@133..144 - 0: CSS_IDENTIFIER@133..137 - 0: IDENT@133..137 "lang" [] [] + 0: LANG_KW@133..137 "lang" [] [] 1: L_PAREN@137..138 "(" [] [] 2: CSS_PSEUDO_VALUE_LIST@138..143 0: CSS_IDENTIFIER@138..143 diff --git a/crates/biome_css_parser/tests/css_test_suite/ok/selector/pseudo_class/pseudo_class_matches.css.snap b/crates/biome_css_parser/tests/css_test_suite/ok/selector/pseudo_class/pseudo_class_matches.css.snap index 82dfc7356ab3..c5c330414f03 100644 --- a/crates/biome_css_parser/tests/css_test_suite/ok/selector/pseudo_class/pseudo_class_matches.css.snap +++ b/crates/biome_css_parser/tests/css_test_suite/ok/selector/pseudo_class/pseudo_class_matches.css.snap @@ -28,9 +28,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@0..1 ":" [] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@1..8 "matches" [] [], - }, + name: MATCHES_KW@1..8 "matches" [] [], l_paren_token: L_PAREN@8..9 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -78,9 +76,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@18..20 ":" [Newline("\n")] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@20..27 "matches" [] [], - }, + name: MATCHES_KW@20..27 "matches" [] [], l_paren_token: L_PAREN@27..28 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -150,8 +146,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@0..12 0: COLON@0..1 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@1..12 - 0: CSS_IDENTIFIER@1..8 - 0: IDENT@1..8 "matches" [] [] + 0: MATCHES_KW@1..8 "matches" [] [] 1: L_PAREN@8..9 "(" [] [] 2: CSS_SELECTOR_LIST@9..11 0: CSS_COMPOUND_SELECTOR@9..11 @@ -184,8 +179,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@18..35 0: COLON@18..20 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@20..35 - 0: CSS_IDENTIFIER@20..27 - 0: IDENT@20..27 "matches" [] [] + 0: MATCHES_KW@20..27 "matches" [] [] 1: L_PAREN@27..28 "(" [] [] 2: CSS_SELECTOR_LIST@28..34 0: CSS_COMPOUND_SELECTOR@28..30 diff --git a/crates/biome_css_parser/tests/css_test_suite/ok/selector/pseudo_class/pseudo_class_module.css.snap b/crates/biome_css_parser/tests/css_test_suite/ok/selector/pseudo_class/pseudo_class_module.css.snap index ed8c96cbffb4..aeb77e3047ee 100644 --- a/crates/biome_css_parser/tests/css_test_suite/ok/selector/pseudo_class/pseudo_class_module.css.snap +++ b/crates/biome_css_parser/tests/css_test_suite/ok/selector/pseudo_class/pseudo_class_module.css.snap @@ -28,9 +28,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@0..1 ":" [] [], class: CssPseudoClassFunctionSelector { - name: CssIdentifier { - value_token: IDENT@1..7 "global" [] [], - }, + name: GLOBAL_KW@1..7 "global" [] [], l_paren_token: L_PAREN@7..8 "(" [] [], selector: CssComplexSelector { left: CssCompoundSelector { @@ -78,9 +76,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@22..24 ":" [Newline("\n")] [], class: CssPseudoClassFunctionSelector { - name: CssIdentifier { - value_token: IDENT@24..29 "local" [] [], - }, + name: LOCAL_KW@24..29 "local" [] [], l_paren_token: L_PAREN@29..30 "(" [] [], selector: CssComplexSelector { left: CssComplexSelector { @@ -144,9 +140,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@50..52 ":" [Newline("\n")] [], class: CssPseudoClassFunctionSelector { - name: CssIdentifier { - value_token: IDENT@52..58 "global" [] [], - }, + name: GLOBAL_KW@52..58 "global" [] [], l_paren_token: L_PAREN@58..59 "(" [] [], selector: CssComplexSelector { left: CssCompoundSelector { @@ -219,8 +213,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@0..20 0: COLON@0..1 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR@1..20 - 0: CSS_IDENTIFIER@1..7 - 0: IDENT@1..7 "global" [] [] + 0: GLOBAL_KW@1..7 "global" [] [] 1: L_PAREN@7..8 "(" [] [] 2: CSS_COMPLEX_SELECTOR@8..18 0: CSS_COMPOUND_SELECTOR@8..14 @@ -253,8 +246,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@22..48 0: COLON@22..24 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR@24..48 - 0: CSS_IDENTIFIER@24..29 - 0: IDENT@24..29 "local" [] [] + 0: LOCAL_KW@24..29 "local" [] [] 1: L_PAREN@29..30 "(" [] [] 2: CSS_COMPLEX_SELECTOR@30..46 0: CSS_COMPLEX_SELECTOR@30..41 @@ -298,8 +290,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@50..70 0: COLON@50..52 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR@52..70 - 0: CSS_IDENTIFIER@52..58 - 0: IDENT@52..58 "global" [] [] + 0: GLOBAL_KW@52..58 "global" [] [] 1: L_PAREN@58..59 "(" [] [] 2: CSS_COMPLEX_SELECTOR@59..69 0: CSS_COMPOUND_SELECTOR@59..65 diff --git a/crates/biome_css_parser/tests/css_test_suite/ok/selector/pseudo_class/pseudo_class_not.css.snap b/crates/biome_css_parser/tests/css_test_suite/ok/selector/pseudo_class/pseudo_class_not.css.snap index 0ca221b7768c..a7f385b3ac32 100644 --- a/crates/biome_css_parser/tests/css_test_suite/ok/selector/pseudo_class/pseudo_class_not.css.snap +++ b/crates/biome_css_parser/tests/css_test_suite/ok/selector/pseudo_class/pseudo_class_not.css.snap @@ -51,9 +51,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@0..1 ":" [] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@1..4 "not" [] [], - }, + name: NOT_KW@1..4 "not" [] [], l_paren_token: L_PAREN@4..5 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -88,9 +86,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@10..12 ":" [Newline("\n")] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@12..15 "not" [] [], - }, + name: NOT_KW@12..15 "not" [] [], l_paren_token: L_PAREN@15..19 "(" [] [Whitespace(" ")], selector_list: CssSelectorList [ CssCompoundSelector { @@ -125,9 +121,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@27..29 ":" [Newline("\n")] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@29..32 "not" [] [], - }, + name: NOT_KW@29..32 "not" [] [], l_paren_token: L_PAREN@32..33 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -167,9 +161,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@47..48 ":" [] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@48..51 "not" [] [], - }, + name: NOT_KW@48..51 "not" [] [], l_paren_token: L_PAREN@51..52 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -214,9 +206,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@68..69 ":" [] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@69..72 "not" [] [], - }, + name: NOT_KW@69..72 "not" [] [], l_paren_token: L_PAREN@72..73 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -254,9 +244,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@82..83 ":" [] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@83..86 "not" [] [], - }, + name: NOT_KW@83..86 "not" [] [], l_paren_token: L_PAREN@86..87 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -280,9 +268,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@93..94 ":" [] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@94..97 "not" [] [], - }, + name: NOT_KW@94..97 "not" [] [], l_paren_token: L_PAREN@97..98 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -327,9 +313,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@120..121 ":" [] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@121..124 "not" [] [], - }, + name: NOT_KW@121..124 "not" [] [], l_paren_token: L_PAREN@124..125 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -371,9 +355,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@135..137 ":" [Newline("\n")] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@137..140 "not" [] [], - }, + name: NOT_KW@137..140 "not" [] [], l_paren_token: L_PAREN@140..141 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -383,9 +365,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@141..142 ":" [] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@142..145 "not" [] [], - }, + name: NOT_KW@142..145 "not" [] [], l_paren_token: L_PAREN@145..146 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -431,9 +411,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@161..162 ":" [] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@162..165 "not" [] [], - }, + name: NOT_KW@162..165 "not" [] [], l_paren_token: L_PAREN@165..166 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -482,9 +460,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@182..183 ":" [] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@183..186 "not" [] [], - }, + name: NOT_KW@183..186 "not" [] [], l_paren_token: L_PAREN@186..187 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -532,9 +508,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@198..199 ":" [] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@199..202 "not" [] [], - }, + name: NOT_KW@199..202 "not" [] [], l_paren_token: L_PAREN@202..203 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -554,9 +528,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@207..208 ":" [] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@208..211 "not" [] [], - }, + name: NOT_KW@208..211 "not" [] [], l_paren_token: L_PAREN@211..212 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -604,9 +576,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@226..227 ":" [] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@227..230 "not" [] [], - }, + name: NOT_KW@227..230 "not" [] [], l_paren_token: L_PAREN@230..231 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -667,9 +637,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@250..251 ":" [] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@251..254 "not" [] [], - }, + name: NOT_KW@251..254 "not" [] [], l_paren_token: L_PAREN@254..255 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -729,9 +697,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@277..278 ":" [] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@278..281 "not" [] [], - }, + name: NOT_KW@278..281 "not" [] [], l_paren_token: L_PAREN@281..282 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -755,9 +721,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@297..298 ":" [] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@298..301 "not" [] [], - }, + name: NOT_KW@298..301 "not" [] [], l_paren_token: L_PAREN@301..302 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -797,9 +761,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@319..321 ":" [Newline("\n")] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@321..324 "not" [] [], - }, + name: NOT_KW@321..324 "not" [] [], l_paren_token: L_PAREN@324..325 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -855,9 +817,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@345..346 ":" [] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@346..349 "not" [] [], - }, + name: NOT_KW@346..349 "not" [] [], l_paren_token: L_PAREN@349..350 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -881,9 +841,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@356..357 ":" [] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@357..360 "not" [] [], - }, + name: NOT_KW@357..360 "not" [] [], l_paren_token: L_PAREN@360..361 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -925,9 +883,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@375..376 ":" [] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@376..379 "not" [] [], - }, + name: NOT_KW@376..379 "not" [] [], l_paren_token: L_PAREN@379..380 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -967,9 +923,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@394..395 ":" [] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@395..398 "not" [] [], - }, + name: NOT_KW@395..398 "not" [] [], l_paren_token: L_PAREN@398..399 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -1016,9 +970,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@415..416 ":" [] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@416..419 "not" [] [], - }, + name: NOT_KW@416..419 "not" [] [], l_paren_token: L_PAREN@419..420 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -1062,9 +1014,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@432..433 ":" [] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@433..436 "not" [] [], - }, + name: NOT_KW@433..436 "not" [] [], l_paren_token: L_PAREN@436..437 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -1074,9 +1024,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@437..438 ":" [] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@438..441 "not" [] [], - }, + name: NOT_KW@438..441 "not" [] [], l_paren_token: L_PAREN@441..442 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -1126,9 +1074,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@461..462 ":" [] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@462..465 "not" [] [], - }, + name: NOT_KW@462..465 "not" [] [], l_paren_token: L_PAREN@465..466 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -1138,9 +1084,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@466..467 ":" [] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@467..470 "not" [] [], - }, + name: NOT_KW@467..470 "not" [] [], l_paren_token: L_PAREN@470..471 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -1241,9 +1185,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@506..507 ":" [] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@507..510 "not" [] [], - }, + name: NOT_KW@507..510 "not" [] [], l_paren_token: L_PAREN@510..511 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -1253,9 +1195,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@511..512 ":" [] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@512..515 "not" [] [], - }, + name: NOT_KW@512..515 "not" [] [], l_paren_token: L_PAREN@515..516 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -1368,9 +1308,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@549..550 ":" [] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@550..553 "not" [] [], - }, + name: NOT_KW@550..553 "not" [] [], l_paren_token: L_PAREN@553..554 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -1411,9 +1349,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@572..574 ":" [Newline("\n")] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@574..577 "not" [] [], - }, + name: NOT_KW@574..577 "not" [] [], l_paren_token: L_PAREN@577..578 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -1473,8 +1409,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@0..8 0: COLON@0..1 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@1..8 - 0: CSS_IDENTIFIER@1..4 - 0: IDENT@1..4 "not" [] [] + 0: NOT_KW@1..4 "not" [] [] 1: L_PAREN@4..5 "(" [] [] 2: CSS_SELECTOR_LIST@5..6 0: CSS_COMPOUND_SELECTOR@5..6 @@ -1498,8 +1433,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@10..25 0: COLON@10..12 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@12..25 - 0: CSS_IDENTIFIER@12..15 - 0: IDENT@12..15 "not" [] [] + 0: NOT_KW@12..15 "not" [] [] 1: L_PAREN@15..19 "(" [] [Whitespace(" ")] 2: CSS_SELECTOR_LIST@19..23 0: CSS_COMPOUND_SELECTOR@19..23 @@ -1523,8 +1457,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@27..38 0: COLON@27..29 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@29..38 - 0: CSS_IDENTIFIER@29..32 - 0: IDENT@29..32 "not" [] [] + 0: NOT_KW@29..32 "not" [] [] 1: L_PAREN@32..33 "(" [] [] 2: CSS_SELECTOR_LIST@33..35 0: CSS_COMPOUND_SELECTOR@33..35 @@ -1551,8 +1484,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@47..64 0: COLON@47..48 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@48..64 - 0: CSS_IDENTIFIER@48..51 - 0: IDENT@48..51 "not" [] [] + 0: NOT_KW@48..51 "not" [] [] 1: L_PAREN@51..52 "(" [] [] 2: CSS_SELECTOR_LIST@52..62 0: CSS_COMPOUND_SELECTOR@52..62 @@ -1583,8 +1515,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@68..78 0: COLON@68..69 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@69..78 - 0: CSS_IDENTIFIER@69..72 - 0: IDENT@69..72 "not" [] [] + 0: NOT_KW@69..72 "not" [] [] 1: L_PAREN@72..73 "(" [] [] 2: CSS_SELECTOR_LIST@73..76 0: CSS_COMPOUND_SELECTOR@73..76 @@ -1610,8 +1541,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@82..93 0: COLON@82..83 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@83..93 - 0: CSS_IDENTIFIER@83..86 - 0: IDENT@83..86 "not" [] [] + 0: NOT_KW@83..86 "not" [] [] 1: L_PAREN@86..87 "(" [] [] 2: CSS_SELECTOR_LIST@87..92 0: CSS_COMPOUND_SELECTOR@87..92 @@ -1627,8 +1557,7 @@ CssRoot { 1: CSS_PSEUDO_CLASS_SELECTOR@93..108 0: COLON@93..94 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@94..108 - 0: CSS_IDENTIFIER@94..97 - 0: IDENT@94..97 "not" [] [] + 0: NOT_KW@94..97 "not" [] [] 1: L_PAREN@97..98 "(" [] [] 2: CSS_SELECTOR_LIST@98..106 0: CSS_COMPOUND_SELECTOR@98..106 @@ -1658,8 +1587,7 @@ CssRoot { 1: CSS_PSEUDO_CLASS_SELECTOR@120..133 0: COLON@120..121 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@121..133 - 0: CSS_IDENTIFIER@121..124 - 0: IDENT@121..124 "not" [] [] + 0: NOT_KW@121..124 "not" [] [] 1: L_PAREN@124..125 "(" [] [] 2: CSS_SELECTOR_LIST@125..131 0: CSS_COMPOUND_SELECTOR@125..131 @@ -1687,8 +1615,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@135..157 0: COLON@135..137 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@137..157 - 0: CSS_IDENTIFIER@137..140 - 0: IDENT@137..140 "not" [] [] + 0: NOT_KW@137..140 "not" [] [] 1: L_PAREN@140..141 "(" [] [] 2: CSS_SELECTOR_LIST@141..155 0: CSS_COMPOUND_SELECTOR@141..155 @@ -1698,8 +1625,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@141..155 0: COLON@141..142 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@142..155 - 0: CSS_IDENTIFIER@142..145 - 0: IDENT@142..145 "not" [] [] + 0: NOT_KW@142..145 "not" [] [] 1: L_PAREN@145..146 "(" [] [] 2: CSS_SELECTOR_LIST@146..154 0: CSS_COMPOUND_SELECTOR@146..154 @@ -1727,8 +1653,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@161..174 0: COLON@161..162 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@162..174 - 0: CSS_IDENTIFIER@162..165 - 0: IDENT@162..165 "not" [] [] + 0: NOT_KW@162..165 "not" [] [] 1: L_PAREN@165..166 "(" [] [] 2: CSS_SELECTOR_LIST@166..172 0: CSS_COMPOUND_SELECTOR@166..172 @@ -1762,8 +1687,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@182..190 0: COLON@182..183 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@183..190 - 0: CSS_IDENTIFIER@183..186 - 0: IDENT@183..186 "not" [] [] + 0: NOT_KW@183..186 "not" [] [] 1: L_PAREN@186..187 "(" [] [] 2: CSS_SELECTOR_LIST@187..188 0: CSS_COMPOUND_SELECTOR@187..188 @@ -1796,8 +1720,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@198..207 0: COLON@198..199 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@199..207 - 0: CSS_IDENTIFIER@199..202 - 0: IDENT@199..202 "not" [] [] + 0: NOT_KW@199..202 "not" [] [] 1: L_PAREN@202..203 "(" [] [] 2: CSS_SELECTOR_LIST@203..206 0: CSS_COMPOUND_SELECTOR@203..206 @@ -1811,8 +1734,7 @@ CssRoot { 1: CSS_PSEUDO_CLASS_SELECTOR@207..218 0: COLON@207..208 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@208..218 - 0: CSS_IDENTIFIER@208..211 - 0: IDENT@208..211 "not" [] [] + 0: NOT_KW@208..211 "not" [] [] 1: L_PAREN@211..212 "(" [] [] 2: CSS_SELECTOR_LIST@212..216 0: CSS_COMPOUND_SELECTOR@212..216 @@ -1845,8 +1767,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@226..244 0: COLON@226..227 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@227..244 - 0: CSS_IDENTIFIER@227..230 - 0: IDENT@227..230 "not" [] [] + 0: NOT_KW@227..230 "not" [] [] 1: L_PAREN@230..231 "(" [] [] 2: CSS_SELECTOR_LIST@231..242 0: CSS_COMPOUND_SELECTOR@231..234 @@ -1888,8 +1809,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@250..265 0: COLON@250..251 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@251..265 - 0: CSS_IDENTIFIER@251..254 - 0: IDENT@251..254 "not" [] [] + 0: NOT_KW@251..254 "not" [] [] 1: L_PAREN@254..255 "(" [] [] 2: CSS_SELECTOR_LIST@255..263 0: CSS_COMPOUND_SELECTOR@255..263 @@ -1929,8 +1849,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@277..297 0: COLON@277..278 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@278..297 - 0: CSS_IDENTIFIER@278..281 - 0: IDENT@278..281 "not" [] [] + 0: NOT_KW@278..281 "not" [] [] 1: L_PAREN@281..282 "(" [] [] 2: CSS_SELECTOR_LIST@282..296 0: CSS_COMPOUND_SELECTOR@282..296 @@ -1946,8 +1865,7 @@ CssRoot { 1: CSS_PSEUDO_CLASS_SELECTOR@297..317 0: COLON@297..298 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@298..317 - 0: CSS_IDENTIFIER@298..301 - 0: IDENT@298..301 "not" [] [] + 0: NOT_KW@298..301 "not" [] [] 1: L_PAREN@301..302 "(" [] [] 2: CSS_SELECTOR_LIST@302..315 0: CSS_COMPOUND_SELECTOR@302..315 @@ -1973,8 +1891,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@319..341 0: COLON@319..321 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@321..341 - 0: CSS_IDENTIFIER@321..324 - 0: IDENT@321..324 "not" [] [] + 0: NOT_KW@321..324 "not" [] [] 1: L_PAREN@324..325 "(" [] [] 2: CSS_SELECTOR_LIST@325..339 0: CSS_COMPOUND_SELECTOR@325..327 @@ -2012,8 +1929,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@345..356 0: COLON@345..346 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@346..356 - 0: CSS_IDENTIFIER@346..349 - 0: IDENT@346..349 "not" [] [] + 0: NOT_KW@346..349 "not" [] [] 1: L_PAREN@349..350 "(" [] [] 2: CSS_SELECTOR_LIST@350..355 0: CSS_COMPOUND_SELECTOR@350..355 @@ -2029,8 +1945,7 @@ CssRoot { 1: CSS_PSEUDO_CLASS_SELECTOR@356..371 0: COLON@356..357 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@357..371 - 0: CSS_IDENTIFIER@357..360 - 0: IDENT@357..360 "not" [] [] + 0: NOT_KW@357..360 "not" [] [] 1: L_PAREN@360..361 "(" [] [] 2: CSS_SELECTOR_LIST@361..369 0: CSS_COMPOUND_SELECTOR@361..369 @@ -2058,8 +1973,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@375..385 0: COLON@375..376 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@376..385 - 0: CSS_IDENTIFIER@376..379 - 0: IDENT@376..379 "not" [] [] + 0: NOT_KW@376..379 "not" [] [] 1: L_PAREN@379..380 "(" [] [] 2: CSS_SELECTOR_LIST@380..383 0: CSS_COMPOUND_SELECTOR@380..383 @@ -2086,8 +2000,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@394..411 0: COLON@394..395 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@395..411 - 0: CSS_IDENTIFIER@395..398 - 0: IDENT@395..398 "not" [] [] + 0: NOT_KW@395..398 "not" [] [] 1: L_PAREN@398..399 "(" [] [] 2: CSS_SELECTOR_LIST@399..409 0: CSS_COMPOUND_SELECTOR@399..409 @@ -2119,8 +2032,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@415..428 0: COLON@415..416 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@416..428 - 0: CSS_IDENTIFIER@416..419 - 0: IDENT@416..419 "not" [] [] + 0: NOT_KW@416..419 "not" [] [] 1: L_PAREN@419..420 "(" [] [] 2: CSS_SELECTOR_LIST@420..426 0: CSS_COMPOUND_SELECTOR@420..426 @@ -2149,8 +2061,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@432..451 0: COLON@432..433 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@433..451 - 0: CSS_IDENTIFIER@433..436 - 0: IDENT@433..436 "not" [] [] + 0: NOT_KW@433..436 "not" [] [] 1: L_PAREN@436..437 "(" [] [] 2: CSS_SELECTOR_LIST@437..449 0: CSS_COMPOUND_SELECTOR@437..449 @@ -2160,8 +2071,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@437..449 0: COLON@437..438 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@438..449 - 0: CSS_IDENTIFIER@438..441 - 0: IDENT@438..441 "not" [] [] + 0: NOT_KW@438..441 "not" [] [] 1: L_PAREN@441..442 "(" [] [] 2: CSS_SELECTOR_LIST@442..448 0: CSS_COMPOUND_SELECTOR@442..448 @@ -2191,8 +2101,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@461..496 0: COLON@461..462 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@462..496 - 0: CSS_IDENTIFIER@462..465 - 0: IDENT@462..465 "not" [] [] + 0: NOT_KW@462..465 "not" [] [] 1: L_PAREN@465..466 "(" [] [] 2: CSS_SELECTOR_LIST@466..494 0: CSS_COMPOUND_SELECTOR@466..494 @@ -2202,8 +2111,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@466..494 0: COLON@466..467 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@467..494 - 0: CSS_IDENTIFIER@467..470 - 0: IDENT@467..470 "not" [] [] + 0: NOT_KW@467..470 "not" [] [] 1: L_PAREN@470..471 "(" [] [] 2: CSS_SELECTOR_LIST@471..493 0: CSS_COMPOUND_SELECTOR@471..473 @@ -2271,8 +2179,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@506..541 0: COLON@506..507 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@507..541 - 0: CSS_IDENTIFIER@507..510 - 0: IDENT@507..510 "not" [] [] + 0: NOT_KW@507..510 "not" [] [] 1: L_PAREN@510..511 "(" [] [] 2: CSS_SELECTOR_LIST@511..539 0: CSS_COMPOUND_SELECTOR@511..539 @@ -2282,8 +2189,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@511..539 0: COLON@511..512 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@512..539 - 0: CSS_IDENTIFIER@512..515 - 0: IDENT@512..515 "not" [] [] + 0: NOT_KW@512..515 "not" [] [] 1: L_PAREN@515..516 "(" [] [] 2: CSS_SELECTOR_LIST@516..538 0: CSS_COMPOUND_SELECTOR@516..518 @@ -2360,8 +2266,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@549..570 0: COLON@549..550 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@550..570 - 0: CSS_IDENTIFIER@550..553 - 0: IDENT@550..553 "not" [] [] + 0: NOT_KW@550..553 "not" [] [] 1: L_PAREN@553..554 "(" [] [] 2: CSS_SELECTOR_LIST@554..568 0: CSS_COMPOUND_SELECTOR@554..568 @@ -2388,8 +2293,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@572..580 0: COLON@572..574 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@574..580 - 0: CSS_IDENTIFIER@574..577 - 0: IDENT@574..577 "not" [] [] + 0: NOT_KW@574..577 "not" [] [] 1: L_PAREN@577..578 "(" [] [] 2: CSS_SELECTOR_LIST@578..579 0: CSS_COMPOUND_SELECTOR@578..579 diff --git a/crates/biome_css_parser/tests/css_test_suite/ok/selector/pseudo_class/pseudo_class_past.css.snap b/crates/biome_css_parser/tests/css_test_suite/ok/selector/pseudo_class/pseudo_class_past.css.snap index c4425be809f7..602c501b6bcd 100644 --- a/crates/biome_css_parser/tests/css_test_suite/ok/selector/pseudo_class/pseudo_class_past.css.snap +++ b/crates/biome_css_parser/tests/css_test_suite/ok/selector/pseudo_class/pseudo_class_past.css.snap @@ -27,9 +27,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@0..1 ":" [] [], class: CssPseudoClassFunctionCompoundSelectorList { - name: CssIdentifier { - value_token: IDENT@1..5 "past" [] [], - }, + name: PAST_KW@1..5 "past" [] [], l_paren_token: L_PAREN@5..6 "(" [] [], compound_selector_list: CssCompoundSelectorList [ CssCompoundSelector { @@ -98,9 +96,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@23..25 ":" [Newline("\n")] [], class: CssPseudoClassFunctionCompoundSelectorList { - name: CssIdentifier { - value_token: IDENT@25..29 "past" [] [], - }, + name: PAST_KW@25..29 "past" [] [], l_paren_token: L_PAREN@29..30 "(" [] [], compound_selector_list: CssCompoundSelectorList [ CssCompoundSelector { @@ -193,8 +189,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@0..21 0: COLON@0..1 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_COMPOUND_SELECTOR_LIST@1..21 - 0: CSS_IDENTIFIER@1..5 - 0: IDENT@1..5 "past" [] [] + 0: PAST_KW@1..5 "past" [] [] 1: L_PAREN@5..6 "(" [] [] 2: CSS_COMPOUND_SELECTOR_LIST@6..19 0: CSS_COMPOUND_SELECTOR@6..7 @@ -243,8 +238,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@23..44 0: COLON@23..25 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_COMPOUND_SELECTOR_LIST@25..44 - 0: CSS_IDENTIFIER@25..29 - 0: IDENT@25..29 "past" [] [] + 0: PAST_KW@25..29 "past" [] [] 1: L_PAREN@29..30 "(" [] [] 2: CSS_COMPOUND_SELECTOR_LIST@30..43 0: CSS_COMPOUND_SELECTOR@30..31 diff --git a/crates/biome_css_parser/tests/css_test_suite/ok/selector/pseudo_class/pseudo_class_where.css.snap b/crates/biome_css_parser/tests/css_test_suite/ok/selector/pseudo_class/pseudo_class_where.css.snap index 1744e9c9d575..171d02b3ca15 100644 --- a/crates/biome_css_parser/tests/css_test_suite/ok/selector/pseudo_class/pseudo_class_where.css.snap +++ b/crates/biome_css_parser/tests/css_test_suite/ok/selector/pseudo_class/pseudo_class_where.css.snap @@ -37,9 +37,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@0..1 ":" [] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@1..6 "where" [] [], - }, + name: WHERE_KW@1..6 "where" [] [], l_paren_token: L_PAREN@6..7 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -87,9 +85,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@16..18 ":" [Newline("\n")] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@18..23 "where" [] [], - }, + name: WHERE_KW@18..23 "where" [] [], l_paren_token: L_PAREN@23..24 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -148,9 +144,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@37..39 ":" [Newline("\n")] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@39..44 "where" [] [], - }, + name: WHERE_KW@39..44 "where" [] [], l_paren_token: L_PAREN@44..45 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -233,9 +227,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@81..82 ":" [] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@82..87 "where" [] [], - }, + name: WHERE_KW@82..87 "where" [] [], l_paren_token: L_PAREN@87..88 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -287,9 +279,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@103..105 ":" [Newline("\n")] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@105..110 "where" [] [], - }, + name: WHERE_KW@105..110 "where" [] [], l_paren_token: L_PAREN@110..111 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -349,9 +339,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@130..131 ":" [] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@131..136 "where" [] [], - }, + name: WHERE_KW@131..136 "where" [] [], l_paren_token: L_PAREN@136..137 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -412,9 +400,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@156..157 ":" [] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@157..162 "where" [] [], - }, + name: WHERE_KW@157..162 "where" [] [], l_paren_token: L_PAREN@162..163 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -475,9 +461,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@182..183 ":" [] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@183..188 "where" [] [], - }, + name: WHERE_KW@183..188 "where" [] [], l_paren_token: L_PAREN@188..189 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -534,9 +518,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@209..210 ":" [] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@210..215 "where" [] [], - }, + name: WHERE_KW@210..215 "where" [] [], l_paren_token: L_PAREN@215..216 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -597,9 +579,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@236..238 ":" [Newline("\n")] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@238..243 "where" [] [], - }, + name: WHERE_KW@238..243 "where" [] [], l_paren_token: L_PAREN@243..244 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -677,9 +657,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@275..277 ":" [Newline("\n")] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@277..282 "where" [] [], - }, + name: WHERE_KW@277..282 "where" [] [], l_paren_token: L_PAREN@282..283 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -734,9 +712,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@303..305 ":" [Newline("\n")] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@305..310 "where" [] [], - }, + name: WHERE_KW@305..310 "where" [] [], l_paren_token: L_PAREN@310..311 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -795,9 +771,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@337..338 ":" [] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@338..343 "where" [] [], - }, + name: WHERE_KW@338..343 "where" [] [], l_paren_token: L_PAREN@343..344 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -807,9 +781,7 @@ CssRoot { CssPseudoClassSelector { colon_token: COLON@344..345 ":" [] [], class: CssPseudoClassFunctionSelectorList { - name: CssIdentifier { - value_token: IDENT@345..348 "not" [] [], - }, + name: NOT_KW@345..348 "not" [] [], l_paren_token: L_PAREN@348..349 "(" [] [], selector_list: CssSelectorList [ CssCompoundSelector { @@ -866,8 +838,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@0..10 0: COLON@0..1 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@1..10 - 0: CSS_IDENTIFIER@1..6 - 0: IDENT@1..6 "where" [] [] + 0: WHERE_KW@1..6 "where" [] [] 1: L_PAREN@6..7 "(" [] [] 2: CSS_SELECTOR_LIST@7..9 0: CSS_COMPOUND_SELECTOR@7..9 @@ -900,8 +871,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@16..31 0: COLON@16..18 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@18..31 - 0: CSS_IDENTIFIER@18..23 - 0: IDENT@18..23 "where" [] [] + 0: WHERE_KW@18..23 "where" [] [] 1: L_PAREN@23..24 "(" [] [] 2: CSS_SELECTOR_LIST@24..30 0: CSS_COMPOUND_SELECTOR@24..26 @@ -942,8 +912,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@37..66 0: COLON@37..39 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@39..66 - 0: CSS_IDENTIFIER@39..44 - 0: IDENT@39..44 "where" [] [] + 0: WHERE_KW@39..44 "where" [] [] 1: L_PAREN@44..45 "(" [] [] 2: CSS_SELECTOR_LIST@45..65 0: CSS_COMPOUND_SELECTOR@45..51 @@ -999,8 +968,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@81..101 0: COLON@81..82 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@82..101 - 0: CSS_IDENTIFIER@82..87 - 0: IDENT@82..87 "where" [] [] + 0: WHERE_KW@82..87 "where" [] [] 1: L_PAREN@87..88 "(" [] [] 2: CSS_SELECTOR_LIST@88..99 0: CSS_COMPOUND_SELECTOR@88..93 @@ -1036,8 +1004,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@103..129 0: COLON@103..105 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@105..129 - 0: CSS_IDENTIFIER@105..110 - 0: IDENT@105..110 "where" [] [] + 0: WHERE_KW@105..110 "where" [] [] 1: L_PAREN@110..111 "(" [] [] 2: CSS_SELECTOR_LIST@111..128 0: CSS_COMPOUND_SELECTOR@111..113 @@ -1080,8 +1047,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@130..155 0: COLON@130..131 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@131..155 - 0: CSS_IDENTIFIER@131..136 - 0: IDENT@131..136 "where" [] [] + 0: WHERE_KW@131..136 "where" [] [] 1: L_PAREN@136..137 "(" [] [] 2: CSS_SELECTOR_LIST@137..154 0: CSS_COMPOUND_SELECTOR@137..139 @@ -1124,8 +1090,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@156..178 0: COLON@156..157 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@157..178 - 0: CSS_IDENTIFIER@157..162 - 0: IDENT@157..162 "where" [] [] + 0: WHERE_KW@157..162 "where" [] [] 1: L_PAREN@162..163 "(" [] [] 2: CSS_SELECTOR_LIST@163..176 0: CSS_COMPOUND_SELECTOR@163..165 @@ -1167,8 +1132,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@182..205 0: COLON@182..183 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@183..205 - 0: CSS_IDENTIFIER@183..188 - 0: IDENT@183..188 "where" [] [] + 0: WHERE_KW@183..188 "where" [] [] 1: L_PAREN@188..189 "(" [] [] 2: CSS_SELECTOR_LIST@189..203 0: CSS_COMPOUND_SELECTOR@189..195 @@ -1206,8 +1170,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@209..234 0: COLON@209..210 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@210..234 - 0: CSS_IDENTIFIER@210..215 - 0: IDENT@210..215 "where" [] [] + 0: WHERE_KW@210..215 "where" [] [] 1: L_PAREN@215..216 "(" [] [] 2: CSS_SELECTOR_LIST@216..232 0: CSS_COMPOUND_SELECTOR@216..223 @@ -1248,8 +1211,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@236..262 0: COLON@236..238 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@238..262 - 0: CSS_IDENTIFIER@238..243 - 0: IDENT@238..243 "where" [] [] + 0: WHERE_KW@238..243 "where" [] [] 1: L_PAREN@243..244 "(" [] [] 2: CSS_SELECTOR_LIST@244..260 0: CSS_COMPOUND_SELECTOR@244..246 @@ -1303,8 +1265,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@275..301 0: COLON@275..277 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@277..301 - 0: CSS_IDENTIFIER@277..282 - 0: IDENT@277..282 "where" [] [] + 0: WHERE_KW@277..282 "where" [] [] 1: L_PAREN@282..283 "(" [] [] 2: CSS_SELECTOR_LIST@283..299 0: CSS_COMPOUND_SELECTOR@283..284 @@ -1341,8 +1302,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@303..333 0: COLON@303..305 ":" [Newline("\n")] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@305..333 - 0: CSS_IDENTIFIER@305..310 - 0: IDENT@305..310 "where" [] [] + 0: WHERE_KW@305..310 "where" [] [] 1: L_PAREN@310..311 "(" [] [] 2: CSS_SELECTOR_LIST@311..331 0: CSS_COMPOUND_SELECTOR@311..317 @@ -1381,8 +1341,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@337..358 0: COLON@337..338 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@338..358 - 0: CSS_IDENTIFIER@338..343 - 0: IDENT@338..343 "where" [] [] + 0: WHERE_KW@338..343 "where" [] [] 1: L_PAREN@343..344 "(" [] [] 2: CSS_SELECTOR_LIST@344..356 0: CSS_COMPOUND_SELECTOR@344..356 @@ -1392,8 +1351,7 @@ CssRoot { 0: CSS_PSEUDO_CLASS_SELECTOR@344..356 0: COLON@344..345 ":" [] [] 1: CSS_PSEUDO_CLASS_FUNCTION_SELECTOR_LIST@345..356 - 0: CSS_IDENTIFIER@345..348 - 0: IDENT@345..348 "not" [] [] + 0: NOT_KW@345..348 "not" [] [] 1: L_PAREN@348..349 "(" [] [] 2: CSS_SELECTOR_LIST@349..355 0: CSS_COMPOUND_SELECTOR@349..355 diff --git a/crates/biome_css_parser/tests/spec_test.rs b/crates/biome_css_parser/tests/spec_test.rs index 707f865d4392..b5da217c25d3 100644 --- a/crates/biome_css_parser/tests/spec_test.rs +++ b/crates/biome_css_parser/tests/spec_test.rs @@ -134,7 +134,7 @@ pub fn run(test_case: &str, _snapshot_name: &str, test_directory: &str, outcome_ #[test] pub fn quick_test() { let code = r#" - @charset dsadsa; + :host(.footer) {} "#; let root = parse_css( diff --git a/crates/biome_css_syntax/src/generated/kind.rs b/crates/biome_css_syntax/src/generated/kind.rs index ab22a7f95ded..86db7ee8e3ef 100644 --- a/crates/biome_css_syntax/src/generated/kind.rs +++ b/crates/biome_css_syntax/src/generated/kind.rs @@ -209,25 +209,27 @@ pub enum CssSyntaxKind { DIR_KW, LOCAL_KW, GLOBAL_KW, - MOZANY_KW, - WEBKITANY_KW, + _MOZ_ANY_KW, + _WEBKIT_ANY_KW, CURRENT_KW, PAST_KW, FUTURE_KW, HOST_KW, - HOSTCONTEXT_KW, + HOST_CONTEXT_KW, MATCHES_KW, IS_KW, WHERE_KW, HAS_KW, LANG_KW, - NTHCHILD_KW, - NTHLASTCHILD_KW, - NTHOFTYPE_KW, - NTHLASTOFTYPE_KW, - NTHCOL_KW, - NTHLASTCOL_KW, + NTH_CHILD_KW, + NTH_LAST_CHILD_KW, + NTH_OF_TYPE_KW, + NTH_LAST_OF_TYPE_KW, + NTH_COL_KW, + NTH_LAST_COL_KW, CHARSET_KW, + COLOR_PROFILE_KW, + COUNTER_STYLE_KW, LTR_KW, RTL_KW, N_KW, @@ -314,6 +316,8 @@ pub enum CssSyntaxKind { CSS_ATTRIBUTE_MATCHER_VALUE, CSS_AT_RULE, CSS_CHARSET_AT_RULE, + CSS_COLOR_PROFILE_AT_RULE, + CSS_COUNTER_STYLE_AT_RULE, CSS_KEYFRAMES_AT_RULE, CSS_KEYFRAMES_BODY, CSS_MEDIA_AT_RULE, @@ -537,25 +541,27 @@ impl CssSyntaxKind { "dir" => DIR_KW, "local" => LOCAL_KW, "global" => GLOBAL_KW, - "mozany" => MOZANY_KW, - "webkitany" => WEBKITANY_KW, + "_moz_any" => _MOZ_ANY_KW, + "_webkit_any" => _WEBKIT_ANY_KW, "current" => CURRENT_KW, "past" => PAST_KW, "future" => FUTURE_KW, "host" => HOST_KW, - "hostcontext" => HOSTCONTEXT_KW, + "host_context" => HOST_CONTEXT_KW, "matches" => MATCHES_KW, "is" => IS_KW, "where" => WHERE_KW, "has" => HAS_KW, "lang" => LANG_KW, - "nthchild" => NTHCHILD_KW, - "nthlastchild" => NTHLASTCHILD_KW, - "nthoftype" => NTHOFTYPE_KW, - "nthlastoftype" => NTHLASTOFTYPE_KW, - "nthcol" => NTHCOL_KW, - "nthlastcol" => NTHLASTCOL_KW, + "nth_child" => NTH_CHILD_KW, + "nth_last_child" => NTH_LAST_CHILD_KW, + "nth_of_type" => NTH_OF_TYPE_KW, + "nth_last_of_type" => NTH_LAST_OF_TYPE_KW, + "nth_col" => NTH_COL_KW, + "nth_last_col" => NTH_LAST_COL_KW, "charset" => CHARSET_KW, + "color_profile" => COLOR_PROFILE_KW, + "counter_style" => COUNTER_STYLE_KW, "ltr" => LTR_KW, "rtl" => RTL_KW, "n" => N_KW, @@ -767,25 +773,27 @@ impl CssSyntaxKind { DIR_KW => "dir", LOCAL_KW => "local", GLOBAL_KW => "global", - MOZANY_KW => "mozany", - WEBKITANY_KW => "webkitany", + _MOZ_ANY_KW => "_moz_any", + _WEBKIT_ANY_KW => "_webkit_any", CURRENT_KW => "current", PAST_KW => "past", FUTURE_KW => "future", HOST_KW => "host", - HOSTCONTEXT_KW => "hostcontext", + HOST_CONTEXT_KW => "host_context", MATCHES_KW => "matches", IS_KW => "is", WHERE_KW => "where", HAS_KW => "has", LANG_KW => "lang", - NTHCHILD_KW => "nthchild", - NTHLASTCHILD_KW => "nthlastchild", - NTHOFTYPE_KW => "nthoftype", - NTHLASTOFTYPE_KW => "nthlastoftype", - NTHCOL_KW => "nthcol", - NTHLASTCOL_KW => "nthlastcol", + NTH_CHILD_KW => "nth_child", + NTH_LAST_CHILD_KW => "nth_last_child", + NTH_OF_TYPE_KW => "nth_of_type", + NTH_LAST_OF_TYPE_KW => "nth_last_of_type", + NTH_COL_KW => "nth_col", + NTH_LAST_COL_KW => "nth_last_col", CHARSET_KW => "charset", + COLOR_PROFILE_KW => "color_profile", + COUNTER_STYLE_KW => "counter_style", LTR_KW => "ltr", RTL_KW => "rtl", N_KW => "n", @@ -803,4 +811,4 @@ impl CssSyntaxKind { } #[doc = r" Utility macro for creating a SyntaxKind through simple macro syntax"] #[macro_export] -macro_rules ! T { [;] => { $ crate :: CssSyntaxKind :: SEMICOLON } ; [,] => { $ crate :: CssSyntaxKind :: COMMA } ; ['('] => { $ crate :: CssSyntaxKind :: L_PAREN } ; [')'] => { $ crate :: CssSyntaxKind :: R_PAREN } ; ['{'] => { $ crate :: CssSyntaxKind :: L_CURLY } ; ['}'] => { $ crate :: CssSyntaxKind :: R_CURLY } ; ['['] => { $ crate :: CssSyntaxKind :: L_BRACK } ; [']'] => { $ crate :: CssSyntaxKind :: R_BRACK } ; [<] => { $ crate :: CssSyntaxKind :: L_ANGLE } ; [>] => { $ crate :: CssSyntaxKind :: R_ANGLE } ; [~] => { $ crate :: CssSyntaxKind :: TILDE } ; [#] => { $ crate :: CssSyntaxKind :: HASH } ; [&] => { $ crate :: CssSyntaxKind :: AMP } ; [|] => { $ crate :: CssSyntaxKind :: PIPE } ; [||] => { $ crate :: CssSyntaxKind :: PIPE2 } ; [+] => { $ crate :: CssSyntaxKind :: PLUS } ; [*] => { $ crate :: CssSyntaxKind :: STAR } ; [/] => { $ crate :: CssSyntaxKind :: SLASH } ; [^] => { $ crate :: CssSyntaxKind :: CARET } ; [%] => { $ crate :: CssSyntaxKind :: PERCENT } ; [.] => { $ crate :: CssSyntaxKind :: DOT } ; [:] => { $ crate :: CssSyntaxKind :: COLON } ; [::] => { $ crate :: CssSyntaxKind :: COLON2 } ; [=] => { $ crate :: CssSyntaxKind :: EQ } ; [!] => { $ crate :: CssSyntaxKind :: BANG } ; [!=] => { $ crate :: CssSyntaxKind :: NEQ } ; [-] => { $ crate :: CssSyntaxKind :: MINUS } ; [<=] => { $ crate :: CssSyntaxKind :: LTEQ } ; [>=] => { $ crate :: CssSyntaxKind :: GTEQ } ; [+=] => { $ crate :: CssSyntaxKind :: PLUSEQ } ; [|=] => { $ crate :: CssSyntaxKind :: PIPEEQ } ; [&=] => { $ crate :: CssSyntaxKind :: AMPEQ } ; [^=] => { $ crate :: CssSyntaxKind :: CARETEQ } ; [/=] => { $ crate :: CssSyntaxKind :: SLASHEQ } ; [*=] => { $ crate :: CssSyntaxKind :: STAREQ } ; [%=] => { $ crate :: CssSyntaxKind :: PERCENTEQ } ; [@] => { $ crate :: CssSyntaxKind :: AT } ; ["$="] => { $ crate :: CssSyntaxKind :: DOLLAR_EQ } ; [~=] => { $ crate :: CssSyntaxKind :: TILDE_EQ } ; [-->] => { $ crate :: CssSyntaxKind :: CDC } ; [] => { $ crate :: CssSyntaxKind :: CDC } ; [