aboutsummaryrefslogtreecommitdiff
path: root/interpreter.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2013-01-01 20:45:11 +0200
committerJussi Pakkanen <jpakkane@gmail.com>2013-01-01 20:45:11 +0200
commit6502708b08ad6653f2cc457e758894f67c46a638 (patch)
tree12a54209449666d4a6906acfa81143197e8a3a4a /interpreter.py
parentb1ccec0cefa3056c7c6f2786dfb807df41edca4e (diff)
downloadmeson-6502708b08ad6653f2cc457e758894f67c46a638.zip
meson-6502708b08ad6653f2cc457e758894f67c46a638.tar.gz
meson-6502708b08ad6653f2cc457e758894f67c46a638.tar.bz2
Can define more than one language.
Diffstat (limited to 'interpreter.py')
-rwxr-xr-xinterpreter.py20
1 files changed, 12 insertions, 8 deletions
diff --git a/interpreter.py b/interpreter.py
index 4488497..7b86683 100755
--- a/interpreter.py
+++ b/interpreter.py
@@ -132,16 +132,20 @@ class Interpreter():
print('Message: %s' % args[0])
def func_language(self, node, args):
- self.validate_arguments(args, 1, [str])
+ if len(args) == 0:
+ raise InvalidArguments('Line %d: no arguments to function language.' % node.lineno())
+ for a in args:
+ if not isinstance(a, str):
+ raise InvalidArguments('Line %d: Argument %s is not a string.' % (node.lineno(), str(a)))
if len(self.compilers) > 0:
raise InvalidCode('Function language() can only be called once (line %d).' % node.lineno())
- lang = args[0]
- if lang.lower() == 'c':
- comp = environment.detect_c_compiler('gcc')
- comp.sanity_check(self.scratch_dir)
- self.compilers.append(comp)
- else:
- raise InvalidCode('Tried to use unknown language "%s".' % lang)
+ for lang in args:
+ if lang.lower() == 'c':
+ comp = environment.detect_c_compiler('gcc')
+ comp.sanity_check(self.scratch_dir)
+ self.compilers.append(comp)
+ else:
+ raise InvalidCode('Tried to use unknown language "%s".' % lang)
def func_executable(self, node, args):
for a in args: