diff options
author | Daniel Mensinger <daniel@mensinger-ka.de> | 2019-12-12 17:03:53 +0100 |
---|---|---|
committer | Daniel Mensinger <daniel@mensinger-ka.de> | 2020-05-23 18:13:16 +0200 |
commit | 96eeef62ea791b19fbf9bd57c8494743b2de80bf (patch) | |
tree | 8129cdfea90547cc753767a3ed1a0a2fc917a5b5 /mesonbuild/mparser.py | |
parent | f2e2e910d9c646849e55f97215217b87de491805 (diff) | |
download | meson-96eeef62ea791b19fbf9bd57c8494743b2de80bf.zip meson-96eeef62ea791b19fbf9bd57c8494743b2de80bf.tar.gz meson-96eeef62ea791b19fbf9bd57c8494743b2de80bf.tar.bz2 |
ast: Add AST JSON printer
Diffstat (limited to 'mesonbuild/mparser.py')
-rw-r--r-- | mesonbuild/mparser.py | 12 |
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 |