@@ -2807,15 +2807,16 @@ ExprTokenizer.prototype.get_dstring = function() {
28072807 return s ;
28082808}
28092809
2810- ExprTokenizer . prototype . get_dict_literal_key = function ( ) {
2810+ ExprTokenizer . prototype . parse_dict_literal_key = function ( ) {
28112811 this . reader . skip_white ( ) ;
2812- var r = this . reader ;
2813- var c = r . peek ( ) ;
2812+ var c = this . reader . peek ( ) ;
28142813 if ( ! isalnum ( c ) && c != "_" && c != "-" ) {
28152814 throw Err ( viml_printf ( "unexpected character: %s" , c ) , this . reader . getpos ( ) ) ;
28162815 }
2816+ var node = Node ( NODE_STRING ) ;
28172817 var s = c ;
28182818 this . reader . seek_cur ( 1 ) ;
2819+ node . pos = this . reader . getpos ( ) ;
28192820 while ( TRUE ) {
28202821 var c = this . reader . p ( 0 ) ;
28212822 if ( c == "<EOF>" || c == "<EOL>" ) {
@@ -2827,7 +2828,8 @@ ExprTokenizer.prototype.get_dict_literal_key = function() {
28272828 this . reader . seek_cur ( 1 ) ;
28282829 s += c ;
28292830 }
2830- return s ;
2831+ node . value = "'" + s + "'" ;
2832+ return node ;
28312833}
28322834
28332835function ExprParser ( ) { this . __init__ . apply ( this , arguments ) ; }
@@ -3533,7 +3535,7 @@ ExprParser.prototype.parse_expr9 = function() {
35333535 return node ;
35343536 }
35353537 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 ( ) ;
35373539 var token = this . tokenizer . get ( ) ;
35383540 if ( token . type == TOKEN_CCLOSE ) {
35393541 if ( ! viml_empty ( node . value ) ) {
@@ -3609,13 +3611,6 @@ ExprParser.prototype.parse_expr9 = function() {
36093611 return node ;
36103612}
36113613
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-
36193614// SUBSCRIPT or CONCAT
36203615// dict "." [0-9A-Za-z_]+ => (subscript dict key)
36213616// str "." expr6 => (concat str expr6)
0 commit comments