@@ -2807,15 +2807,16 @@ ExprTokenizer.prototype.get_dstring = function() {
2807
2807
return s ;
2808
2808
}
2809
2809
2810
- ExprTokenizer . prototype . get_dict_literal_key = function ( ) {
2810
+ ExprTokenizer . prototype . parse_dict_literal_key = function ( ) {
2811
2811
this . reader . skip_white ( ) ;
2812
- var r = this . reader ;
2813
- var c = r . peek ( ) ;
2812
+ var c = this . reader . peek ( ) ;
2814
2813
if ( ! isalnum ( c ) && c != "_" && c != "-" ) {
2815
2814
throw Err ( viml_printf ( "unexpected character: %s" , c ) , this . reader . getpos ( ) ) ;
2816
2815
}
2816
+ var node = Node ( NODE_STRING ) ;
2817
2817
var s = c ;
2818
2818
this . reader . seek_cur ( 1 ) ;
2819
+ node . pos = this . reader . getpos ( ) ;
2819
2820
while ( TRUE ) {
2820
2821
var c = this . reader . p ( 0 ) ;
2821
2822
if ( c == "<EOF>" || c == "<EOL>" ) {
@@ -2827,7 +2828,8 @@ ExprTokenizer.prototype.get_dict_literal_key = function() {
2827
2828
this . reader . seek_cur ( 1 ) ;
2828
2829
s += c ;
2829
2830
}
2830
- return s ;
2831
+ node . value = "'" + s + "'" ;
2832
+ return node ;
2831
2833
}
2832
2834
2833
2835
function ExprParser ( ) { this . __init__ . apply ( this , arguments ) ; }
@@ -3533,7 +3535,7 @@ ExprParser.prototype.parse_expr9 = function() {
3533
3535
return node ;
3534
3536
}
3535
3537
while ( 1 ) {
3536
- var key = is_litdict ? this . parse_dict_literal_key ( ) : this . parse_expr1 ( ) ;
3538
+ var key = is_litdict ? this . tokenizer . parse_dict_literal_key ( ) : this . parse_expr1 ( ) ;
3537
3539
var token = this . tokenizer . get ( ) ;
3538
3540
if ( token . type == TOKEN_CCLOSE ) {
3539
3541
if ( ! viml_empty ( node . value ) ) {
@@ -3609,13 +3611,6 @@ ExprParser.prototype.parse_expr9 = function() {
3609
3611
return node ;
3610
3612
}
3611
3613
3612
- ExprParser . prototype . parse_dict_literal_key = function ( ) {
3613
- var node = Node ( NODE_STRING ) ;
3614
- node . pos = this . reader . tell ( ) ;
3615
- node . value = "'" + this . tokenizer . get_dict_literal_key ( ) + "'" ;
3616
- return node ;
3617
- }
3618
-
3619
3614
// SUBSCRIPT or CONCAT
3620
3615
// dict "." [0-9A-Za-z_]+ => (subscript dict key)
3621
3616
// str "." expr6 => (concat str expr6)
0 commit comments