aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/mparser.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2020-05-24 00:30:03 +0300
committerGitHub <noreply@github.com>2020-05-24 00:30:03 +0300
commit187865c5a824054651b7e816cc83700a34c541f8 (patch)
tree53dcdf91da22b28b53a97a635548b99525d971fc /mesonbuild/mparser.py
parent527536dd4ae102d2d14e7ee512b6886d57fc0149 (diff)
parent550a450324c493d6a60a793c617f855cc55381fe (diff)
downloadmeson-187865c5a824054651b7e816cc83700a34c541f8.zip
meson-187865c5a824054651b7e816cc83700a34c541f8.tar.gz
meson-187865c5a824054651b7e816cc83700a34c541f8.tar.bz2
Merge pull request #6765 from mensinda/astDump2
mintro: AST JSON printer
Diffstat (limited to 'mesonbuild/mparser.py')
-rw-r--r--mesonbuild/mparser.py12
1 files changed, 5 insertions, 7 deletions
diff --git a/mesonbuild/mparser.py b/mesonbuild/mparser.py
index 2cffc47..b9e381e 100644
--- a/mesonbuild/mparser.py
+++ b/mesonbuild/mparser.py
@@ -426,8 +426,8 @@ class IfNode(BaseNode):
class IfClauseNode(BaseNode):
def __init__(self, linenode: BaseNode):
super().__init__(linenode.lineno, linenode.colno, linenode.filename)
- self.ifs = [] # type: T.List[IfNode]
- self.elseblock = EmptyNode(linenode.lineno, linenode.colno, linenode.filename) # type: T.Union[EmptyNode, CodeBlockNode]
+ self.ifs = [] # type: T.List[IfNode]
+ self.elseblock = None # type: T.Union[EmptyNode, CodeBlockNode]
class UMinusNode(BaseNode):
def __init__(self, current_location: Token, value: BaseNode):
@@ -747,9 +747,7 @@ class Parser:
block = self.codeblock()
clause.ifs.append(IfNode(clause, condition, block))
self.elseifblock(clause)
- elseblock = self.elseblock()
- if elseblock:
- clause.elseblock = elseblock
+ clause.elseblock = self.elseblock()
return clause
def elseifblock(self, clause) -> None:
@@ -759,11 +757,11 @@ class Parser:
b = self.codeblock()
clause.ifs.append(IfNode(s, s, b))
- def elseblock(self) -> T.Optional[CodeBlockNode]:
+ def elseblock(self) -> T.Union[CodeBlockNode, EmptyNode]:
if self.accept('else'):
self.expect('eol')
return self.codeblock()
- return None
+ return EmptyNode(self.current.lineno, self.current.colno, self.current.filename)
def line(self) -> BaseNode:
block_start = self.current