aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2012-12-29 15:51:51 +0200
committerJussi Pakkanen <jpakkane@gmail.com>2012-12-29 15:51:51 +0200
commit1ead90f1997eb3e0cfe794d9ce8fe6b077855c2e (patch)
tree20295b1aefdb96367981fec1bfcfe2d8293c72a6
parent851f642ee475cb86372e05e732c4287be06814a7 (diff)
downloadmeson-1ead90f1997eb3e0cfe794d9ce8fe6b077855c2e.zip
meson-1ead90f1997eb3e0cfe794d9ce8fe6b077855c2e.tar.gz
meson-1ead90f1997eb3e0cfe794d9ce8fe6b077855c2e.tar.bz2
Even more extracting.
-rwxr-xr-xinterpreter.py32
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)