diff options
Diffstat (limited to 'interpreter.py')
-rw-r--r-- | interpreter.py | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/interpreter.py b/interpreter.py index 4297633..8c16518 100644 --- a/interpreter.py +++ b/interpreter.py @@ -503,12 +503,16 @@ class CompilerHolder(InterpreterObject): 'has_function' : self.has_function_method, 'has_member' : self.has_member_method, 'alignment' : self.alignment_method, - 'version' : self.version_method + 'version' : self.version_method, + 'cmd_array' : self.cmd_array_method, }) def version_method(self, args, kwargs): return self.compiler.version + def cmd_array_method(self, args, kwargs): + return self.compiler.exelist + def alignment_method(self, args, kwargs): if len(args) != 1: raise InterpreterException('Alignment method takes exactly one positional argument.') @@ -1682,7 +1686,7 @@ class Interpreter(): index = args[0] if not isinstance(index, int): raise InvalidArguments('Array index must be a number.') - if index < 0 or index >= len(obj): + if index < -len(obj) or index >= len(obj): raise InvalidArguments('Array index %s is out of bounds for array of size %d.' % (index, len(obj))) return obj[index] raise InterpreterException('Arrays do not have a method called "%s".' % method_name) |