@@ -29,70 +29,6 @@ class AttributeDict(dict):
2929 __delattr__ = dict .__delitem__
3030
3131
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-
9632def viml_add (lst , item ):
9733 lst .append (item )
9834
@@ -114,15 +50,15 @@ def viml_equalci(a, b):
11450
11551
11652def viml_eqreg (s , reg ):
117- return re .search (pat_vim2py [ reg ] , s , re .IGNORECASE )
53+ return re .search (reg , s , re .IGNORECASE )
11854
11955
12056def viml_eqregh (s , reg ):
121- return re .search (pat_vim2py [ reg ] , s )
57+ return re .search (reg , s )
12258
12359
12460def viml_eqregq (s , reg ):
125- return re .search (pat_vim2py [ reg ] , s , re .IGNORECASE )
61+ return re .search (reg , s , re .IGNORECASE )
12662
12763
12864def viml_escape (s , chars ):
@@ -378,64 +314,64 @@ def viml_stridx(a, b):
378314
379315
380316def isalpha (c ):
381- return viml_eqregh (c , "^[A-Za-z]$" )
317+ return viml_eqregh (c , r "^[A-Za-z]$" )
382318
383319
384320def isalnum (c ):
385- return viml_eqregh (c , "^[0-9A-Za-z]$" )
321+ return viml_eqregh (c , r "^[0-9A-Za-z]$" )
386322
387323
388324def isdigit (c ):
389- return viml_eqregh (c , "^[0-9]$" )
325+ return viml_eqregh (c , r "^[0-9]$" )
390326
391327
392328def isodigit (c ):
393- return viml_eqregh (c , "^[0-7]$" )
329+ return viml_eqregh (c , r "^[0-7]$" )
394330
395331
396332def isxdigit (c ):
397- return viml_eqregh (c , "^[0-9A-Fa-f]$" )
333+ return viml_eqregh (c , r "^[0-9A-Fa-f]$" )
398334
399335
400336def iswordc (c ):
401- return viml_eqregh (c , "^[0-9A-Za-z_]$" )
337+ return viml_eqregh (c , r "^[0-9A-Za-z_]$" )
402338
403339
404340def iswordc1 (c ):
405- return viml_eqregh (c , "^[A-Za-z_]$" )
341+ return viml_eqregh (c , r "^[A-Za-z_]$" )
406342
407343
408344def iswhite (c ):
409- return viml_eqregh (c , "^[ \ \ t]$" )
345+ return viml_eqregh (c , r "^[ \t]$" )
410346
411347
412348def isnamec (c ):
413- return viml_eqregh (c , "^[0-9A-Za-z_:#]$" )
349+ return viml_eqregh (c , r "^[0-9A-Za-z_:#]$" )
414350
415351
416352def isnamec1 (c ):
417- return viml_eqregh (c , "^[A-Za-z_]$" )
353+ return viml_eqregh (c , r "^[A-Za-z_]$" )
418354
419355
420356def 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_]*$" )
422358
423359
424360def 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_#]*$" )
426362
427363
428364# FIXME:
429365def isidc (c ):
430- return viml_eqregh (c , "^[0-9A-Za-z_]$" )
366+ return viml_eqregh (c , r "^[0-9A-Za-z_]$" )
431367
432368
433369def isupper (c ):
434- return viml_eqregh (c , "^[A-Z]$" )
370+ return viml_eqregh (c , r "^[A-Z]$" )
435371
436372
437373def islower (c ):
438- return viml_eqregh (c , "^[a-z]$" )
374+ return viml_eqregh (c , r "^[a-z]$" )
439375
440376
441377def ExArg ():
@@ -862,12 +798,12 @@ def parse_command(self):
862798 self .ea .forceit = TRUE
863799 else :
864800 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 " ):
866802 raise VimLParserException (Err ("E477: No ! allowed" , self .ea .cmdpos ))
867803 if self .ea .cmd .name != "!" :
868804 self .reader .skip_white ()
869805 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 " ):
871807 self .parse_argopt ()
872808 if self .ea .cmd .name == "write" or self .ea .cmd .name == "update" :
873809 if self .reader .p (0 ) == ">" :
@@ -892,7 +828,7 @@ def parse_command(self):
892828 self .reader .getn (1 )
893829 self .ea .amount += 1
894830 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 :
896832 self .parse_argcmd ()
897833 self ._parse_command (self .ea .cmd .parser )
898834
@@ -1001,18 +937,18 @@ def find_command(self):
1001937 if c == "k" :
1002938 self .reader .getn (1 )
1003939 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])" ):
1005941 self .reader .getn (1 )
1006942 name = "substitute"
1007- elif viml_eqregh (c , "[@*!=><&~#]" ):
943+ elif viml_eqregh (c , r "[@*!=><&~#]" ):
1008944 self .reader .getn (1 )
1009945 name = c
1010946 elif self .reader .peekn (2 ) == "py" :
1011947 name = self .reader .read_alnum ()
1012948 else :
1013949 pos = self .reader .tell ()
1014950 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]$" ):
1016952 self .reader .seek_set (pos )
1017953 name = self .reader .getn (viml_len (name ) - 1 )
1018954 if name == "" :
@@ -1037,7 +973,7 @@ def find_command(self):
1037973 cmd = NIL
1038974 break
1039975 # 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]" ):
1041977 name += self .reader .read_alnum ()
1042978 del cmd
1043979 cmd = AttributeDict ({"name" : name , "flags" : "USERCMD" , "parser" : "parse_cmd_usercmd" })
@@ -1053,36 +989,36 @@ def parse_hashbang(self):
1053989 def parse_argopt (self ):
1054990 while self .reader .p (0 ) == "+" and self .reader .p (1 ) == "+" :
1055991 s = self .reader .peekn (20 )
1056- if viml_eqregh (s , "^+ +bin\\ > " ):
992+ if viml_eqregh (s , r"^\+\ +bin\b " ):
1057993 self .reader .getn (5 )
1058994 self .ea .force_bin = 1
1059- elif viml_eqregh (s , "^+ +nobin\\ > " ):
995+ elif viml_eqregh (s , r"^\+\ +nobin\b " ):
1060996 self .reader .getn (7 )
1061997 self .ea .force_bin = 2
1062- elif viml_eqregh (s , "^+ +edit\\ > " ):
998+ elif viml_eqregh (s , r"^\+\ +edit\b " ):
1063999 self .reader .getn (6 )
10641000 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 " ):
10661002 self .reader .getn (5 )
10671003 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 " ):
10691005 self .reader .getn (13 )
10701006 self .ea .force_ff = self .reader .read_alpha ()
1071- elif viml_eqregh (s , "^+ +enc=\ \ S" ):
1007+ elif viml_eqregh (s , r"^\+\ +enc=\S" ):
10721008 self .reader .getn (6 )
10731009 self .ea .force_enc = self .reader .read_nonwhite ()
1074- elif viml_eqregh (s , "^+ +encoding=\ \ S" ):
1010+ elif viml_eqregh (s , r"^\+\ +encoding=\S" ):
10751011 self .reader .getn (11 )
10761012 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 " ):
10781014 self .reader .getn (6 )
1079- if viml_eqregh (s , "^+ +bad=keep" ):
1015+ if viml_eqregh (s , r"^\+\ +bad=keep" ):
10801016 self .ea .bad_char = self .reader .getn (4 )
1081- elif viml_eqregh (s , "^+ +bad=drop" ):
1017+ elif viml_eqregh (s , r"^\+\ +bad=drop" ):
10821018 self .ea .bad_char = self .reader .getn (4 )
10831019 else :
10841020 self .ea .bad_char = self .reader .getn (1 )
1085- elif viml_eqregh (s , "^+ +" ):
1021+ elif viml_eqregh (s , r"^\+\ +" ):
10861022 raise VimLParserException (Err ("E474: Invalid Argument" , self .reader .getpos ()))
10871023 else :
10881024 break
@@ -1147,7 +1083,7 @@ def parse_cmd_modifier_range(self):
11471083 # TODO:
11481084 def parse_cmd_common (self ):
11491085 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 :
11511087 end = self .separate_nextcmd ()
11521088 elif self .ea .cmd .name == "!" or self .ea .cmd .name == "global" or self .ea .cmd .name == "vglobal" or self .ea .usefilter :
11531089 while TRUE :
@@ -1187,24 +1123,24 @@ def separate_nextcmd(self):
11871123 if c == "<EOF>" or c == "<EOL>" :
11881124 break
11891125 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 " ):
11911127 self .reader .getn (2 )
11921128 self .parse_expr ()
11931129 c = self .reader .peekn (1 )
11941130 if c != "`" :
11951131 raise VimLParserException (Err (viml_printf ("unexpected character: %s" , c ), self .reader .getpos ()))
11961132 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 != "@" ):
11981134 has_cpo_bar = FALSE
11991135 # &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 == "\\ " :
12011137 self .reader .get ()
12021138 else :
12031139 break
12041140 else :
12051141 self .reader .get ()
12061142 pc = c
1207- if not viml_eqregh (self .ea .cmd .flags , " \\ <NOTRLCOM \\ > " ):
1143+ if not viml_eqregh (self .ea .cmd .flags , r"\bNOTRLCOM\b " ):
12081144 end = nospend
12091145 return end
12101146
@@ -3151,7 +3087,7 @@ def __init__(self, lines):
31513087 viml_add (self .pos , [lnum + 1 , col + 1 , offset ])
31523088 col += viml_len (c )
31533089 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* \\" ):
31553091 skip = TRUE
31563092 col = 0
31573093 for c in viml_split (lines [lnum + 1 ], "\\ zs" ):
@@ -3276,11 +3212,11 @@ def read_blob(self):
32763212 r = ""
32773213 while 1 :
32783214 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]$" ):
32803216 r += self .getn (2 )
3281- elif viml_eqregh (s , "^ \ \ .[0-9A-Fa-f]$" ):
3217+ elif viml_eqregh (s , r"^ \.[0-9A-Fa-f]$" ):
32823218 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]$" ):
32843220 raise VimLParserException (Err ("E973: Blob literal should have an even number of hex characters:" + s , self .getpos ()))
32853221 else :
32863222 break
0 commit comments