[3.6] bpo-23894: make lib2to3 recognize f-strings (GH-1733) (#1737) · python/cpython@e8412e6 (original) (raw)

`@@ -74,7 +74,7 @@ def maybe(*choices): return group(*choices) + '?'

`

74

74

`Single3 = r"[^'\](?:(?:\.|'(?!''))[^'\])*'''"

`

75

75

`# Tail end of """ string.

`

76

76

`Double3 = r'[^"\](?:(?:\.|"(?!""))[^"\])*"""'

`

77

``

`-

_litprefix = r"(?:[uUrRbB]|[rR][bB]|[bBuU][rR])?"

`

``

77

`+

_litprefix = r"(?:[uUrRbBfF]|[rR][bB]|[bBuU][rR])?"

`

78

78

`Triple = group(_litprefix + "'''", _litprefix + '"""')

`

79

79

`# Single-line ' or " string.

`

80

80

`String = group(_litprefix + r"'[^\n'\](?:\.[^\n'\])*'",

`

`@@ -110,12 +110,14 @@ def maybe(*choices): return group(*choices) + '?'

`

110

110

`"r'''": single3prog, 'r"""': double3prog,

`

111

111

`"u'''": single3prog, 'u"""': double3prog,

`

112

112

`"b'''": single3prog, 'b"""': double3prog,

`

``

113

`+

"f'''": single3prog, 'f"""': double3prog,

`

113

114

`"ur'''": single3prog, 'ur"""': double3prog,

`

114

115

`"br'''": single3prog, 'br"""': double3prog,

`

115

116

`"rb'''": single3prog, 'rb"""': double3prog,

`

116

117

`"R'''": single3prog, 'R"""': double3prog,

`

117

118

`"U'''": single3prog, 'U"""': double3prog,

`

118

119

`"B'''": single3prog, 'B"""': double3prog,

`

``

120

`+

"F'''": single3prog, 'F"""': double3prog,

`

119

121

`"uR'''": single3prog, 'uR"""': double3prog,

`

120

122

`"Ur'''": single3prog, 'Ur"""': double3prog,

`

121

123

`"UR'''": single3prog, 'UR"""': double3prog,

`

`@@ -127,13 +129,15 @@ def maybe(*choices): return group(*choices) + '?'

`

127

129

`"RB'''": single3prog, 'RB"""': double3prog,

`

128

130

`'r': None, 'R': None,

`

129

131

`'u': None, 'U': None,

`

``

132

`+

'f': None, 'F': None,

`

130

133

`'b': None, 'B': None}

`

131

134

``

132

135

`triple_quoted = {}

`

133

136

`for t in ("'''", '"""',

`

134

137

`"r'''", 'r"""', "R'''", 'R"""',

`

135

138

`"u'''", 'u"""', "U'''", 'U"""',

`

136

139

`"b'''", 'b"""', "B'''", 'B"""',

`

``

140

`+

"f'''", 'f"""', "F'''", 'F"""',

`

137

141

`"ur'''", 'ur"""', "Ur'''", 'Ur"""',

`

138

142

`"uR'''", 'uR"""', "UR'''", 'UR"""',

`

139

143

`"br'''", 'br"""', "Br'''", 'Br"""',

`

`@@ -146,6 +150,7 @@ def maybe(*choices): return group(*choices) + '?'

`

146

150

`"r'", 'r"', "R'", 'R"',

`

147

151

`"u'", 'u"', "U'", 'U"',

`

148

152

`"b'", 'b"', "B'", 'B"',

`

``

153

`+

"f'", 'f"', "F'", 'F"',

`

149

154

`"ur'", 'ur"', "Ur'", 'Ur"',

`

150

155

`"uR'", 'uR"', "UR'", 'UR"',

`

151

156

`"br'", 'br"', "Br'", 'Br"',

`