diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2013-01-06 00:16:44 +0200 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2013-01-06 00:16:44 +0200 |
commit | c2889038cad76bcfe39be1bbf331ef296692539d (patch) | |
tree | 97a44290b0c4fb3f08b78bdb7905e6aef1374de1 /interpreter.py | |
parent | b3f656e2a796f772b9b9ced3a3dcbd2cbcfc8102 (diff) | |
download | meson-c2889038cad76bcfe39be1bbf331ef296692539d.zip meson-c2889038cad76bcfe39be1bbf331ef296692539d.tar.gz meson-c2889038cad76bcfe39be1bbf331ef296692539d.tar.bz2 |
Invoke methods through a dictionary.
Diffstat (limited to 'interpreter.py')
-rwxr-xr-x | interpreter.py | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/interpreter.py b/interpreter.py index 985c908..e879d65 100755 --- a/interpreter.py +++ b/interpreter.py @@ -38,6 +38,7 @@ class BuildTarget(InterpreterObject): self.name = name self.sources = sources self.external_deps = [] + self.methods = {'add_dep': self.add_dep_method} def get_basename(self): return self.name @@ -47,18 +48,18 @@ class BuildTarget(InterpreterObject): def add_external_dep(self, dep): if not isinstance(dep, environment.PkgConfigDependency): - print(dep) - print(type(dep)) raise InvalidArguments('Argument is not an external dependency') self.external_deps.append(dep) def get_external_deps(self): return self.external_deps + def add_dep_method(self, method_name, args): + [self.add_external_dep(dep) for dep in args] + def method_call(self, method_name, args): - if method_name == 'add_dep': - [self.add_external_dep(dep) for dep in args] - return + if method_name in self.methods: + return self.methods[method_name](self, args) raise InvalidCode('Unknown method "%s" in BuildTarget.' % method_name) class Executable(BuildTarget): |