@@ -29,70 +29,6 @@ class AttributeDict(dict):
29
29
__delattr__ = dict .__delitem__
30
30
31
31
32
- pat_vim2py = {
33
- "[0-9a-zA-Z]" : "[0-9a-zA-Z]" ,
34
- "[@*!=><&~#]" : "[@*!=><&~#]" ,
35
- "\\ <ARGOPT\\ >" : "\\ bARGOPT\\ b" ,
36
- "\\ <BANG\\ >" : "\\ bBANG\\ b" ,
37
- "\\ <EDITCMD\\ >" : "\\ bEDITCMD\\ b" ,
38
- "\\ <NOTRLCOM\\ >" : "\\ bNOTRLCOM\\ b" ,
39
- "\\ <TRLBAR\\ >" : "\\ bTRLBAR\\ b" ,
40
- "\\ <USECTRLV\\ >" : "\\ bUSECTRLV\\ b" ,
41
- "\\ <USERCMD\\ >" : "\\ bUSERCMD\\ b" ,
42
- "\\ <\\ (XFILE\\ |FILES\\ |FILE1\\ )\\ >" : "\\ b(XFILE|FILES|FILE1)\\ b" ,
43
- "\\ S" : "\\ S" ,
44
- "\\ a" : "[A-Za-z]" ,
45
- "\\ d" : "\\ d" ,
46
- "\\ h" : "[A-Za-z_]" ,
47
- "\\ s" : "\\ s" ,
48
- "\\ v^d%[elete][lp]$" : "^d(elete|elet|ele|el|e)[lp]$" ,
49
- "\\ v^s%(c[^sr][^i][^p]|g|i[^mlg]|I|r[^e])" :
50
- "^s(c[^sr][^i][^p]|g|i[^mlg]|I|r[^e])" ,
51
- "\\ w" : "[0-9A-Za-z_]" ,
52
- "\\ w\\ |[:#]" : "[0-9A-Za-z_]|[:#]" ,
53
- "\\ x" : "[0-9A-Fa-f]" ,
54
- "^++" : r"^\+\+" ,
55
- "^++bad=\\ (keep\\ |drop\\ |.\\ )\\ >" : "^\\ +\\ +bad=(keep|drop|.)\\ b" ,
56
- "^++bad=drop" : "^\\ +\\ +bad=drop" ,
57
- "^++bad=keep" : "^\\ +\\ +bad=keep" ,
58
- "^++bin\\ >" : "^\\ +\\ +bin\\ b" ,
59
- "^++edit\\ >" : "^\\ +\\ +edit\\ b" ,
60
- "^++enc=\\ S" : "^\\ +\\ +enc=\\ S" ,
61
- "^++encoding=\\ S" : "^\\ +\\ +encoding=\\ S" ,
62
- "^++ff=\\ (dos\\ |unix\\ |mac\\ )\\ >" : "^\\ +\\ +ff=(dos|unix|mac)\\ b" ,
63
- "^++fileformat=\\ (dos\\ |unix\\ |mac\\ )\\ >" :
64
- "^\\ +\\ +fileformat=(dos|unix|mac)\\ b" ,
65
- "^++nobin\\ >" : "^\\ +\\ +nobin\\ b" ,
66
- "^[A-Z]" : "^[A-Z]" ,
67
- "^\\ $\\ w\\ +" : "^\\ $[0-9A-Za-z_]+" ,
68
- "^\\ (!\\ |global\\ |vglobal\\ )$" : "^(!|global|vglobal)$" ,
69
- "^\\ (WHILE\\ |FOR\\ )$" : "^(WHILE|FOR)$" ,
70
- "^\\ (vimgrep\\ |vimgrepadd\\ |lvimgrep\\ |lvimgrepadd\\ )$" :
71
- "^(vimgrep|vimgrepadd|lvimgrep|lvimgrepadd)$" ,
72
- "^\\ d" : "^\\ d" ,
73
- "^\\ h" : "^[A-Za-z_]" ,
74
- "^\\ s" : "^\\ s" ,
75
- "^\\ s*\\ \\ " : "^\\ s*\\ \\ " ,
76
- "^[ \\ t]$" : "^[ \\ t]$" ,
77
- "^[A-Za-z]$" : "^[A-Za-z]$" ,
78
- "^[0-9A-Za-z]$" : "^[0-9A-Za-z]$" ,
79
- "^[0-9]$" : "^[0-9]$" ,
80
- "^[0-9A-Fa-f]$" : "^[0-9A-Fa-f]$" ,
81
- "^[0-9A-Za-z_]$" : "^[0-9A-Za-z_]$" ,
82
- "^[A-Za-z_]$" : "^[A-Za-z_]$" ,
83
- "^[0-9A-Za-z_:#]$" : "^[0-9A-Za-z_:#]$" ,
84
- "^[A-Za-z_][0-9A-Za-z_]*$" : "^[A-Za-z_][0-9A-Za-z_]*$" ,
85
- "^[A-Z]$" : "^[A-Z]$" ,
86
- "^[a-z]$" : "^[a-z]$" ,
87
- "^[vgslabwt]:$\\ |^\\ ([vgslabwt]:\\ )\\ ?[A-Za-z_][0-9A-Za-z_#]*$" :
88
- "^[vgslabwt]:$|^([vgslabwt]:)?[A-Za-z_][0-9A-Za-z_#]*$" ,
89
- "^[0-7]$" : "^[0-7]$" ,
90
- "^[0-9A-Fa-f][0-9A-Fa-f]$" : "^[0-9A-Fa-f][0-9A-Fa-f]$" ,
91
- r"^\.[0-9A-Fa-f]$" : r"^\.[0-9A-Fa-f]$" ,
92
- "^[0-9A-Fa-f][^0-9A-Fa-f]$" : "^[0-9A-Fa-f][^0-9A-Fa-f]$" ,
93
- }
94
-
95
-
96
32
def viml_add (lst , item ):
97
33
lst .append (item )
98
34
@@ -114,15 +50,15 @@ def viml_equalci(a, b):
114
50
115
51
116
52
def viml_eqreg (s , reg ):
117
- return re .search (pat_vim2py [ reg ] , s , re .IGNORECASE )
53
+ return re .search (reg , s , re .IGNORECASE )
118
54
119
55
120
56
def viml_eqregh (s , reg ):
121
- return re .search (pat_vim2py [ reg ] , s )
57
+ return re .search (reg , s )
122
58
123
59
124
60
def viml_eqregq (s , reg ):
125
- return re .search (pat_vim2py [ reg ] , s , re .IGNORECASE )
61
+ return re .search (reg , s , re .IGNORECASE )
126
62
127
63
128
64
def viml_escape (s , chars ):
@@ -378,64 +314,64 @@ def viml_stridx(a, b):
378
314
379
315
380
316
def isalpha (c ):
381
- return viml_eqregh (c , "^[A-Za-z]$" )
317
+ return viml_eqregh (c , r "^[A-Za-z]$" )
382
318
383
319
384
320
def isalnum (c ):
385
- return viml_eqregh (c , "^[0-9A-Za-z]$" )
321
+ return viml_eqregh (c , r "^[0-9A-Za-z]$" )
386
322
387
323
388
324
def isdigit (c ):
389
- return viml_eqregh (c , "^[0-9]$" )
325
+ return viml_eqregh (c , r "^[0-9]$" )
390
326
391
327
392
328
def isodigit (c ):
393
- return viml_eqregh (c , "^[0-7]$" )
329
+ return viml_eqregh (c , r "^[0-7]$" )
394
330
395
331
396
332
def isxdigit (c ):
397
- return viml_eqregh (c , "^[0-9A-Fa-f]$" )
333
+ return viml_eqregh (c , r "^[0-9A-Fa-f]$" )
398
334
399
335
400
336
def iswordc (c ):
401
- return viml_eqregh (c , "^[0-9A-Za-z_]$" )
337
+ return viml_eqregh (c , r "^[0-9A-Za-z_]$" )
402
338
403
339
404
340
def iswordc1 (c ):
405
- return viml_eqregh (c , "^[A-Za-z_]$" )
341
+ return viml_eqregh (c , r "^[A-Za-z_]$" )
406
342
407
343
408
344
def iswhite (c ):
409
- return viml_eqregh (c , "^[ \ \ t]$" )
345
+ return viml_eqregh (c , r "^[ \t]$" )
410
346
411
347
412
348
def isnamec (c ):
413
- return viml_eqregh (c , "^[0-9A-Za-z_:#]$" )
349
+ return viml_eqregh (c , r "^[0-9A-Za-z_:#]$" )
414
350
415
351
416
352
def isnamec1 (c ):
417
- return viml_eqregh (c , "^[A-Za-z_]$" )
353
+ return viml_eqregh (c , r "^[A-Za-z_]$" )
418
354
419
355
420
356
def isargname (s ):
421
- return viml_eqregh (s , "^[A-Za-z_][0-9A-Za-z_]*$" )
357
+ return viml_eqregh (s , r "^[A-Za-z_][0-9A-Za-z_]*$" )
422
358
423
359
424
360
def isvarname (s ):
425
- return viml_eqregh (s , "^[vgslabwt]:$\\ |^ \\ ([vgslabwt]:\\ ) \\ ?[A-Za-z_][0-9A-Za-z_#]*$" )
361
+ return viml_eqregh (s , r "^[vgslabwt]:$|^ ([vgslabwt]:) ?[A-Za-z_][0-9A-Za-z_#]*$" )
426
362
427
363
428
364
# FIXME:
429
365
def isidc (c ):
430
- return viml_eqregh (c , "^[0-9A-Za-z_]$" )
366
+ return viml_eqregh (c , r "^[0-9A-Za-z_]$" )
431
367
432
368
433
369
def isupper (c ):
434
- return viml_eqregh (c , "^[A-Z]$" )
370
+ return viml_eqregh (c , r "^[A-Z]$" )
435
371
436
372
437
373
def islower (c ):
438
- return viml_eqregh (c , "^[a-z]$" )
374
+ return viml_eqregh (c , r "^[a-z]$" )
439
375
440
376
441
377
def ExArg ():
@@ -862,12 +798,12 @@ def parse_command(self):
862
798
self .ea .forceit = TRUE
863
799
else :
864
800
self .ea .forceit = FALSE
865
- if not viml_eqregh (self .ea .cmd .flags , " \\ <BANG \\ > " ) and self .ea .forceit and not viml_eqregh (self .ea .cmd .flags , " \\ <USERCMD \\ > " ):
801
+ if not viml_eqregh (self .ea .cmd .flags , r"\bBANG\b " ) and self .ea .forceit and not viml_eqregh (self .ea .cmd .flags , r"\bUSERCMD\b " ):
866
802
raise VimLParserException (Err ("E477: No ! allowed" , self .ea .cmdpos ))
867
803
if self .ea .cmd .name != "!" :
868
804
self .reader .skip_white ()
869
805
self .ea .argpos = self .reader .getpos ()
870
- if viml_eqregh (self .ea .cmd .flags , " \\ <ARGOPT \\ > " ):
806
+ if viml_eqregh (self .ea .cmd .flags , r"\bARGOPT\b " ):
871
807
self .parse_argopt ()
872
808
if self .ea .cmd .name == "write" or self .ea .cmd .name == "update" :
873
809
if self .reader .p (0 ) == ">" :
@@ -892,7 +828,7 @@ def parse_command(self):
892
828
self .reader .getn (1 )
893
829
self .ea .amount += 1
894
830
self .reader .skip_white ()
895
- if viml_eqregh (self .ea .cmd .flags , " \\ <EDITCMD \\ > " ) and not self .ea .usefilter :
831
+ if viml_eqregh (self .ea .cmd .flags , r"\bEDITCMD\b " ) and not self .ea .usefilter :
896
832
self .parse_argcmd ()
897
833
self ._parse_command (self .ea .cmd .parser )
898
834
@@ -1001,18 +937,18 @@ def find_command(self):
1001
937
if c == "k" :
1002
938
self .reader .getn (1 )
1003
939
name = "k"
1004
- elif c == "s" and viml_eqregh (self .reader .peekn (5 ), " \\ v^s% (c[^sr][^i][^p]|g|i[^mlg]|I|r[^e])" ):
940
+ elif c == "s" and viml_eqregh (self .reader .peekn (5 ), r"^s (c[^sr][^i][^p]|g|i[^mlg]|I|r[^e])" ):
1005
941
self .reader .getn (1 )
1006
942
name = "substitute"
1007
- elif viml_eqregh (c , "[@*!=><&~#]" ):
943
+ elif viml_eqregh (c , r "[@*!=><&~#]" ):
1008
944
self .reader .getn (1 )
1009
945
name = c
1010
946
elif self .reader .peekn (2 ) == "py" :
1011
947
name = self .reader .read_alnum ()
1012
948
else :
1013
949
pos = self .reader .tell ()
1014
950
name = self .reader .read_alpha ()
1015
- if name != "del" and viml_eqregh (name , " \\ v^d%[ elete] [lp]$" ):
951
+ if name != "del" and viml_eqregh (name , r"^d( elete|elet|ele|el|e) [lp]$" ):
1016
952
self .reader .seek_set (pos )
1017
953
name = self .reader .getn (viml_len (name ) - 1 )
1018
954
if name == "" :
@@ -1037,7 +973,7 @@ def find_command(self):
1037
973
cmd = NIL
1038
974
break
1039
975
# FIXME: user defined command
1040
- if (cmd is NIL or cmd .name == "Print" ) and viml_eqregh (name , "^[A-Z]" ):
976
+ if (cmd is NIL or cmd .name == "Print" ) and viml_eqregh (name , r "^[A-Z]" ):
1041
977
name += self .reader .read_alnum ()
1042
978
del cmd
1043
979
cmd = AttributeDict ({"name" : name , "flags" : "USERCMD" , "parser" : "parse_cmd_usercmd" })
@@ -1053,36 +989,36 @@ def parse_hashbang(self):
1053
989
def parse_argopt (self ):
1054
990
while self .reader .p (0 ) == "+" and self .reader .p (1 ) == "+" :
1055
991
s = self .reader .peekn (20 )
1056
- if viml_eqregh (s , "^+ +bin\\ > " ):
992
+ if viml_eqregh (s , r"^\+\ +bin\b " ):
1057
993
self .reader .getn (5 )
1058
994
self .ea .force_bin = 1
1059
- elif viml_eqregh (s , "^+ +nobin\\ > " ):
995
+ elif viml_eqregh (s , r"^\+\ +nobin\b " ):
1060
996
self .reader .getn (7 )
1061
997
self .ea .force_bin = 2
1062
- elif viml_eqregh (s , "^+ +edit\\ > " ):
998
+ elif viml_eqregh (s , r"^\+\ +edit\b " ):
1063
999
self .reader .getn (6 )
1064
1000
self .ea .read_edit = 1
1065
- elif viml_eqregh (s , "^+ +ff=\\ (dos\\ |unix\\ |mac\\ ) \\ > " ):
1001
+ elif viml_eqregh (s , r"^\+\ +ff=(dos|unix|mac)\b " ):
1066
1002
self .reader .getn (5 )
1067
1003
self .ea .force_ff = self .reader .read_alpha ()
1068
- elif viml_eqregh (s , "^+ +fileformat=\\ (dos\\ |unix\\ |mac\\ ) \\ > " ):
1004
+ elif viml_eqregh (s , r"^\+\ +fileformat=(dos|unix|mac)\b " ):
1069
1005
self .reader .getn (13 )
1070
1006
self .ea .force_ff = self .reader .read_alpha ()
1071
- elif viml_eqregh (s , "^+ +enc=\ \ S" ):
1007
+ elif viml_eqregh (s , r"^\+\ +enc=\S" ):
1072
1008
self .reader .getn (6 )
1073
1009
self .ea .force_enc = self .reader .read_nonwhite ()
1074
- elif viml_eqregh (s , "^+ +encoding=\ \ S" ):
1010
+ elif viml_eqregh (s , r"^\+\ +encoding=\S" ):
1075
1011
self .reader .getn (11 )
1076
1012
self .ea .force_enc = self .reader .read_nonwhite ()
1077
- elif viml_eqregh (s , "^+ +bad=\\ (keep\\ |drop\\ |. \\ ) \\ > " ):
1013
+ elif viml_eqregh (s , r"^\+\ +bad=(keep|drop|.)\b " ):
1078
1014
self .reader .getn (6 )
1079
- if viml_eqregh (s , "^+ +bad=keep" ):
1015
+ if viml_eqregh (s , r"^\+\ +bad=keep" ):
1080
1016
self .ea .bad_char = self .reader .getn (4 )
1081
- elif viml_eqregh (s , "^+ +bad=drop" ):
1017
+ elif viml_eqregh (s , r"^\+\ +bad=drop" ):
1082
1018
self .ea .bad_char = self .reader .getn (4 )
1083
1019
else :
1084
1020
self .ea .bad_char = self .reader .getn (1 )
1085
- elif viml_eqregh (s , "^+ +" ):
1021
+ elif viml_eqregh (s , r"^\+\ +" ):
1086
1022
raise VimLParserException (Err ("E474: Invalid Argument" , self .reader .getpos ()))
1087
1023
else :
1088
1024
break
@@ -1147,7 +1083,7 @@ def parse_cmd_modifier_range(self):
1147
1083
# TODO:
1148
1084
def parse_cmd_common (self ):
1149
1085
end = self .reader .getpos ()
1150
- if viml_eqregh (self .ea .cmd .flags , " \\ <TRLBAR \\ > " ) and not self .ea .usefilter :
1086
+ if viml_eqregh (self .ea .cmd .flags , r"\bTRLBAR\b " ) and not self .ea .usefilter :
1151
1087
end = self .separate_nextcmd ()
1152
1088
elif self .ea .cmd .name == "!" or self .ea .cmd .name == "global" or self .ea .cmd .name == "vglobal" or self .ea .usefilter :
1153
1089
while TRUE :
@@ -1187,24 +1123,24 @@ def separate_nextcmd(self):
1187
1123
if c == "<EOF>" or c == "<EOL>" :
1188
1124
break
1189
1125
self .reader .get ()
1190
- elif self .reader .peekn (2 ) == "`=" and viml_eqregh (self .ea .cmd .flags , " \\ < \\ (XFILE\\ |FILES\\ |FILE1\\ ) \\ > " ):
1126
+ elif self .reader .peekn (2 ) == "`=" and viml_eqregh (self .ea .cmd .flags , r"\b (XFILE|FILES|FILE1)\b " ):
1191
1127
self .reader .getn (2 )
1192
1128
self .parse_expr ()
1193
1129
c = self .reader .peekn (1 )
1194
1130
if c != "`" :
1195
1131
raise VimLParserException (Err (viml_printf ("unexpected character: %s" , c ), self .reader .getpos ()))
1196
1132
self .reader .getn (1 )
1197
- elif c == "|" or c == "\n " or c == "\" " and not viml_eqregh (self .ea .cmd .flags , " \\ <NOTRLCOM \\ > " ) and (self .ea .cmd .name != "@" and self .ea .cmd .name != "*" or self .reader .getpos () != self .ea .argpos ) and (self .ea .cmd .name != "redir" or self .reader .getpos ().i != self .ea .argpos .i + 1 or pc != "@" ):
1133
+ elif c == "|" or c == "\n " or c == "\" " and not viml_eqregh (self .ea .cmd .flags , r"\bNOTRLCOM\b " ) and (self .ea .cmd .name != "@" and self .ea .cmd .name != "*" or self .reader .getpos () != self .ea .argpos ) and (self .ea .cmd .name != "redir" or self .reader .getpos ().i != self .ea .argpos .i + 1 or pc != "@" ):
1198
1134
has_cpo_bar = FALSE
1199
1135
# &cpoptions =~ 'b'
1200
- if (not has_cpo_bar or not viml_eqregh (self .ea .cmd .flags , " \\ <USECTRLV \\ > " )) and pc == "\\ " :
1136
+ if (not has_cpo_bar or not viml_eqregh (self .ea .cmd .flags , r"\bUSECTRLV\b " )) and pc == "\\ " :
1201
1137
self .reader .get ()
1202
1138
else :
1203
1139
break
1204
1140
else :
1205
1141
self .reader .get ()
1206
1142
pc = c
1207
- if not viml_eqregh (self .ea .cmd .flags , " \\ <NOTRLCOM \\ > " ):
1143
+ if not viml_eqregh (self .ea .cmd .flags , r"\bNOTRLCOM\b " ):
1208
1144
end = nospend
1209
1145
return end
1210
1146
@@ -3151,7 +3087,7 @@ def __init__(self, lines):
3151
3087
viml_add (self .pos , [lnum + 1 , col + 1 , offset ])
3152
3088
col += viml_len (c )
3153
3089
offset += viml_len (c )
3154
- while lnum + 1 < viml_len (lines ) and viml_eqregh (lines [lnum + 1 ], "^\\ s* \\ \\ " ):
3090
+ while lnum + 1 < viml_len (lines ) and viml_eqregh (lines [lnum + 1 ], r "^\s* \\" ):
3155
3091
skip = TRUE
3156
3092
col = 0
3157
3093
for c in viml_split (lines [lnum + 1 ], "\\ zs" ):
@@ -3276,11 +3212,11 @@ def read_blob(self):
3276
3212
r = ""
3277
3213
while 1 :
3278
3214
s = self .peekn (2 )
3279
- if viml_eqregh (s , "^[0-9A-Fa-f][0-9A-Fa-f]$" ):
3215
+ if viml_eqregh (s , r "^[0-9A-Fa-f][0-9A-Fa-f]$" ):
3280
3216
r += self .getn (2 )
3281
- elif viml_eqregh (s , "^ \ \ .[0-9A-Fa-f]$" ):
3217
+ elif viml_eqregh (s , r"^ \.[0-9A-Fa-f]$" ):
3282
3218
r += self .getn (1 )
3283
- elif viml_eqregh (s , "^[0-9A-Fa-f][^0-9A-Fa-f]$" ):
3219
+ elif viml_eqregh (s , r "^[0-9A-Fa-f][^0-9A-Fa-f]$" ):
3284
3220
raise VimLParserException (Err ("E973: Blob literal should have an even number of hex characters:" + s , self .getpos ()))
3285
3221
else :
3286
3222
break
0 commit comments