From 46804d4fe6985da8ea1de99792c506a24e469489 Mon Sep 17 00:00:00 2001 From: Igor Gnatenko Date: Thu, 21 May 2015 19:10:01 +0300 Subject: add has_type method Signed-off-by: Igor Gnatenko --- interpreter.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'interpreter.py') diff --git a/interpreter.py b/interpreter.py index e8bfecf..63f343f 100644 --- a/interpreter.py +++ b/interpreter.py @@ -502,6 +502,7 @@ class CompilerHolder(InterpreterObject): 'run' : self.run_method, 'has_function' : self.has_function_method, 'has_member' : self.has_member_method, + 'has_type' : self.has_type_method, 'alignment' : self.alignment_method, 'version' : self.version_method, 'cmd_array' : self.cmd_array_method, @@ -578,6 +579,22 @@ class CompilerHolder(InterpreterObject): mlog.log('Checking for function "', mlog.bold(funcname), '": ', hadtxt, sep='') return had + def has_type_method(self, args, kwargs): + if len(args) != 1: + raise InterpreterException('Has_type takes exactly one argument.') + check_stringlist(args) + typename = args[0] + prefix = kwargs.get('prefix', '') + if not isinstance(prefix, str): + raise InterpreterException('Prefix argument of has_type must be a string.') + had = self.compiler.has_type(typename, prefix) + if had: + hadtxt = mlog.green('YES') + else: + hadtxt = mlog.red('NO') + mlog.log('Checking for type "', mlog.bold(typename), '": ', hadtxt, sep='') + return had + def sizeof_method(self, args, kwargs): if len(args) != 1: raise InterpreterException('Sizeof takes exactly one argument.') -- cgit v1.1