Rename CSS "node operators" to "axes".
This commit is contained in:
		
							parent
							
								
									197cb052be
								
							
						
					
					
						commit
						50ee66419e
					
				|  | @ -14,11 +14,12 @@ rule | |||
|   expression | ||||
|     : path | ||||
|     | node_test | ||||
|     | node_operators | ||||
|     | axis | ||||
|     ; | ||||
| 
 | ||||
|   path_member | ||||
|     : node_test | ||||
|     | axis | ||||
|     ; | ||||
| 
 | ||||
|   path_members | ||||
|  | @ -51,8 +52,8 @@ rule | |||
|     ; | ||||
| 
 | ||||
|   predicate_members | ||||
|     : node_test { val[0] } | ||||
|     | operator  { val[0] } | ||||
|     : node_test | ||||
|     | operator | ||||
|     ; | ||||
| 
 | ||||
|   operator | ||||
|  | @ -64,12 +65,23 @@ rule | |||
|     | op_members T_HYPHEN_IN   op_members { s(:hyphen_in, val[0],val[2]) } | ||||
|     ; | ||||
| 
 | ||||
|   node_operators | ||||
|     : node_test T_CHILD     node_test { s(:child, val[0], val[2]) } | ||||
|     | node_test T_FOLLOWING node_test { s(:following, val[0], val[2]) } | ||||
|   axis | ||||
|     # x > y | ||||
|     : node_test T_CHILD node_test | ||||
|       { | ||||
|         s(:axis, 'child', val[0], val[2]) | ||||
|       } | ||||
| 
 | ||||
|     # x + y | ||||
|     | node_test T_FOLLOWING node_test | ||||
|       { | ||||
|         s(:axis, 'following', val[0], val[2]) | ||||
|       } | ||||
| 
 | ||||
|     # x ~ y | ||||
|     | node_test T_FOLLOWING_DIRECT node_test | ||||
|       { | ||||
|         s(:following_direct, val[0], val[2]) | ||||
|         s(:axis, 'following-direct', val[0], val[2]) | ||||
|       } | ||||
|     ; | ||||
| 
 | ||||
|  |  | |||
|  | @ -0,0 +1,40 @@ | |||
| require 'spec_helper' | ||||
| 
 | ||||
| describe Oga::CSS::Parser do | ||||
|   context 'axes' do | ||||
|     example 'parse the > axis' do | ||||
|       parse_css('x > y').should == s( | ||||
|         :axis, | ||||
|         'child', | ||||
|         s(:test, nil, 'x'), | ||||
|         s(:test, nil, 'y') | ||||
|       ) | ||||
|     end | ||||
| 
 | ||||
|     example 'parse the + axis' do | ||||
|       parse_css('x + y').should == s( | ||||
|         :axis, | ||||
|         'following-direct', | ||||
|         s(:test, nil, 'x'), | ||||
|         s(:test, nil, 'y') | ||||
|       ) | ||||
|     end | ||||
| 
 | ||||
|     example 'parse the ~ axis' do | ||||
|       parse_css('x ~ y').should == s( | ||||
|         :axis, | ||||
|         'following', | ||||
|         s(:test, nil, 'x'), | ||||
|         s(:test, nil, 'y') | ||||
|       ) | ||||
|     end | ||||
| 
 | ||||
|     example 'parse the ~ axis followed by another node test' do | ||||
|       parse_css('x ~ y z').should == s( | ||||
|         :path, | ||||
|         s(:axis, 'following', s(:test, nil, 'x'), s(:test, nil, 'y')), | ||||
|         s(:test, nil, 'z') | ||||
|       ) | ||||
|     end | ||||
|   end | ||||
| end | ||||
|  | @ -55,29 +55,5 @@ describe Oga::CSS::Parser do | |||
|         s(:hyphen_in, s(:test, nil, 'a'), s(:string, 'b')) | ||||
|       ) | ||||
|     end | ||||
| 
 | ||||
|     example 'parse the > operator' do | ||||
|       parse_css('x > y').should == s( | ||||
|         :child, | ||||
|         s(:test, nil, 'x'), | ||||
|         s(:test, nil, 'y') | ||||
|       ) | ||||
|     end | ||||
| 
 | ||||
|     example 'parse the + operator' do | ||||
|       parse_css('x + y').should == s( | ||||
|         :following_direct, | ||||
|         s(:test, nil, 'x'), | ||||
|         s(:test, nil, 'y') | ||||
|       ) | ||||
|     end | ||||
| 
 | ||||
|     example 'parse the ~ operator' do | ||||
|       parse_css('x ~ y').should == s( | ||||
|         :following, | ||||
|         s(:test, nil, 'x'), | ||||
|         s(:test, nil, 'y') | ||||
|       ) | ||||
|     end | ||||
|   end | ||||
| end | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue