From 24a2cf02e26aaeaa726b23354711c2d664286d20 Mon Sep 17 00:00:00 2001 From: Daniel Mensinger Date: Thu, 14 Feb 2019 12:48:53 +0100 Subject: Can now find the assignment node of a value --- mesonbuild/mparser.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'mesonbuild/mparser.py') diff --git a/mesonbuild/mparser.py b/mesonbuild/mparser.py index ed0dc1b..942a73f 100644 --- a/mesonbuild/mparser.py +++ b/mesonbuild/mparser.py @@ -358,7 +358,8 @@ class FunctionNode(BaseNode): self.args = args class AssignmentNode(BaseNode): - def __init__(self, lineno, colno, var_name, value): + def __init__(self, subdir, lineno, colno, var_name, value): + self.subdir = subdir self.lineno = lineno self.colno = colno self.var_name = var_name @@ -366,7 +367,8 @@ class AssignmentNode(BaseNode): self.value = value class PlusAssignmentNode(BaseNode): - def __init__(self, lineno, colno, var_name, value): + def __init__(self, subdir, lineno, colno, var_name, value): + self.subdir = subdir self.lineno = lineno self.colno = colno self.var_name = var_name @@ -522,13 +524,13 @@ class Parser: value = self.e1() if not isinstance(left, IdNode): raise ParseException('Plusassignment target must be an id.', self.getline(), left.lineno, left.colno) - return PlusAssignmentNode(left.lineno, left.colno, left.value, value) + return PlusAssignmentNode(left.subdir,left.lineno, left.colno, left.value, value) elif self.accept('assign'): value = self.e1() if not isinstance(left, IdNode): raise ParseException('Assignment target must be an id.', self.getline(), left.lineno, left.colno) - return AssignmentNode(left.lineno, left.colno, left.value, value) + return AssignmentNode(left.subdir, left.lineno, left.colno, left.value, value) elif self.accept('questionmark'): if self.in_ternary: raise ParseException('Nested ternary operators are not allowed.', -- cgit v1.1