Skip to content

Commit d2b28dd

Browse files
f4nb0ychrisbra
authored andcommitted
runtime(python): add syntax support inside f-strings
fixes: #14033 closes: #17962 Signed-off-by: Rob B <github@0x7e.net> Signed-off-by: Christian Brabandt <cb@256bit.org>
1 parent 9fd1a65 commit d2b28dd

14 files changed

Lines changed: 180 additions & 164 deletions

runtime/syntax/python.vim

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
" Vim syntax file
22
" Language: Python
33
" Maintainer: Zvezdan Petkovic <zpetkovic@acm.org>
4-
" Last Change: 2025 Aug 23
4+
" Last Change: 2025 Sep 05
55
" Credits: Neil Schemenauer <nas@python.ca>
66
" Dmitry Vasiliev
77
" Rob B
@@ -218,21 +218,24 @@ syn region pythonRawBytes
218218

219219
" F-string replacement fields
220220
"
221-
" - Matched parentheses, brackets and braces are ignored
222-
" - A bare # is ignored to end of line
223-
" - A bare = (surrounded by optional whitespace) enables debugging
224-
" - A bare ! prefixes a conversion field
221+
" - Matched parentheses, brackets and braces are skipped
222+
" - A bare = (followed by optional whitespace) enables debugging
223+
" - A bare ! prefixes a conversion field (followed by optional whitespace)
225224
" - A bare : begins a format specification
226-
" - Matched braces inside a format specification are ignored
225+
" - Matched braces inside a format specification are skipped
227226
"
228227
syn region pythonFStringField
229228
\ matchgroup=pythonFStringDelimiter
230229
\ start=/{/
231-
\ skip=/([^)]*)\|\[[^]]*]\|{[^}]*}\|#.*$/
232-
\ end=/\%(\s*=\s*\)\=\%(!\a\)\=\%(:\%({[^}]*}\|[^}]*\)\+\)\=}/
230+
\ end=/\%(=\s*\)\=\%(!\a\s*\)\=\%(:\%({\_[^}]*}\|[^{}]*\)\+\)\=}/
233231
\ contained
234-
" Doubled braces and Unicode escapes are not replacement fields
235-
syn match pythonFStringSkip /{{\|\\N{/ transparent contained contains=NONE
232+
\ contains=ALLBUT,pythonFStringField,pythonClass,pythonFunction,pythonDoctest,pythonDoctestValue,@Spell
233+
syn match pythonFStringFieldSkip /(\_[^()]*)\|\[\_[^][]*]\|{\_[^{}]*}/
234+
\ contained
235+
\ contains=ALLBUT,pythonFStringField,pythonClass,pythonFunction,pythonDoctest,pythonDoctestValue,@Spell
236+
237+
" Doubled braces are not replacement fields
238+
syn match pythonFStringSkip /{{/ transparent contained contains=NONE
236239

237240
syn match pythonEscape +\\[abfnrtv'"\\]+ contained
238241
syn match pythonEscape "\\\o\{1,3}" contained

runtime/syntax/testdir/dumps/python_strings_bytes_01.dump

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,4 @@
1717
|a+0#e000002&|n|d| |l|i|t|e|r|a|l| |\|t| |a|n|d| |\|0|4|0| |a|n|d| |\|x|F@1| +0#0000000&@42
1818
|a+0#e000002&|n|d| |l|i|t|e|r|a|l| |\|u|0@1|A|1| |a|n|d| |\|U|0@2|1|0|6|0|5|"@2| +0#0000000&@38
1919
@75
20-
@57|1|7|,|1| @10|6|%|
20+
@57|1|7|,|1| @10|5|%|

runtime/syntax/testdir/dumps/python_strings_bytes_02.dump

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,4 @@
1717
|#+0#0000e05&| |R|a|w| |U|n|i|c|o|d|e| |l|i|t|e|r|a|l|s| |a|r|e| |n|o|t| |a|l@1|o|w|e|d| +0#0000000&@36
1818
|t|e|s|t| |=| |u|r+0#e000002&|'|I|n|v|a|l|i|d| |s|t|r|i|n|g| |w|i|t|h| |\|'| |a|n|d| |\|"| |a|n|d| |\|t|'| +0#0000000&@27
1919
|t|e|s|t| |=| |u|R+0#e000002&|"|I|n|v|a|l|i|d| |s|t|r|i|n|g| |w|i|t|h| |\|0|4|0| |a|n|d| |\|x|F@1|"| +0#0000000&@30
20-
@57|3@1|,|1| @9|1|5|%|
20+
@57|3@1|,|1| @9|1|4|%|

runtime/syntax/testdir/dumps/python_strings_bytes_03.dump

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,4 @@
1717
|a+0#e000002&|n|d| |\+0#e000e06&|u|0@1|A|1| +0#e000002&|a|n|d| |\+0#e000e06&|U|0@2|1|0|6|0|5|"+0#e000002&@2| +0#0000000&@46
1818
@75
1919
|#+0#0000e05&| |F|o|r|m|a|t@1|e|d| |s|t|r|i|n|g| |l|i|t|e|r|a|l|s| |(|f|-|s|t|r|i|n|g|s|)| +0#0000000&@35
20-
@57|4|9|,|1| @9|2|4|%|
20+
@57|4|9|,|1| @9|2|3|%|
Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
11
|#+0#0000e05#ffffff0| |F|o|r|m|a|t@1|e|d| |s|t|r|i|n|g| |l|i|t|e|r|a|l|s| |(|f|-|s|t|r|i|n|g|s|)| +0#0000000&@35
22
|#+0#0000e05&| |h|t@1|p|s|:|/@1|d|o|c|s|.|p|y|t|h|o|n|.|o|r|g|/|3|/|r|e|f|e|r|e|n|c|e|/|l|e|x|i|c|a|l|_|a|n|a|l|y|s|i|s|.|h|t|m|l|#|f|-|s|t|r|i|n|g|s| +0#0000000&@5
3-
|t|e|s|t| |=| |f+0#e000002&|'|F|-|s|t|r|i|n|g| |w|i|t|h| |e|s|c|a|p|e|s| |\+0#e000e06&|'| +0#e000002&|a|n|d| |\+0#e000e06&|"| +0#e000002&|a|n|d| |\+0#e000e06&|t| +0#e000002&|a|n|d| |f|i|e|l|d|s| |{+0#e000e06&|f+0#0000000&|o@1|}+0#e000e06&| +0#e000002&|a|n|d| |{+0#e000e06&|b+0#0000000&|a|r|}+0#e000e06&|'+0#e000002&
4-
|t+0#0000000&|e|s|t| |=| |F+0#e000002&|"|F|-|s|t|r|i|n|g| |w|i|t|h| |e|s|c|a|p|e|s| |\+0#e000e06&|0|4|0| +0#e000002&|a|n|d| |\+0#e000e06&|x|F@1| +0#e000002&|a|n|d| |f|i|e|l|d|s| |{+0#e000e06&|f+0#0000000&|o@1|}+0#e000e06&| +0#e000002&|a|n|d| |{+0#e000e06&|b+0#0000000&|a|r|}+0#e000e06&|"+0#e000002&| +0#0000000&@2
3+
|t|e|s|t| |=| |f+0#e000002&|'|F|-|s|t|r|i|n|g| |w|i|t|h| |e|s|c|a|p|e|s| |\+0#e000e06&|'| +0#e000002&|a|n|d| |\+0#e000e06&|"| +0#e000002&|a|n|d| |\+0#e000e06&|t| +0#e000002&|a|n|d| |f|i|e|l|d|s| |{+0#e000e06&|f+0#00e0003&|o@1|}+0#e000e06&| +0#e000002&|a|n|d| |{+0#e000e06&|b+0#00e0003&|a|r|}+0#e000e06&|'+0#e000002&
4+
|t+0#0000000&|e|s|t| |=| |F+0#e000002&|"|F|-|s|t|r|i|n|g| |w|i|t|h| |e|s|c|a|p|e|s| |\+0#e000e06&|0|4|0| +0#e000002&|a|n|d| |\+0#e000e06&|x|F@1| +0#e000002&|a|n|d| |f|i|e|l|d|s| |{+0#e000e06&|f+0#00e0003&|o@1|}+0#e000e06&| +0#e000002&|a|n|d| |{+0#e000e06&|b+0#00e0003&|a|r|}+0#e000e06&|"+0#e000002&| +0#0000000&@2
55
|t|e|s|t| |=| |f+0#e000002&|'|F|-|s|t|r|i|n|g| |w|i|t|h| |e|s|c|a|p|e|s| |\+0#e000e06&|u|0@1|A|1| +0#e000002&|a|n|d| |\+0#e000e06&|U|0@2|1|0|6|0|5| +0#e000002&|a|n|d| |\+0#e000e06&|N|{|I|N|V|E|R|T|E|D| |E|X|C|L|A|M
6-
|A|T|I|O|N| |M|A|R|K|}| +0#e000002&|a|n|d| |f|i|e|l|d|s| |{+0#e000e06&|f+0#0000000&|o@1|}+0#e000e06&| +0#e000002&|a|n|d| |{+0#e000e06&|b+0#0000000&|a|r|}+0#e000e06&|'+0#e000002&| +0#0000000&@35
7-
>t|e|s|t| |=| |F+0#e000002&|"|F|-|s|t|r|i|n|g| |w|i|t|h| |l|i|t|e|r|a|l| |{@1|f|i|e|l|d|}@1| |a|n|d| |f|i|e|l|d|s| |{+0#e000e06&|f+0#0000000&|o@1|}+0#e000e06&| +0#e000002&|a|n|d| |{+0#e000e06&|b+0#0000000&|a|r|}+0#e000e06&|"+0#e000002&| +0#0000000&@6
6+
|A|T|I|O|N| |M|A|R|K|}| +0#e000002&|a|n|d| |f|i|e|l|d|s| |{+0#e000e06&|f+0#00e0003&|o@1|}+0#e000e06&| +0#e000002&|a|n|d| |{+0#e000e06&|b+0#00e0003&|a|r|}+0#e000e06&|'+0#e000002&| +0#0000000&@35
7+
>t|e|s|t| |=| |F+0#e000002&|"|F|-|s|t|r|i|n|g| |w|i|t|h| |l|i|t|e|r|a|l| |{@1|f|i|e|l|d|}@1| |a|n|d| |f|i|e|l|d|s| |{+0#e000e06&|f+0#00e0003&|o@1|}+0#e000e06&| +0#e000002&|a|n|d| |{+0#e000e06&|b+0#00e0003&|a|r|}+0#e000e06&|"+0#e000002&| +0#0000000&@6
88
|t|e|s|t| |=| |f+0#e000002&|'@2|F|-|s|t|r|i|n|g| |w|i|t|h| |q|u|o|t|e|s| |'| |a|n|d| |"| +0#0000000&@35
99
|a+0#e000002&|n|d| |e|s|c|a|p|e|s| |\+0#e000e06&|t| +0#e000002&|a|n|d| |\+0#e000e06&|0|4|0| +0#e000002&|a|n|d| |\+0#e000e06&|x|F@1| +0#0000000&@42
1010
|a+0#e000002&|n|d| |e|s|c|a|p|e|s| |\+0#e000e06&|u|0@1|A|1| +0#e000002&|a|n|d| |\+0#e000e06&|U|0@2|1|0|6|0|5| +0#0000000&@41
11-
|a+0#e000002&|n|d| |f|i|e|l|d|s| |{+0#e000e06&|1+0#0000000&|}+0#e000e06&|,+0#e000002&| |{+0#e000e06&|2+0#0000000&|}+0#e000e06&| +0#e000002&|a|n|d| |{+0#e000e06&|1+0#0000000&| @48
11+
|a+0#e000002&|n|d| |f|i|e|l|d|s| |{+0#e000e06&|1+0#e000002&|}+0#e000e06&|,+0#e000002&| |{+0#e000e06&|2+0#e000002&|}+0#e000e06&| +0#e000002&|a|n|d| |{+0#e000e06&|1+0#e000002&| +0#0000000&@48
1212
@4|+| @69
13-
@4|2|}+0#e000e06&|'+0#e000002&@2| +0#0000000&@65
13+
@4|2+0#e000002&|}+0#e000e06&|'+0#e000002&@2| +0#0000000&@65
1414
|t|e|s|t| |=| |F+0#e000002&|"@2|F|-|s|t|r|i|n|g| |w|i|t|h| |q|u|o|t|e|s| |'| |a|n|d| |"| +0#0000000&@35
1515
|a+0#e000002&|n|d| |e|s|c|a|p|e|s| |\+0#e000e06&|t| +0#e000002&|a|n|d| |\+0#e000e06&|0|4|0| +0#e000002&|a|n|d| |\+0#e000e06&|x|F@1| +0#0000000&@42
1616
|a+0#e000002&|n|d| |e|s|c|a|p|e|s| |\+0#e000e06&|u|0@1|A|1| +0#e000002&|a|n|d| |\+0#e000e06&|U|0@2|1|0|6|0|5| +0#0000000&@41
17-
|a+0#e000002&|n|d| |f|i|e|l|d|s| |{+0#e000e06&|1+0#0000000&|}+0#e000e06&|,+0#e000002&| |{+0#e000e06&|2+0#0000000&|}+0#e000e06&| +0#e000002&|a|n|d| |{+0#e000e06&|1+0#0000000&| @48
17+
|a+0#e000002&|n|d| |f|i|e|l|d|s| |{+0#e000e06&|1+0#e000002&|}+0#e000e06&|,+0#e000002&| |{+0#e000e06&|2+0#e000002&|}+0#e000e06&| +0#e000002&|a|n|d| |{+0#e000e06&|1+0#e000002&| +0#0000000&@48
1818
@4|+| @69
19-
@4|2|}+0#e000e06&|"+0#e000002&@2| +0#0000000&@65
20-
@57|6@1|,|1| @9|3|4|%|
19+
@4|2+0#e000002&|}+0#e000e06&|"+0#e000002&@2| +0#0000000&@65
20+
@57|6@1|,|1| @9|3|1|%|
Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
1-
| +0&#ffffff0@3|2|}+0#e000e06&|"+0#e000002&@2| +0#0000000&@65
1+
| +0&#ffffff0@3|2+0#e000002&|}+0#e000e06&|"+0#e000002&@2| +0#0000000&@65
22
@75
33
|#+0#0000e05&| |R|a|w| |f|o|r|m|a|t@1|e|d| |s|t|r|i|n|g| |l|i|t|e|r|a|l|s| +0#0000000&@43
4-
|t|e|s|t| |=| |f+0#e000002&|r|'|R|a|w| |f|-|s|t|r|i|n|g| |w|i|t|h| |l|i|t|e|r|a|l| |\|'| |a|n|d| |\|"| |a|n|d| |\|t| |a|n|d| |f|i|e|l|d|s| |{+0#e000e06&|f+0#0000000&|o@1|}+0#e000e06&| +0#e000002&|a|n|d| |{+0#e000e06&
5-
|b+0#0000000&|a|r|}+0#e000e06&|'+0#e000002&| +0#0000000&@69
6-
>t|e|s|t| |=| |f+0#e000002&|R|"|R|a|w| |f|-|s|t|r|i|n|g| |w|i|t|h| |l|i|t|e|r|a|l| |\|0|4|0| |a|n|d| |\|x|F@1| |a|n|d| |f|i|e|l|d|s| |{+0#e000e06&|f+0#0000000&|o@1|}+0#e000e06&| +0#e000002&|a|n|d| |{+0#e000e06&|b+0#0000000&|a|r
4+
|t|e|s|t| |=| |f+0#e000002&|r|'|R|a|w| |f|-|s|t|r|i|n|g| |w|i|t|h| |l|i|t|e|r|a|l| |\|'| |a|n|d| |\|"| |a|n|d| |\|t| |a|n|d| |f|i|e|l|d|s| |{+0#e000e06&|f+0#00e0003&|o@1|}+0#e000e06&| +0#e000002&|a|n|d| |{+0#e000e06&
5+
|b+0#00e0003&|a|r|}+0#e000e06&|'+0#e000002&| +0#0000000&@69
6+
>t|e|s|t| |=| |f+0#e000002&|R|"|R|a|w| |f|-|s|t|r|i|n|g| |w|i|t|h| |l|i|t|e|r|a|l| |\|0|4|0| |a|n|d| |\|x|F@1| |a|n|d| |f|i|e|l|d|s| |{+0#e000e06&|f+0#00e0003&|o@1|}+0#e000e06&| +0#e000002&|a|n|d| |{+0#e000e06&|b+0#00e0003&|a|r
77
|}+0#e000e06&|"+0#e000002&| +0#0000000&@72
8-
|t|e|s|t| |=| |F+0#e000002&|r|'|R|a|w| |f|-|s|t|r|i|n|g| |w|i|t|h| |l|i|t|e|r|a|l| |\|u|0@1|A|1| |a|n|d| |\|U|0@2|1|0|6|0|5| |a|n|d| |\|N|{|I|N|V|E|R|T|E|D| |E
9-
|X|C|L|A|M|A|T|I|O|N| |M|A|R|K|}| |a|n|d| |f|i|e|l|d|s| |{+0#e000e06&|f+0#0000000&|o@1|}+0#e000e06&| +0#e000002&|a|n|d| |{+0#e000e06&|b+0#0000000&|a|r|}+0#e000e06&|'+0#e000002&| +0#0000000&@30
10-
|t|e|s|t| |=| |F+0#e000002&|R|"|R|a|w| |f|-|s|t|r|i|n|g| |w|i|t|h| |l|i|t|e|r|a|l| |{@1|f|i|e|l|d|}@1| |a|n|d| |f|i|e|l|d|s| |{+0#e000e06&|f+0#0000000&|o@1|}+0#e000e06&| +0#e000002&|a|n|d| |{+0#e000e06&|b+0#0000000&|a|r|}+0#e000e06&|"+0#e000002&| +0#0000000&@1
11-
|t|e|s|t| |=| |r+0#e000002&|f|'|R|a|w| |f|-|s|t|r|i|n|g| |w|i|t|h| |l|i|t|e|r|a|l| |\|'| |a|n|d| |\|"| |a|n|d| |\|t| |a|n|d| |f|i|e|l|d|s| |{+0#e000e06&|f+0#0000000&|o@1|}+0#e000e06&| +0#e000002&|a|n|d| |{+0#e000e06&
12-
|b+0#0000000&|a|r|}+0#e000e06&|'+0#e000002&| +0#0000000&@69
13-
|t|e|s|t| |=| |r+0#e000002&|F|"|R|a|w| |f|-|s|t|r|i|n|g| |w|i|t|h| |l|i|t|e|r|a|l| |\|0|4|0| |a|n|d| |\|x|F@1| |a|n|d| |f|i|e|l|d|s| |{+0#e000e06&|f+0#0000000&|o@1|}+0#e000e06&| +0#e000002&|a|n|d| |{+0#e000e06&|b+0#0000000&|a|r
8+
|t|e|s|t| |=| |F+0#e000002&|r|'|R|a|w| |f|-|s|t|r|i|n|g| |w|i|t|h| |l|i|t|e|r|a|l| |\|u|0@1|A|1| |a|n|d| |\|U|0@2|1|0|6|0|5| |a|n|d| |f|i|e|l|d|s| |\|N|{+0#e000e06&|F+0#00e0003&|I|E
9+
|L|D|,+0#0000000&| |N+0#00e0003&|O|T|,+0#0000000&| |E+0#00e0003&|S|C|A|P|E|}+0#e000e06&| +0#e000002&|a|n|d| |{+0#e000e06&|f+0#00e0003&|o@1|}+0#e000e06&| +0#e000002&|a|n|d| |{+0#e000e06&|b+0#00e0003&|a|r|}+0#e000e06&|'+0#e000002&| +0#0000000&@37
10+
|t|e|s|t| |=| |F+0#e000002&|R|"|R|a|w| |f|-|s|t|r|i|n|g| |w|i|t|h| |l|i|t|e|r|a|l| |{@1|f|i|e|l|d|}@1| |a|n|d| |f|i|e|l|d|s| |{+0#e000e06&|f+0#00e0003&|o@1|}+0#e000e06&| +0#e000002&|a|n|d| |{+0#e000e06&|b+0#00e0003&|a|r|}+0#e000e06&|"+0#e000002&| +0#0000000&@1
11+
|t|e|s|t| |=| |r+0#e000002&|f|'|R|a|w| |f|-|s|t|r|i|n|g| |w|i|t|h| |l|i|t|e|r|a|l| |\|'| |a|n|d| |\|"| |a|n|d| |\|t| |a|n|d| |f|i|e|l|d|s| |{+0#e000e06&|f+0#00e0003&|o@1|}+0#e000e06&| +0#e000002&|a|n|d| |{+0#e000e06&
12+
|b+0#00e0003&|a|r|}+0#e000e06&|'+0#e000002&| +0#0000000&@69
13+
|t|e|s|t| |=| |r+0#e000002&|F|"|R|a|w| |f|-|s|t|r|i|n|g| |w|i|t|h| |l|i|t|e|r|a|l| |\|0|4|0| |a|n|d| |\|x|F@1| |a|n|d| |f|i|e|l|d|s| |{+0#e000e06&|f+0#00e0003&|o@1|}+0#e000e06&| +0#e000002&|a|n|d| |{+0#e000e06&|b+0#00e0003&|a|r
1414
|}+0#e000e06&|"+0#e000002&| +0#0000000&@72
15-
|t|e|s|t| |=| |R+0#e000002&|f|'|R|a|w| |f|-|s|t|r|i|n|g| |w|i|t|h| |l|i|t|e|r|a|l| |\|u|0@1|A|1| |a|n|d| |\|U|0@2|1|0|6|0|5| |a|n|d| |\|N|{|I|N|V|E|R|T|E|D| |E
16-
|X|C|L|A|M|A|T|I|O|N| |M|A|R|K|}| |a|n|d| |f|i|e|l|d|s| |{+0#e000e06&|f+0#0000000&|o@1|}+0#e000e06&| +0#e000002&|a|n|d| |{+0#e000e06&|b+0#0000000&|a|r|}+0#e000e06&|'+0#e000002&| +0#0000000&@30
17-
|t|e|s|t| |=| |R+0#e000002&|F|"|R|a|w| |f|-|s|t|r|i|n|g| |w|i|t|h| |l|i|t|e|r|a|l| |{@1|f|i|e|l|d|}@1| |a|n|d| |f|i|e|l|d|s| |{+0#e000e06&|f+0#0000000&|o@1|}+0#e000e06&| +0#e000002&|a|n|d| |{+0#e000e06&|b+0#0000000&|a|r|}+0#e000e06&|"+0#e000002&| +0#0000000&@1
15+
|t|e|s|t| |=| |R+0#e000002&|f|'|R|a|w| |f|-|s|t|r|i|n|g| |w|i|t|h| |l|i|t|e|r|a|l| |\|u|0@1|A|1| |a|n|d| |\|U|0@2|1|0|6|0|5| |a|n|d| |f|i|e|l|d|s| |\|N|{+0#e000e06&|F+0#00e0003&|I|E
16+
|L|D|,+0#0000000&| |N+0#00e0003&|O|T|,+0#0000000&| |E+0#00e0003&|S|C|A|P|E|}+0#e000e06&| +0#e000002&|a|n|d| |{+0#e000e06&|f+0#00e0003&|o@1|}+0#e000e06&| +0#e000002&|a|n|d| |{+0#e000e06&|b+0#00e0003&|a|r|}+0#e000e06&|'+0#e000002&| +0#0000000&@37
17+
|t|e|s|t| |=| |R+0#e000002&|F|"|R|a|w| |f|-|s|t|r|i|n|g| |w|i|t|h| |l|i|t|e|r|a|l| |{@1|f|i|e|l|d|}@1| |a|n|d| |f|i|e|l|d|s| |{+0#e000e06&|f+0#00e0003&|o@1|}+0#e000e06&| +0#e000002&|a|n|d| |{+0#e000e06&|b+0#00e0003&|a|r|}+0#e000e06&|"+0#e000002&| +0#0000000&@1
1818
|t|e|s|t| |=| |f+0#e000002&|r|'@2|R|a|w| |f|-|s|t|r|i|n|g| |w|i|t|h| |q|u|o|t|e|s| |'| |a|n|d| |"| +0#0000000&@30
1919
|a+0#e000002&|n|d| |l|i|t|e|r|a|l| |\|t| |a|n|d| |\|0|4|0| |a|n|d| |\|x|F@1| +0#0000000&@42
20-
@57|8|2|,|1| @9|4|2|%|
20+
@57|8|2|,|1| @9|3|9|%|
Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
11
|a+0#e000002#ffffff0|n|d| |l|i|t|e|r|a|l| |\|t| |a|n|d| |\|0|4|0| |a|n|d| |\|x|F@1| +0#0000000&@42
22
|a+0#e000002&|n|d| |l|i|t|e|r|a|l| |\|u|0@1|A|1| |a|n|d| |\|U|0@2|1|0|6|0|5| +0#0000000&@41
3-
|a+0#e000002&|n|d| |f|i|e|l|d|s| |{+0#e000e06&|1+0#0000000&|}+0#e000e06&|,+0#e000002&| |{+0#e000e06&|2+0#0000000&|}+0#e000e06&| +0#e000002&|a|n|d| |{+0#e000e06&|1+0#0000000&| @48
3+
|a+0#e000002&|n|d| |f|i|e|l|d|s| |{+0#e000e06&|1+0#e000002&|}+0#e000e06&|,+0#e000002&| |{+0#e000e06&|2+0#e000002&|}+0#e000e06&| +0#e000002&|a|n|d| |{+0#e000e06&|1+0#e000002&| +0#0000000&@48
44
@4|+| @69
5-
@4|2|}+0#e000e06&|'+0#e000002&@2| +0#0000000&@65
5+
@4|2+0#e000002&|}+0#e000e06&|'+0#e000002&@2| +0#0000000&@65
66
>t|e|s|t| |=| |R+0#e000002&|F|"@2|R|a|w| |f|-|s|t|r|i|n|g| |w|i|t|h| |q|u|o|t|e|s| |'| |a|n|d| |"| +0#0000000&@30
77
|a+0#e000002&|n|d| |l|i|t|e|r|a|l| |\|t| |a|n|d| |\|0|4|0| |a|n|d| |\|x|F@1| +0#0000000&@42
88
|a+0#e000002&|n|d| |l|i|t|e|r|a|l| |\|u|0@1|A|1| |a|n|d| |\|U|0@2|1|0|6|0|5| +0#0000000&@41
9-
|a+0#e000002&|n|d| |f|i|e|l|d|s| |{+0#e000e06&|1+0#0000000&|}+0#e000e06&|,+0#e000002&| |{+0#e000e06&|2+0#0000000&|}+0#e000e06&| +0#e000002&|a|n|d| |{+0#e000e06&|1+0#0000000&| @48
9+
|a+0#e000002&|n|d| |f|i|e|l|d|s| |{+0#e000e06&|1+0#e000002&|}+0#e000e06&|,+0#e000002&| |{+0#e000e06&|2+0#e000002&|}+0#e000e06&| +0#e000002&|a|n|d| |{+0#e000e06&|1+0#e000002&| +0#0000000&@48
1010
@4|+| @69
11-
@4|2|}+0#e000e06&|"+0#e000002&@2| +0#0000000&@65
11+
@4|2+0#e000002&|}+0#e000e06&|"+0#e000002&@2| +0#0000000&@65
1212
@75
1313
|#+0#0000e05&| |F|-|s|t|r|i|n|g| |r|e|p|l|a|c|e|m|e|n|t| |f|i|e|l|d|s| +0#0000000&@45
1414
|t|e|s|t| |=| |f+0#e000002&|"|S|t|r|i|n|g| |i|s| |{+0#e000e06&| +0#0000000&@54
15-
@4|"|o|n|e| |p|l|u|s| |"| @59
16-
@4|"|t|w|o| |p|l|u|s| |"| @59
17-
@4|"|t|h|r|e@1|"|}+0#e000e06&|"+0#e000002&| +0#0000000&@61
15+
@4|"+0#e000002&|o|n|e| |p|l|u|s| |"| +0#0000000&@59
16+
@4|"+0#e000002&|t|w|o| |p|l|u|s| |"| +0#0000000&@59
17+
@4|"+0#e000002&|t|h|r|e@1|"|}+0#e000e06&|"+0#e000002&| +0#0000000&@61
1818
|t|e|s|t| |=| |f+0#e000002&|"|N|u|m|b|e|r| |i|s| |{+0#e000e06&| +0#0000000&@54
19-
@4|1| |+| @67
20-
@57|9|5|,|1| @9|5|0|%|
19+
@4|1+0#e000002&| +0#0000000&|+| @67
20+
@57|9|5|,|1| @9|4|7|%|
Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
1-
| +0&#ffffff0@3|1| |+| @67
2-
@4|2| |+| @67
3-
@4|3|}+0#e000e06&|"+0#e000002&| +0#0000000&@67
4-
|t|e|s|t| |=| |f+0#e000002&|"|a|b|c|{+0#e000e06&|a+0#0000000&| |#| |T|h|i|s| |i|s| |a| |c|o|m@1|e|n|t| |}| @38
5-
@4|+| |1|}+0#e000e06&|"+0#e000002&| +0#0000000&@65
6-
>t|e|s|t| |=| |f+0#e000002&|"|d|e|f|{+0#e000e06&|a+0#0000000&| |#| |S|o| |i|s| |t|h|i|s| |:| @45
7-
@4|+| |2|}+0#e000e06&|"+0#e000002&| +0#0000000&@65
8-
|t|e|s|t| |=| |f+0#e000002&|"|g|h|i|{+0#e000e06&|a+0#0000000&| |#| |A|n|d| |t|h|i|s| |"| @47
9-
@4|+| |3|}+0#e000e06&|"+0#e000002&| +0#0000000&@65
10-
|t|e|s|t| |=| |f+0#e000002&|"|H|e| |s|a|i|d| |h|i|s| |n|a|m|e| |i|s| |{+0#e000e06&|n+0#0000000&|a|m|e|!+0#e000e06&|r|}|.+0#e000002&|"| +0#0000000&@35
11-
|t|e|s|t| |=| |f+0#e000002&|"|H|e| |s|a|i|d| |h|i|s| |n|a|m|e| |i|s| |{+0#e000e06&|r+0#0000000&|e|p|r|(|n|a|m|e|)|}+0#e000e06&|.+0#e000002&|"| +0#0000000&@31
12-
|t|e|s|t| |=| |f+0#e000002&|"|r|e|s|u|l|t|:| |{+0#e000e06&|v+0#0000000&|a|l|u|e|:+0#e000e06&|{|w|i|d|t|h|}@1|"+0#e000002&| +0#0000000&@41
13-
|t|e|s|t| |=| |f+0#e000002&|"|r|e|s|u|l|t|:| |{+0#e000e06&|v+0#0000000&|a|l|u|e|:+0#e000e06&|{|w|i|d|t|h|}|.|{|p|r|e|c|i|s|i|o|n|}|}+0#e000002&|"| +0#0000000&@29
14-
|t|e|s|t| |=| |f+0#e000002&|"|r|e|s|u|l|t|:| |{+0#e000e06&|v+0#0000000&|a|l|u|e|:+0#e000e06&|{|w|i|d|t|h|:|d|}|.|{|p|r|e|c|i|s|i|o|n|!|s|}|}+0#e000002&|"| +0#0000000&@25
15-
|t|e|s|t| |=| |f+0#e000002&|"|r|e|s|u|l|t|:| |{+0#e000e06&|v+0#0000000&|a|l|u|e|:+0#e000e06&|{|o|p|t|i|o|n|s|}|{|w|i|d|t|h|}|{|g|r|o|u|p|i|n|g|}|{|p|r|e|c|i|s|i|o|n|}|{|t|y|p|e|}@1|"+0#e000002&| +0#0000000&@5
16-
|t|e|s|t| |=| |f+0#e000002&|"|{+0#e000e06&|n+0#0000000&|u|m|b|e|r|:+0#e000e06&|#|0|x|}|"+0#e000002&| +0#0000000&@52
17-
|t|e|s|t| |=| |f+0#e000002&|"|{+0#e000e06&|n+0#0000000&|u|m|b|e|r|:+0#e000e06&|+|#|0|x|}|"+0#e000002&| +0#0000000&@51
18-
|t|e|s|t| |=| |f+0#e000002&|"|{+0#e000e06&|n+0#0000000&|u|m|b|e|r|:+0#e000e06&|<|+|#|0|x|}|"+0#e000002&| +0#0000000&@50
19-
|t|e|s|t| |=| |f+0#e000002&|"|{+0#e000e06&|n+0#0000000&|u|m|b|e|r|:+0#e000e06&| |<|+|#|0|x|}|"+0#e000002&| +0#0000000&@49
20-
@57|1@1|3|,|1| @8|6|1|%|
1+
| +0&#ffffff0@3|1+0#e000002&| +0#0000000&|+| @67
2+
@4|2+0#e000002&| +0#0000000&|+| @67
3+
@4|3+0#e000002&|}+0#e000e06&|"+0#e000002&| +0#0000000&@67
4+
|t|e|s|t| |=| |f+0#e000002&|"|a|b|c|{+0#e000e06&|a+0#00e0003&| +0#0000000&|#+0#0000e05&| |T|h|i|s| |i|s| |a| |c|o|m@1|e|n|t| |}| +0#0000000&@38
5+
@4|+| |1+0#e000002&|}+0#e000e06&|"+0#e000002&| +0#0000000&@65
6+
>t|e|s|t| |=| |f+0#e000002&|"|d|e|f|{+0#e000e06&|a+0#00e0003&| +0#0000000&|#+0#0000e05&| |S|o| |i|s| |t|h|i|s| |:| +0#0000000&@45
7+
@4|+| |2+0#e000002&|}+0#e000e06&|"+0#e000002&| +0#0000000&@65
8+
|t|e|s|t| |=| |f+0#e000002&|"|g|h|i|{+0#e000e06&|a+0#00e0003&| +0#0000000&|#+0#0000e05&| |A|n|d| |t|h|i|s| |"| +0#0000000&@47
9+
@4|+| |3+0#e000002&|}+0#e000e06&|"+0#e000002&| +0#0000000&@65
10+
|t|e|s|t| |=| |f+0#e000002&|"|H|e| |s|a|i|d| |h|i|s| |n|a|m|e| |i|s| |{+0#e000e06&|n+0#00e0003&|a|m|e|!+0#e000e06&|r|}|.+0#e000002&|"| +0#0000000&@35
11+
|t|e|s|t| |=| |f+0#e000002&|"|H|e| |s|a|i|d| |h|i|s| |n|a|m|e| |i|s| |{+0#e000e06&|r+0#00e0e07&|e|p|r|(+0#0000000&|n+0#00e0003&|a|m|e|)+0#0000000&|}+0#e000e06&|.+0#e000002&|"| +0#0000000&@31
12+
|t|e|s|t| |=| |f+0#e000002&|"|r|e|s|u|l|t|:| |{+0#e000e06&|v+0#00e0003&|a|l|u|e|:+0#e000e06&|{|w|i|d|t|h|}@1|"+0#e000002&| +0#0000000&@41
13+
|t|e|s|t| |=| |f+0#e000002&|"|r|e|s|u|l|t|:| |{+0#e000e06&|v+0#00e0003&|a|l|u|e|:+0#e000e06&|{|w|i|d|t|h|}|.|{|p|r|e|c|i|s|i|o|n|}@1|"+0#e000002&| +0#0000000&@29
14+
|t|e|s|t| |=| |f+0#e000002&|"|r|e|s|u|l|t|:| |{+0#e000e06&|v+0#00e0003&|a|l|u|e|:+0#e000e06&|{| +0#0000000&@49
15+
| +0#e000e06&@7|w|i|d|t|h| +0#0000000&@61
16+
| +0#e000e06&@3|}|.|{| +0#0000000&@67
17+
| +0#e000e06&@7|p|r|e|c|i|s|i|o|n| +0#0000000&@57
18+
| +0#e000e06&@3|}@1|"+0#e000002&| +0#0000000&@67
19+
|t|e|s|t| |=| |f+0#e000002&|"|r|e|s|u|l|t|:| |{+0#e000e06&|v+0#00e0003&|a|l|u|e|:+0#e000e06&|{|w|i|d|t|h|:|d|}|.|{|p|r|e|c|i|s|i|o|n|!|s|}@1|"+0#e000002&| +0#0000000&@25
20+
@57|1@1|3|,|1| @8|5|6|%|

0 commit comments

Comments
 (0)