Esempio n. 1
0
	def complete(self):
		for i in range(len(self.args)):
			arg = self.args[i]
			if (arg.__class__.__name__ == 'str'):
				type = arg
				name = "a%d" % (i+1,)
				attr = {}
				# hack to remove class
				#if type[0:5] == "class": type = type[6:]
				self.args[i] = (TypeMap.getTypename(type), name, attr)
			elif (arg.__class__.__name__ == 'tuple'):
				if (len(arg) > 3): print "Error"
				if (len(arg) == 0): print "Error"
				if (len(arg) == 1):
					type = arg[0]
					name = "a%d" % (i+1,)
					attr = {}
					# hack to remove class
					#if type[0:5] == "class": type = type[6:]
					self.args[i] = (TypeMap.getTypename(type), name, attr)
				elif len(arg) == 2:
					type = arg[0]
					if arg[1].__class__.__name__ == 'str':
						name = arg[1]
						attr = {}
					elif arg[1].__class__.__name__ == 'dict':
						name = "a%d" % (i+1,)
						attr =arg[1] 
					# hack to remove class
					#if type[0:5] == "class": type = type[6:]
					self.args[i] = (TypeMap.getTypename(type), name, attr)
				else: # len  = 3
					self.args[i] = (TypeMap.getTypename(self.args[i][0]), self.args[i][1], self.args[i][2])

		self.ndefaults = 0
		for i in range(len(self.args)):
			arg = self.args[i]
			if arg[2].has_key('default'):
				self.ndefaults = self.ndefaults+1
			elif self.ndefaults != 0:  # arg wo default following args with default
				print "Error: argument ", i+1, " of ", self.name, "must have a default value"
				import sys
				sys.exit(1)
Esempio n. 2
0
	def __init__(self, retval, args= [], flags = None):
		self.retval = TypeMap.getTypename(retval)
		self.args = ArgList()
		for a in args: self.args.add(a)
		self.args.complete()
		self.ownresult = 0

		self.protected = 0
		self.private = 0
		self.virtual = 0
		self.const = 0
		self.static = 0
		self.abstract = 0
		self.isimpl = 0
		self.doc = None
		if flags:
			if 'c' in flags: self.const = 1
			if 'p' in flags: self.protected = 1
			if 'P' in flags: self.private = 1
			if 'v' in flags: self.virtual = 1
			if 's' in flags: self.static = 1
			if 'a' in flags: self.abstract = 1
			if 'i' in flags: self.isimpl = 1
		self.implementation = ""
Esempio n. 3
0
	def addStaticMember(self, name, type):
		self.staticmembers[name] = Member(name, TypeMap.getTypename(type))