Skip to content

Commit 3a40dd9

Browse files
committed
compile
1 parent 3767a81 commit 3a40dd9

File tree

2 files changed

+14
-23
lines changed

2 files changed

+14
-23
lines changed

js/vimlparser.js

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -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

28332835
function 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)

py/vimlparser.py

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2270,14 +2270,15 @@ def get_dstring(self):
22702270
s += c
22712271
return s
22722272

2273-
def get_dict_literal_key(self):
2273+
def parse_dict_literal_key(self):
22742274
self.reader.skip_white()
2275-
r = self.reader
2276-
c = r.peek()
2275+
c = self.reader.peek()
22772276
if not isalnum(c) and c != "_" and c != "-":
22782277
raise VimLParserException(Err(viml_printf("unexpected character: %s", c), self.reader.getpos()))
2278+
node = Node(NODE_STRING)
22792279
s = c
22802280
self.reader.seek_cur(1)
2281+
node.pos = self.reader.getpos()
22812282
while TRUE:
22822283
c = self.reader.p(0)
22832284
if c == "<EOF>" or c == "<EOL>":
@@ -2286,7 +2287,8 @@ def get_dict_literal_key(self):
22862287
break
22872288
self.reader.seek_cur(1)
22882289
s += c
2289-
return s
2290+
node.value = "'" + s + "'"
2291+
return node
22902292

22912293

22922294
class ExprParser:
@@ -2874,7 +2876,7 @@ def parse_expr9(self):
28742876
self.tokenizer.get()
28752877
return node
28762878
while 1:
2877-
key = self.parse_dict_literal_key() if is_litdict else self.parse_expr1()
2879+
key = self.tokenizer.parse_dict_literal_key() if is_litdict else self.parse_expr1()
28782880
token = self.tokenizer.get()
28792881
if token.type == TOKEN_CCLOSE:
28802882
if not viml_empty(node.value):
@@ -2930,12 +2932,6 @@ def parse_expr9(self):
29302932
raise VimLParserException(Err(viml_printf("unexpected token: %s", token.value), token.pos))
29312933
return node
29322934

2933-
def parse_dict_literal_key(self):
2934-
node = Node(NODE_STRING)
2935-
node.pos = self.reader.tell()
2936-
node.value = "'" + self.tokenizer.get_dict_literal_key() + "'"
2937-
return node
2938-
29392935
# SUBSCRIPT or CONCAT
29402936
# dict "." [0-9A-Za-z_]+ => (subscript dict key)
29412937
# str "." expr6 => (concat str expr6)

0 commit comments

Comments
 (0)