From c8ab1d29d62518c630e589941524e13643a4267a Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Fri, 17 Oct 2025 10:14:05 +0200 Subject: mparser: move dictionaries to toplevel Signed-off-by: Paolo Bonzini --- mesonbuild/mparser.py | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/mesonbuild/mparser.py b/mesonbuild/mparser.py index 174a6cc12..eee6ffc04 100644 --- a/mesonbuild/mparser.py +++ b/mesonbuild/mparser.py @@ -689,6 +689,17 @@ COMPARISON_MAP: T.Mapping[str, COMPARISONS] = { 'not in': 'not in', } +ADDSUB_MAP: T.Mapping[str, ARITH_OPERATORS] = { + 'plus': 'add', + 'dash': 'sub', +} + +MULDIV_MAP: T.Mapping[str, ARITH_OPERATORS] = { + 'percent': 'mod', + 'star': 'mul', + 'fslash': 'div', +} + # Recursive descent parser for Meson's definition language. # Very basic apart from the fact that we have many precedence # levels so there are not enough words to describe them all. @@ -850,32 +861,23 @@ class Parser: return left def e5(self) -> BaseNode: - op_map = { - 'plus': 'add', - 'dash': 'sub', - } left = self.e6() while True: - op = self.accept_any(op_map) + op = self.accept_any(ADDSUB_MAP) if op: operator = self.create_node(SymbolNode, self.previous) - left = self.create_node(ArithmeticNode, op_map[op], left, operator, self.e6()) + left = self.create_node(ArithmeticNode, ADDSUB_MAP[op], left, operator, self.e6()) else: break return left def e6(self) -> BaseNode: - op_map = { - 'percent': 'mod', - 'star': 'mul', - 'fslash': 'div', - } left = self.e7() while True: - op = self.accept_any(op_map) + op = self.accept_any(MULDIV_MAP) if op: operator = self.create_node(SymbolNode, self.previous) - left = self.create_node(ArithmeticNode, op_map[op], left, operator, self.e7()) + left = self.create_node(ArithmeticNode, MULDIV_MAP[op], left, operator, self.e7()) else: break return left -- cgit v1.2.3