Parsing of pseudo classes without node tests.
This commit is contained in:
parent
a6b0bd96c8
commit
91f9cc984b
|
@ -122,14 +122,25 @@ rule
|
||||||
;
|
;
|
||||||
|
|
||||||
pseudo_class
|
pseudo_class
|
||||||
|
# :root
|
||||||
|
: pseudo_name { s(:pseudo, val[0]) }
|
||||||
|
|
||||||
# x:root
|
# x:root
|
||||||
: path_member T_COLON T_IDENT { s(:pseudo, val[2], val[0]) }
|
| path_member pseudo_name { s(:pseudo, val[1], val[0]) }
|
||||||
|
|
||||||
|
# :nth-child(2)
|
||||||
|
| pseudo_name pseudo_args { s(:pseudo, val[0], nil, val[1]) }
|
||||||
|
|
||||||
# x:nth-child(2)
|
# x:nth-child(2)
|
||||||
| path_member T_COLON T_IDENT T_LPAREN pseudo_arg T_RPAREN
|
| path_member pseudo_name pseudo_args { s(:pseudo, val[1], val[0], val[2]) }
|
||||||
{
|
;
|
||||||
s(:pseudo, val[2], val[0], val[4])
|
|
||||||
}
|
pseudo_name
|
||||||
|
: T_COLON T_IDENT { val[1] }
|
||||||
|
;
|
||||||
|
|
||||||
|
pseudo_args
|
||||||
|
: T_LPAREN pseudo_arg T_RPAREN { val[1] }
|
||||||
;
|
;
|
||||||
|
|
||||||
pseudo_arg
|
pseudo_arg
|
||||||
|
|
|
@ -2,11 +2,15 @@ require 'spec_helper'
|
||||||
|
|
||||||
describe Oga::CSS::Parser do
|
describe Oga::CSS::Parser do
|
||||||
context 'pseudo classes' do
|
context 'pseudo classes' do
|
||||||
example 'parse the :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, 'root', s(:test, nil, 'x'))
|
||||||
end
|
end
|
||||||
|
|
||||||
example 'parse the x:nth-child pseudo class' do
|
example 'parse the :root pseudo class' do
|
||||||
|
parse_css(':root').should == s(:pseudo, 'root')
|
||||||
|
end
|
||||||
|
|
||||||
|
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',
|
'nth-child',
|
||||||
|
@ -15,6 +19,15 @@ describe Oga::CSS::Parser do
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
example 'parse the :nth-child(1) pseudo class' do
|
||||||
|
parse_css(':nth-child(1)').should == s(
|
||||||
|
:pseudo,
|
||||||
|
'nth-child',
|
||||||
|
nil,
|
||||||
|
s(:int, 1)
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
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,
|
||||||
|
|
Loading…
Reference in New Issue