File tree Expand file tree Collapse file tree 3 files changed +458
-175
lines changed Expand file tree Collapse file tree 3 files changed +458
-175
lines changed Load Diff Large diffs are not rendered by default.
Original file line number Diff line number Diff line change @@ -58,6 +58,42 @@ let s:opprec[s:NODE_CURLYNAME] = 9
58
58
let s: opprec [s: NODE_ENV ] = 9
59
59
let s: opprec [s: NODE_REG ] = 9
60
60
61
+ " Reserved Python keywords (dict for faster lookup).
62
+ let s: reserved_keywords = {
63
+ \ ' False' : 1 ,
64
+ \ ' None' : 1 ,
65
+ \ ' True' : 1 ,
66
+ \ ' and' : 1 ,
67
+ \ ' as' : 1 ,
68
+ \ ' assert' : 1 ,
69
+ \ ' break' : 1 ,
70
+ \ ' class' : 1 ,
71
+ \ ' continue' : 1 ,
72
+ \ ' def' : 1 ,
73
+ \ ' del' : 1 ,
74
+ \ ' elif' : 1 ,
75
+ \ ' else' : 1 ,
76
+ \ ' except' : 1 ,
77
+ \ ' finally' : 1 ,
78
+ \ ' for' : 1 ,
79
+ \ ' from' : 1 ,
80
+ \ ' global' : 1 ,
81
+ \ ' if' : 1 ,
82
+ \ ' import' : 1 ,
83
+ \ ' in' : 1 ,
84
+ \ ' is' : 1 ,
85
+ \ ' lambda' : 1 ,
86
+ \ ' nonlocal' : 1 ,
87
+ \ ' not' : 1 ,
88
+ \ ' or' : 1 ,
89
+ \ ' pass' : 1 ,
90
+ \ ' raise' : 1 ,
91
+ \ ' return' : 1 ,
92
+ \ ' try' : 1 ,
93
+ \ ' while' : 1 ,
94
+ \ ' with' : 1 ,
95
+ \ ' yield' : 1 }
96
+
61
97
let s: PythonCompiler = {}
62
98
63
99
function s: PythonCompiler .new (... )
@@ -678,9 +714,6 @@ endfunction
678
714
function s: PythonCompiler .compile_dot (node)
679
715
let left = self .compile (a: node .left )
680
716
let right = self .compile (a: node .right )
681
- if right = ~ ' ^\(else\|finally\)$'
682
- let right = ' _' . right
683
- endif
684
717
return printf (' %s.%s' , left , right )
685
718
endfunction
686
719
@@ -748,6 +781,9 @@ function s:PythonCompiler.compile_identifier(node)
748
781
elseif name = ~ ' ^[sa]:'
749
782
let name = name[2 :]
750
783
endif
784
+ if has_key (s: reserved_keywords , name)
785
+ let name .= ' _'
786
+ endif
751
787
return name
752
788
endfunction
753
789
You can’t perform that action at this time.
0 commit comments