From bb9323e7eb49e06a8c9b3962f155e560094be211 Mon Sep 17 00:00:00 2001 From: haya14busa Date: Wed, 19 Jul 2017 15:55:04 +0000 Subject: [PATCH 1/2] Add scope hack for compiler (2) Follow up of #55 I forgot to change this function. --- autoload/vimlparser.vim | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/autoload/vimlparser.vim b/autoload/vimlparser.vim index f2016913..431f3402 100644 --- a/autoload/vimlparser.vim +++ b/autoload/vimlparser.vim @@ -3222,19 +3222,22 @@ function! s:ExprParser.parse_expr7() let node = s:Node(s:NODE_NOT) let node.pos = token.pos let node.left = self.parse_expr7() + return node elseif token.type == s:TOKEN_MINUS let node = s:Node(s:NODE_MINUS) let node.pos = token.pos let node.left = self.parse_expr7() + return node elseif token.type == s:TOKEN_PLUS let node = s:Node(s:NODE_PLUS) let node.pos = token.pos let node.left = self.parse_expr7() + return node else call self.reader.seek_set(pos) let node = self.parse_expr8() + return node endif - return node endfunction " expr8: expr8[expr1] From f50da53300c4c83137782a2f1fc7d2325ec6f7d3 Mon Sep 17 00:00:00 2001 From: haya14busa Date: Wed, 19 Jul 2017 16:18:57 +0000 Subject: [PATCH 2/2] update generated code --- js/vimlparser.js | 5 ++++- py/vimlparser.py | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/js/vimlparser.js b/js/vimlparser.js index 760f3589..b6b88a85 100644 --- a/js/vimlparser.js +++ b/js/vimlparser.js @@ -3072,22 +3072,25 @@ ExprParser.prototype.parse_expr7 = function() { var node = Node(NODE_NOT); node.pos = token.pos; node.left = this.parse_expr7(); + return node; } else if (token.type == TOKEN_MINUS) { var node = Node(NODE_MINUS); node.pos = token.pos; node.left = this.parse_expr7(); + return node; } else if (token.type == TOKEN_PLUS) { var node = Node(NODE_PLUS); node.pos = token.pos; node.left = this.parse_expr7(); + return node; } else { this.reader.seek_set(pos); var node = this.parse_expr8(); + return node; } - return node; } // expr8: expr8[expr1] diff --git a/py/vimlparser.py b/py/vimlparser.py index cdd26376..defa7ca6 100644 --- a/py/vimlparser.py +++ b/py/vimlparser.py @@ -2451,18 +2451,21 @@ def parse_expr7(self): node = Node(NODE_NOT) node.pos = token.pos node.left = self.parse_expr7() + return node elif token.type == TOKEN_MINUS: node = Node(NODE_MINUS) node.pos = token.pos node.left = self.parse_expr7() + return node elif token.type == TOKEN_PLUS: node = Node(NODE_PLUS) node.pos = token.pos node.left = self.parse_expr7() + return node else: self.reader.seek_set(pos) node = self.parse_expr8() - return node + return node # expr8: expr8[expr1] # expr8[expr1 : expr1]