@@ -3481,15 +3481,16 @@ function! s:ExprTokenizer.get_dstring() abort
3481
3481
return s
3482
3482
endfunction
3483
3483
3484
- function ! s: ExprTokenizer .get_dict_literal_key () abort
3484
+ function ! s: ExprTokenizer .parse_dict_literal_key () abort
3485
3485
call self .reader.skip_white ()
3486
- let r = self .reader
3487
- let c = r .peek ()
3486
+ let c = self .reader.peek ()
3488
3487
if ! s: isalnum (c ) && c !=# ' _' && c !=# ' -'
3489
3488
throw s: Err (printf (' unexpected character: %s' , c ), self .reader.getpos ())
3490
3489
endif
3490
+ let node = s: Node (s: NODE_STRING )
3491
3491
let s = c
3492
3492
call self .reader.seek_cur (1 )
3493
+ let node.pos = self .reader.getpos ()
3493
3494
while s: TRUE
3494
3495
let c = self .reader.p (0 )
3495
3496
if c == # ' <EOF>' || c == # ' <EOL>'
@@ -3501,7 +3502,8 @@ function! s:ExprTokenizer.get_dict_literal_key() abort
3501
3502
call self .reader.seek_cur (1 )
3502
3503
let s .= c
3503
3504
endwhile
3504
- return s
3505
+ let node.value = " '" . s . " '"
3506
+ return node
3505
3507
endfunction
3506
3508
3507
3509
let s: ExprParser = {}
@@ -4145,7 +4147,7 @@ function! s:ExprParser.parse_expr9() abort
4145
4147
return node
4146
4148
endif
4147
4149
while 1
4148
- let key = is_litdict ? self .parse_dict_literal_key () : self .parse_expr1 ()
4150
+ let key = is_litdict ? self .tokenizer. parse_dict_literal_key () : self .parse_expr1 ()
4149
4151
let token = self .tokenizer.get ()
4150
4152
if token.type == # s: TOKEN_CCLOSE
4151
4153
if ! empty (node.value)
@@ -4210,13 +4212,6 @@ function! s:ExprParser.parse_expr9() abort
4210
4212
return node
4211
4213
endfunction
4212
4214
4213
- function ! s: ExprParser .parse_dict_literal_key () abort
4214
- let node = s: Node (s: NODE_STRING )
4215
- let node.pos = self .reader.tell ()
4216
- let node.value = " '" . self .tokenizer.get_dict_literal_key () . " '"
4217
- return node
4218
- endfunction
4219
-
4220
4215
" SUBSCRIPT or CONCAT
4221
4216
" dict "." [0-9A-Za-z_]+ => (subscript dict key)
4222
4217
" str "." expr6 => (concat str expr6)
0 commit comments