From 6502708b08ad6653f2cc457e758894f67c46a638 Mon Sep 17 00:00:00 2001 From: Jussi Pakkanen Date: Tue, 1 Jan 2013 20:45:11 +0200 Subject: [PATCH] Can define more than one language. --- interpreter.py | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/interpreter.py b/interpreter.py index 448849710..7b8668382 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: