<s> import re <EOL> from collections import OrderedDict <EOL> TESTS = { <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' <EOL> } <EOL> STRING = r"<STR_LIT>" + r'<STR_LIT>' <EOL> REGEX = [ STRING , <EOL> r'<STR_LIT>' , <EOL> r'<STR_LIT>' , <EOL> r'<STR_LIT>' , <EOL> r'<STR_LIT>' , <EOL> r'<STR_LIT>' , <EOL> r'<STR_LIT>' , <EOL> r'<STR_LIT>' , <EOL> r'<STR_LIT>' , <EOL> r'<STR_LIT>' , <EOL> r'<STR_LIT>' , <EOL> r'<STR_LIT>' , <EOL> r'<STR_LIT>' , <EOL> r'<STR_LIT>' , <EOL> r'<STR_LIT>' , <EOL> r'<STR_LIT>' , <EOL> r'<STR_LIT>' , <EOL> r'<STR_LIT>' , <EOL> r'<STR_LIT>' , <EOL> r'<STR_LIT>' , <EOL> r'<STR_LIT>' , <EOL> r'<STR_LIT>' , <EOL> r'<STR_LIT>' , <EOL> r'<STR_LIT>' , <EOL> r'<STR_LIT>' , <EOL> r'<STR_LIT>' , <EOL> r'<STR_LIT>' , <EOL> r'<STR_LIT>' <EOL> ] <EOL> BINARY_OPERATORS = OrderedDict ( [ <EOL> [ '<STR_LIT>' , r'<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , r'<STR_LIT>' ] <EOL> ] ) <EOL> compiled = re . compile ( r'<STR_LIT:|>' . join ( reversed ( REGEX ) ) , re . IGNORECASE ) <EOL> for test , final in TESTS . items ( ) : <EOL> print ( test ) <EOL> print ( final ) <EOL> finalized = [ ] <EOL> matched = compiled . finditer ( test ) <EOL> prev_key = None <EOL> for item in matched : <EOL> key = item . lastgroup <EOL> value = item . group ( <NUM_LIT:0> ) <EOL> print ( '<STR_LIT>' . format ( key , value ) ) </s>
