diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2012-12-29 15:51:51 +0200 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2012-12-29 15:51:51 +0200 |
commit | 1ead90f1997eb3e0cfe794d9ce8fe6b077855c2e (patch) | |
tree | 20295b1aefdb96367981fec1bfcfe2d8293c72a6 | |
parent | 851f642ee475cb86372e05e732c4287be06814a7 (diff) | |
download | meson-1ead90f1997eb3e0cfe794d9ce8fe6b077855c2e.zip meson-1ead90f1997eb3e0cfe794d9ce8fe6b077855c2e.tar.gz meson-1ead90f1997eb3e0cfe794d9ce8fe6b077855c2e.tar.bz2 |
Even more extracting.
-rwxr-xr-x | interpreter.py | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/interpreter.py b/interpreter.py index 550b3eb..a558022 100755 --- a/interpreter.py +++ b/interpreter.py @@ -74,29 +74,29 @@ class Interpreter(): self.project = args[0].get_string() print("Project name is %s." % self.project) + def func_message(self, node, args): + self.validate_arguments(args, 1, [nodes.StringStatement]) + print('Message: %s' % args[0].get_string()) + + def func_language(self, node, args): + self.validate_arguments(args, 1, [nodes.StringStatement]) + if len(self.compilers) > 0: + raise InvalidCode('Function language() can only be called once (line %d).' % node.lineno()) + lang = args[0].get_string() + if lang.lower() == 'c': + self.compilers.append(environment.detect_c_compiler('gcc')) + else: + raise InvalidCode('Tried to use unknown language "%s".' % lang) + def function_call(self, node): func_name = node.get_function_name() args = node.arguments.arguments if func_name == 'project': self.func_project(node, args) elif func_name == 'message': - if len(args) != 1: - raise InvalidCode('Function message() must have only one argument') - if not isinstance(args[0], nodes.StringStatement): - raise InvalidCode('Argument to message() must be a string') - print('Message: %s' % args[0].get_string()) + self.func_message(node, args) elif func_name == 'language': - if len(args) != 1: - raise InvalidCode('Function language() must have only one argument') - if not isinstance(args[0], nodes.StringStatement): - raise InvalidCode('Argument to language() must be a string') - if len(self.compilers) > 0: - raise InvalidCode('Function language() can only be called once (line %d).' % node.lineno()) - lang = args[0].get_string() - if lang.lower() == 'c': - self.compilers.append(environment.detect_c_compiler('gcc')) - else: - raise InvalidCode('Tried to use unknown language "%s".' % lang) + self.func_language(node, args) else: raise InvalidCode('Unknown function "%s".' % func_name) |