Current Dir: /snap/core22/2955/usr/lib/python3.11/lib2to3/
[DIR] fixes [ delete | rename ]
[DIR] pgen2 [ delete | rename ]
[FILE] btm_matcher.py [ edit | delete | rename ]
[FILE] btm_utils.py [ edit | delete | rename ]
[FILE] fixer_base.py [ edit | delete | rename ]
[FILE] fixer_util.py [ edit | delete | rename ]
[FILE] Grammar.txt [ edit | delete | rename ]
[FILE] main.py [ edit | delete | rename ]
[FILE] patcomp.py [ edit | delete | rename ]
[FILE] PatternGrammar.txt [ edit | delete | rename ]
[FILE] pygram.py [ edit | delete | rename ]
[FILE] pytree.py [ edit | delete | rename ]
[FILE] refactor.py [ edit | delete | rename ]
[FILE] __init__.py [ edit | delete | rename ]
[FILE] __main__.py [ edit | delete | rename ]
Viewing: /snap/core22/2955/usr/lib/python3.11/lib2to3/PatternGrammar.txt
# 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 '>'