diff options
author | Charles Brunet <charles.brunet@optelgroup.com> | 2023-08-23 14:22:15 -0400 |
---|---|---|
committer | Charles Brunet <charles.brunet@optelgroup.com> | 2023-09-11 07:51:18 -0400 |
commit | 306562b4666dea7828af680afbd4d111e667027f (patch) | |
tree | b51247775379f9aa4ce3543af6836209596b3613 /mesonbuild/mparser.py | |
parent | 35936283d24ed5a0aa76b184a7489d637d3e49c4 (diff) | |
download | meson-306562b4666dea7828af680afbd4d111e667027f.zip meson-306562b4666dea7828af680afbd4d111e667027f.tar.gz meson-306562b4666dea7828af680afbd4d111e667027f.tar.bz2 |
parser: use IdNode for function name and assignment name
Diffstat (limited to 'mesonbuild/mparser.py')
-rw-r--r-- | mesonbuild/mparser.py | 28 |
1 files changed, 12 insertions, 16 deletions
diff --git a/mesonbuild/mparser.py b/mesonbuild/mparser.py index 6144794..ceddf0a 100644 --- a/mesonbuild/mparser.py +++ b/mesonbuild/mparser.py @@ -470,52 +470,48 @@ class IndexNode(BaseNode): class MethodNode(BaseNode): source_object: BaseNode - name: str + name: IdNode args: ArgumentNode - def __init__(self, filename: str, lineno: int, colno: int, source_object: BaseNode, name: str, args: ArgumentNode): + def __init__(self, filename: str, lineno: int, colno: int, source_object: BaseNode, name: IdNode, args: ArgumentNode): super().__init__(lineno, colno, filename) self.source_object = source_object self.name = name - assert isinstance(self.name, str) self.args = args @dataclass(unsafe_hash=True) class FunctionNode(BaseNode): - func_name: str + func_name: IdNode args: ArgumentNode - def __init__(self, filename: str, lineno: int, colno: int, end_lineno: int, end_colno: int, func_name: str, args: ArgumentNode): + def __init__(self, filename: str, lineno: int, colno: int, end_lineno: int, end_colno: int, func_name: IdNode, args: ArgumentNode): super().__init__(lineno, colno, filename, end_lineno=end_lineno, end_colno=end_colno) self.func_name = func_name - assert isinstance(func_name, str) self.args = args @dataclass(unsafe_hash=True) class AssignmentNode(BaseNode): - var_name: str + var_name: IdNode value: BaseNode - def __init__(self, filename: str, lineno: int, colno: int, var_name: str, value: BaseNode): + def __init__(self, filename: str, lineno: int, colno: int, var_name: IdNode, value: BaseNode): super().__init__(lineno, colno, filename) self.var_name = var_name - assert isinstance(var_name, str) self.value = value @dataclass(unsafe_hash=True) class PlusAssignmentNode(BaseNode): - var_name: str + var_name: IdNode value: BaseNode - def __init__(self, filename: str, lineno: int, colno: int, var_name: str, value: BaseNode): + def __init__(self, filename: str, lineno: int, colno: int, var_name: IdNode, value: BaseNode): super().__init__(lineno, colno, filename) self.var_name = var_name - assert isinstance(var_name, str) self.value = value @@ -687,14 +683,14 @@ class Parser: if not isinstance(left, IdNode): raise ParseException('Plusassignment target must be an id.', self.getline(), left.lineno, left.colno) assert isinstance(left.value, str) - return PlusAssignmentNode(left.filename, left.lineno, left.colno, left.value, value) + return PlusAssignmentNode(left.filename, left.lineno, left.colno, left, 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) assert isinstance(left.value, str) - return AssignmentNode(left.filename, left.lineno, left.colno, left.value, value) + return AssignmentNode(left.filename, left.lineno, left.colno, left, value) elif self.accept('questionmark'): if self.in_ternary: raise ParseException('Nested ternary operators are not allowed.', @@ -783,7 +779,7 @@ class Parser: raise ParseException('Function call must be applied to plain id', self.getline(), left.lineno, left.colno) assert isinstance(left.value, str) - left = FunctionNode(left.filename, left.lineno, left.colno, self.current.lineno, self.current.colno, left.value, args) + left = FunctionNode(left.filename, left.lineno, left.colno, self.current.lineno, self.current.colno, left, args) go_again = True while go_again: go_again = False @@ -887,7 +883,7 @@ class Parser: self.expect('lparen') args = self.args() self.expect('rparen') - method = MethodNode(methodname.filename, methodname.lineno, methodname.colno, source_object, methodname.value, args) + method = MethodNode(methodname.filename, methodname.lineno, methodname.colno, source_object, methodname, args) if self.accept('dot'): return self.method_call(method) return method |