@@ -350,6 +350,73 @@ def visit_whitespace_token(node)
350350 # Selector nodes
351351 #-------------------------------------------------------------------------
352352
353+ # Visit a Selectors::ChildCombinator node.
354+ def visit_child_combinator ( node )
355+ token ( "child-combinator" ) do
356+ q . breakable
357+ q . pp ( node . value )
358+ end
359+ end
360+
361+ # Visit a Selectors::ColumnSiblingCombinator node.
362+ def visit_column_sibling_combinator ( node )
363+ token ( "column-sibling-combinator" ) do
364+ q . breakable
365+ q . pp ( node . value )
366+ end
367+ end
368+
369+ # Visit a Selectors::ComplexSelector node.
370+ def visit_complex_selector ( node )
371+ token ( "complex-selector" ) do
372+ node . child_nodes . each do |child |
373+ q . breakable
374+ q . pp ( child )
375+ end
376+ end
377+ end
378+
379+ # Visit a Selectors::CompoundSelector node.
380+ def visit_compound_selector ( node )
381+ token ( "compound-selector" ) do
382+ q . breakable
383+ token ( "type" ) do
384+ q . breakable
385+ q . pp ( node . type )
386+ end
387+
388+ q . breakable
389+ q . text ( "(subclasses" )
390+
391+ if node . subclasses . any?
392+ q . nest ( 2 ) do
393+ q . breakable
394+ q . seplist ( node . subclasses ) { |subclass | q . pp ( subclass ) }
395+ end
396+
397+ q . breakable ( "" )
398+ end
399+
400+ q . text ( ")" )
401+
402+ q . breakable ( "" )
403+ q . text ( "(pseudo-elements" )
404+
405+ if node . pseudo_elements . any?
406+ q . nest ( 2 ) do
407+ q . breakable
408+ q . seplist ( node . pseudo_elements ) do |pseudo_element |
409+ q . pp ( pseudo_element )
410+ end
411+ end
412+
413+ q . breakable ( "" )
414+ end
415+
416+ q . text ( ")" )
417+ end
418+ end
419+
353420 # Visit a Selectors::ClassSelector node.
354421 def visit_class_selector ( node )
355422 token ( "class-selector" ) do
@@ -358,6 +425,14 @@ def visit_class_selector(node)
358425 end
359426 end
360427
428+ # Visit a Selectors::DescendantCombinator node.
429+ def visit_descendant_combinator ( node )
430+ token ( "descendant-combinator" ) do
431+ q . breakable
432+ q . pp ( node . value )
433+ end
434+ end
435+
361436 # Visit a Selectors::IdSelector node.
362437 def visit_id_selector ( node )
363438 token ( "id-selector" ) do
@@ -366,6 +441,14 @@ def visit_id_selector(node)
366441 end
367442 end
368443
444+ # Visit a Selectors::NextSiblingCombinator node.
445+ def visit_next_sibling_combinator ( node )
446+ token ( "next-sibling-combinator" ) do
447+ q . breakable
448+ q . pp ( node . value )
449+ end
450+ end
451+
369452 # Visit a Selectors::PseudoClassSelector node.
370453 def visit_pseudo_class_selector ( node )
371454 token ( "pseudo-class-selector" ) do
@@ -404,6 +487,14 @@ def visit_pseudo_element_selector(node)
404487 end
405488 end
406489
490+ # Visit a Selectors::SubsequentSiblingCombinator node.
491+ def visit_subsequent_sibling_combinator ( node )
492+ token ( "subsequent-sibling-combinator" ) do
493+ q . breakable
494+ q . pp ( node . value )
495+ end
496+ end
497+
407498 # Visit a Selectors::TypeSelector node.
408499 def visit_type_selector ( node )
409500 token ( "type-selector" ) do
@@ -430,65 +521,6 @@ def visit_wqname(node)
430521 end
431522 end
432523
433- # Visit a Selectors::Combinator node.
434- def visit_combinator ( node )
435- token ( node . class ::PP_NAME ) do
436- q . breakable
437- q . pp ( node . value )
438- end
439- end
440-
441- # Visit a Selectors::ComplexSelector node.
442- def visit_complex_selector ( node )
443- token ( "complex-selector" ) do
444- node . child_nodes . each do |child |
445- q . breakable
446- q . pp ( child )
447- end
448- end
449- end
450-
451- # Visit a Selectors::CompoundSelector node.
452- def visit_compound_selector ( node )
453- token ( "compound-selector" ) do
454- q . breakable
455- token ( "type" ) do
456- q . breakable
457- q . pp ( node . type )
458- end
459-
460- q . breakable
461- q . text ( "(subclasses" )
462-
463- if node . subclasses . any?
464- q . nest ( 2 ) do
465- q . breakable
466- q . seplist ( node . subclasses ) { |subclass | q . pp ( subclass ) }
467- end
468-
469- q . breakable ( "" )
470- end
471-
472- q . text ( ")" )
473-
474- q . breakable ( "" )
475- q . text ( "(pseudo-elements" )
476-
477- if node . pseudo_elements . any?
478- q . nest ( 2 ) do
479- q . breakable
480- q . seplist ( node . pseudo_elements ) do |pseudo_element |
481- q . pp ( pseudo_element )
482- end
483- end
484-
485- q . breakable ( "" )
486- end
487-
488- q . text ( ")" )
489- end
490- end
491-
492524 private
493525
494526 def token ( name )
0 commit comments