mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +00:00 
			
		
		
		
	
		
			
	
	
		
			29 lines
		
	
	
	
		
			793 B
		
	
	
	
		
			Text
		
	
	
	
	
	
		
		
			
		
	
	
			29 lines
		
	
	
	
		
			793 B
		
	
	
	
		
			Text
		
	
	
	
	
	
|   | # Copyright 2006 Google, Inc. All Rights Reserved. | ||
|  | # Licensed to PSF under a Contributor Agreement. | ||
|  | 
 | ||
|  | # A grammar to describe tree matching patterns. | ||
|  | # Not shown here: | ||
|  | # - 'TOKEN' stands for any token (leaf node) | ||
|  | # - 'any' stands for any node (leaf or interior) | ||
|  | # With 'any' we can still specify the sub-structure. | ||
|  | 
 | ||
|  | # The start symbol is 'Matcher'. | ||
|  | 
 | ||
|  | Matcher: Alternatives ENDMARKER | ||
|  | 
 | ||
|  | Alternatives: Alternative ('|' Alternative)* | ||
|  | 
 | ||
|  | Alternative: (Unit | NegatedUnit)+ | ||
|  | 
 | ||
|  | Unit: [NAME '='] ( STRING [Repeater] | ||
|  |                  | NAME [Details] [Repeater] | ||
|  |                  | '(' Alternatives ')' [Repeater] | ||
|  |                  | '[' Alternatives ']' | ||
|  | 		 ) | ||
|  | 
 | ||
|  | NegatedUnit: 'not' (STRING | NAME [Details] | '(' Alternatives ')') | ||
|  | 
 | ||
|  | Repeater: '*' | '+' | '{' NUMBER [',' NUMBER] '}' | ||
|  | 
 | ||
|  | Details: '<' Alternatives '>' |