diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2013-06-30 01:53:37 +0300 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2013-06-30 01:53:37 +0300 |
commit | a52336b4294b72019587257d0848d42c0e2400fc (patch) | |
tree | 759f1f54b15242c207c0784fdc6cc255c53c4a42 /interpreter.py | |
parent | 5e2278d6d4e2337c05b2f4e583dc8620b90e9add (diff) | |
download | meson-a52336b4294b72019587257d0848d42c0e2400fc.zip meson-a52336b4294b72019587257d0848d42c0e2400fc.tar.gz meson-a52336b4294b72019587257d0848d42c0e2400fc.tar.bz2 |
Can invoke methods on general statements and not just variable names.
Diffstat (limited to 'interpreter.py')
-rw-r--r-- | interpreter.py | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/interpreter.py b/interpreter.py index 8747801..f5c04e8 100644 --- a/interpreter.py +++ b/interpreter.py @@ -1107,10 +1107,14 @@ class Interpreter(): raise InterpreterException('Unknown method "%s" for a string.' % method_name) def method_call(self, node): - object_name = node.object_name.get_value() + invokable = node.invokable + if isinstance(invokable, nodes.AtomStatement): + object_name = invokable.get_value() + obj = self.get_variable(object_name) + else: + obj = self.evaluate_statement(invokable) method_name = node.method_name.get_value() args = node.arguments - obj = self.get_variable(object_name) if isinstance(obj, str): return self.string_method_call(obj, method_name) if not isinstance(obj, InterpreterObject): |