Home | History | Annotate | Download | only in lib2to3
      1 # Copyright 2006 Google, Inc. All Rights Reserved.
      2 # Licensed to PSF under a Contributor Agreement.
      3 
      4 # A grammar to describe tree matching patterns.
      5 # Not shown here:
      6 # - 'TOKEN' stands for any token (leaf node)
      7 # - 'any' stands for any node (leaf or interior)
      8 # With 'any' we can still specify the sub-structure.
      9 
     10 # The start symbol is 'Matcher'.
     11 
     12 Matcher: Alternatives ENDMARKER
     13 
     14 Alternatives: Alternative ('|' Alternative)*
     15 
     16 Alternative: (Unit | NegatedUnit)+
     17 
     18 Unit: [NAME '='] ( STRING [Repeater]
     19                  | NAME [Details] [Repeater]
     20                  | '(' Alternatives ')' [Repeater]
     21                  | '[' Alternatives ']'
     22 		 )
     23 
     24 NegatedUnit: 'not' (STRING | NAME [Details] | '(' Alternatives ')')
     25 
     26 Repeater: '*' | '+' | '{' NUMBER [',' NUMBER] '}'
     27 
     28 Details: '<' Alternatives '>'
     29