aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/ast/interpreter.py
diff options
context:
space:
mode:
Diffstat (limited to 'mesonbuild/ast/interpreter.py')
-rw-r--r--mesonbuild/ast/interpreter.py19
1 files changed, 14 insertions, 5 deletions
diff --git a/mesonbuild/ast/interpreter.py b/mesonbuild/ast/interpreter.py
index 5998e5b..7954b9b 100644
--- a/mesonbuild/ast/interpreter.py
+++ b/mesonbuild/ast/interpreter.py
@@ -30,6 +30,15 @@ from ..interpreterbase import (
TYPE_nkwargs,
)
+from ..interpreter import (
+ Interpreter,
+ StringHolder,
+ BooleanHolder,
+ IntegerHolder,
+ ArrayHolder,
+ DictHolder,
+)
+
from ..mparser import (
AndNode,
ArgumentNode,
@@ -202,6 +211,9 @@ class AstInterpreter(InterpreterBase):
assert isinstance(node, mparser.FormatStringNode)
return node.value
+ def evaluate_arraystatement(self, cur: mparser.ArrayNode) -> TYPE_nvar:
+ return self.reduce_arguments(cur.args)[0]
+
def evaluate_arithmeticstatement(self, cur: ArithmeticNode) -> int:
self.evaluate_statement(cur.left)
self.evaluate_statement(cur.right)
@@ -364,18 +376,15 @@ class AstInterpreter(InterpreterBase):
mkwargs = {} # type: T.Dict[str, TYPE_nvar]
try:
if isinstance(src, str):
- from ..interpreter import Interpreter, StringHolder
result = StringHolder(src, T.cast(Interpreter, self)).method_call(node.name, margs, mkwargs)
elif isinstance(src, bool):
- from ..interpreter import Interpreter, BooleanHolder
result = BooleanHolder(src, T.cast(Interpreter, self)).method_call(node.name, margs, mkwargs)
elif isinstance(src, int):
- from ..interpreter import Interpreter, IntegerHolder
result = IntegerHolder(src, T.cast(Interpreter, self)).method_call(node.name, margs, mkwargs)
elif isinstance(src, list):
- result = self.array_method_call(src, node.name, margs, mkwargs)
+ result = ArrayHolder(src, T.cast(Interpreter, self)).method_call(node.name, margs, mkwargs)
elif isinstance(src, dict):
- result = self.dict_method_call(src, node.name, margs, mkwargs)
+ result = DictHolder(src, T.cast(Interpreter, self)).method_call(node.name, margs, mkwargs)
except mesonlib.MesonException:
return None