Swap child node order for CSS pseudo classes.

This commit is contained in:
Yorick Peterse 2014-10-16 23:18:14 +02:00
parent 63d27fa709
commit ea2baa2020
5 changed files with 25 additions and 25 deletions

View File

@ -117,16 +117,16 @@ rule
pseudo_class pseudo_class
# :root # :root
: pseudo_name { s(:pseudo, val[0]) } : pseudo_name { s(:pseudo, nil, val[0]) }
# x:root # x:root
| path_member pseudo_name { s(:pseudo, val[1], val[0]) } | path_member pseudo_name { s(:pseudo, val[0], val[1]) }
# :nth-child(2) # :nth-child(2)
| pseudo_name pseudo_args { s(:pseudo, val[0], nil, val[1]) } | pseudo_name pseudo_args { s(:pseudo, nil, val[0], val[1]) }
# x:nth-child(2) # x:nth-child(2)
| path_member pseudo_name pseudo_args { s(:pseudo, val[1], val[0], val[2]) } | path_member pseudo_name pseudo_args { s(:pseudo, val[0], val[1], val[2]) }
; ;
pseudo_name pseudo_name

View File

@ -77,7 +77,7 @@ describe Oga::CSS::Parser do
example 'parse a pseudo class followed by the ~ axis' do example 'parse a pseudo class followed by the ~ axis' do
parse_css('x:root ~ a').should == s( parse_css('x:root ~ a').should == s(
:following, :following,
s(:pseudo, 'root', s(:test, nil, 'x')), s(:pseudo, s(:test, nil, 'x'), 'root'),
s(:test, nil, 'a') s(:test, nil, 'a')
) )
end end
@ -86,7 +86,7 @@ describe Oga::CSS::Parser do
parse_css('a ~ x:root').should == s( parse_css('a ~ x:root').should == s(
:following, :following,
s(:test, nil, 'a'), s(:test, nil, 'a'),
s(:pseudo, 'root', s(:test, nil, 'x')) s(:pseudo, s(:test, nil, 'x'), 'root')
) )
end end
end end

View File

@ -19,13 +19,13 @@ describe Oga::CSS::Parser do
end end
example 'parse a selector using a class and a pseudo class' do example 'parse a selector using a class and a pseudo class' do
parse_css('.foo:root').should == s(:pseudo, 'root', s(:class, nil, 'foo')) parse_css('.foo:root').should == s(:pseudo, s(:class, nil, 'foo'), 'root')
end end
example 'parse a selector using a pseudo class and a class' do example 'parse a selector using a pseudo class and a class' do
parse_css('x:root.foo').should == s( parse_css('x:root.foo').should == s(
:class, :class,
s(:pseudo, 'root', s(:test, nil, 'x')), s(:pseudo, s(:test, nil, 'x'), 'root'),
'foo' 'foo'
) )
end end

View File

@ -15,13 +15,13 @@ describe Oga::CSS::Parser do
end end
example 'parse a selector using an ID and a pseudo class' do example 'parse a selector using an ID and a pseudo class' do
parse_css('#foo:root').should == s(:pseudo, 'root', s(:id, nil, 'foo')) parse_css('#foo:root').should == s(:pseudo, s(:id, nil, 'foo'), 'root')
end end
example 'parse a selector using a pseudo class and an ID' do example 'parse a selector using a pseudo class and an ID' do
parse_css('x:root#foo').should == s( parse_css('x:root#foo').should == s(
:id, :id,
s(:pseudo, 'root', s(:test, nil, 'x')), s(:pseudo, s(:test, nil, 'x'), 'root'),
'foo' 'foo'
) )
end end

View File

@ -3,18 +3,18 @@ require 'spec_helper'
describe Oga::CSS::Parser do describe Oga::CSS::Parser do
context 'pseudo classes' do context 'pseudo classes' do
example 'parse the x:root pseudo class' do example 'parse the x:root pseudo class' do
parse_css('x:root').should == s(:pseudo, 'root', s(:test, nil, 'x')) parse_css('x:root').should == s(:pseudo, s(:test, nil, 'x'), 'root')
end end
example 'parse the :root pseudo class' do example 'parse the :root pseudo class' do
parse_css(':root').should == s(:pseudo, 'root') parse_css(':root').should == s(:pseudo, nil, 'root')
end end
example 'parse the x:nth-child(1) pseudo class' do example 'parse the x:nth-child(1) pseudo class' do
parse_css('x:nth-child(1)').should == s( parse_css('x:nth-child(1)').should == s(
:pseudo, :pseudo,
'nth-child',
s(:test, nil, 'x'), s(:test, nil, 'x'),
'nth-child',
s(:int, 1) s(:int, 1)
) )
end end
@ -22,8 +22,8 @@ describe Oga::CSS::Parser do
example 'parse the :nth-child(1) pseudo class' do example 'parse the :nth-child(1) pseudo class' do
parse_css(':nth-child(1)').should == s( parse_css(':nth-child(1)').should == s(
:pseudo, :pseudo,
'nth-child',
nil, nil,
'nth-child',
s(:int, 1) s(:int, 1)
) )
end end
@ -31,8 +31,8 @@ describe Oga::CSS::Parser do
example 'parse the x:nth-child(odd) pseudo class' do example 'parse the x:nth-child(odd) pseudo class' do
parse_css('x:nth-child(odd)').should == s( parse_css('x:nth-child(odd)').should == s(
:pseudo, :pseudo,
'nth-child',
s(:test, nil, 'x'), s(:test, nil, 'x'),
'nth-child',
s(:odd) s(:odd)
) )
end end
@ -40,8 +40,8 @@ describe Oga::CSS::Parser do
example 'parse the x:nth-child(even) pseudo class' do example 'parse the x:nth-child(even) pseudo class' do
parse_css('x:nth-child(even)').should == s( parse_css('x:nth-child(even)').should == s(
:pseudo, :pseudo,
'nth-child',
s(:test, nil, 'x'), s(:test, nil, 'x'),
'nth-child',
s(:even) s(:even)
) )
end end
@ -49,8 +49,8 @@ describe Oga::CSS::Parser do
example 'parse the x:nth-child(n) pseudo class' do example 'parse the x:nth-child(n) pseudo class' do
parse_css('x:nth-child(n)').should == s( parse_css('x:nth-child(n)').should == s(
:pseudo, :pseudo,
'nth-child',
s(:test, nil, 'x'), s(:test, nil, 'x'),
'nth-child',
s(:nth) s(:nth)
) )
end end
@ -58,8 +58,8 @@ describe Oga::CSS::Parser do
example 'parse the x:nth-child(-n) pseudo class' do example 'parse the x:nth-child(-n) pseudo class' do
parse_css('x:nth-child(-n)').should == s( parse_css('x:nth-child(-n)').should == s(
:pseudo, :pseudo,
'nth-child',
s(:test, nil, 'x'), s(:test, nil, 'x'),
'nth-child',
s(:nth) s(:nth)
) )
end end
@ -67,8 +67,8 @@ describe Oga::CSS::Parser do
example 'parse the x:nth-child(2n) pseudo class' do example 'parse the x:nth-child(2n) pseudo class' do
parse_css('x:nth-child(2n)').should == s( parse_css('x:nth-child(2n)').should == s(
:pseudo, :pseudo,
'nth-child',
s(:test, nil, 'x'), s(:test, nil, 'x'),
'nth-child',
s(:nth, s(:int, 2)) s(:nth, s(:int, 2))
) )
end end
@ -76,8 +76,8 @@ describe Oga::CSS::Parser do
example 'parse the x:nth-child(2n+1) pseudo class' do example 'parse the x:nth-child(2n+1) pseudo class' do
parse_css('x:nth-child(2n+1)').should == s( parse_css('x:nth-child(2n+1)').should == s(
:pseudo, :pseudo,
'nth-child',
s(:test, nil, 'x'), s(:test, nil, 'x'),
'nth-child',
s(:nth, s(:int, 2), s(:int, 1)) s(:nth, s(:int, 2), s(:int, 1))
) )
end end
@ -85,8 +85,8 @@ describe Oga::CSS::Parser do
example 'parse the x:nth-child(2n-1) pseudo class' do example 'parse the x:nth-child(2n-1) pseudo class' do
parse_css('x:nth-child(2n-1)').should == s( parse_css('x:nth-child(2n-1)').should == s(
:pseudo, :pseudo,
'nth-child',
s(:test, nil, 'x'), s(:test, nil, 'x'),
'nth-child',
s(:nth, s(:int, 2), s(:int, -1)) s(:nth, s(:int, 2), s(:int, -1))
) )
end end
@ -94,8 +94,8 @@ describe Oga::CSS::Parser do
example 'parse the x:nth-child(-2n-1) pseudo class' do example 'parse the x:nth-child(-2n-1) pseudo class' do
parse_css('x:nth-child(-2n-1)').should == s( parse_css('x:nth-child(-2n-1)').should == s(
:pseudo, :pseudo,
'nth-child',
s(:test, nil, 'x'), s(:test, nil, 'x'),
'nth-child',
s(:nth, s(:int, -2), s(:int, -1)) s(:nth, s(:int, -2), s(:int, -1))
) )
end end
@ -103,16 +103,16 @@ describe Oga::CSS::Parser do
example 'parse two pseudo selectors' do example 'parse two pseudo selectors' do
parse_css('x:focus:hover').should == s( parse_css('x:focus:hover').should == s(
:pseudo, :pseudo,
'hover', s(:pseudo, s(:test, nil, 'x'), 'focus'),
s(:pseudo, 'focus', s(:test, nil, 'x')) 'hover'
) )
end end
example 'parse a pseudo class with an identifier as the argument' do example 'parse a pseudo class with an identifier as the argument' do
parse_css('x:lang(fr)').should == s( parse_css('x:lang(fr)').should == s(
:pseudo, :pseudo,
'lang',
s(:test, nil, 'x'), s(:test, nil, 'x'),
'lang',
s(:test, nil, 'fr') s(:test, nil, 'fr')
) )
end end