def __init__(self, filename, line, *args): CodeItemBase.__init__(self, filename, line, *args) argdict = {} for arg in self.args: if '.' in arg.name: self.error("Illegal argument name: '.' is not allowed. Found '%s'" % arg.name) if arg.datatype == 'void': self.error("Illegal data type: 'void' is not a valid data type for arguments") if arg.name in argdict: self.error("Duplicate argument name: '%s'" % arg.name) argdict[arg.name] = arg self.argdict = argdict localdict = {} for local in self.locals: if '.' in local.name: self.error("Illegal local variable name: '.' is not allowed. Found '%s'" % local.name) if local.datatype == 'void': self.error("Illegal data type: 'void' is not a valid data type for local variables") if local.name in localdict or local.name in argdict: self.error("Duplicate variable name: '%s'" % local.name) localdict[local.name] = local self.localdict = localdict
def __init__(self, filename, line, *args): CodeItemBase.__init__(self, filename, line, *args) if len(self.args) + len(self.locals) > 6: self.error("Function '%s' has %d arguments and local variables. At most 6 arguments and local variables are allowed" % (name, len(args) + len(locals))) argdict = {} for arg in self.args: if '.' in arg.name: self.error("Illegal argument name: '.' is not allowed. Found '%s'" % arg.name) if arg.datatype == 'void': self.error("Illegal data type: 'void' is not a valid data type for arguments") if arg.name in argdict: self.error("Duplicate argument name: '%s'" % arg.name) argdict[arg.name] = arg self.argdict = argdict localdict = {} for local in self.locals: if '.' in local.name: self.error("Illegal local variable name: '.' is not allowed. Found '%s'" % local.name) if local.datatype == 'void': self.error("Illegal data type: 'void' is not a valid data type for local variables") if local.name in localdict or local.name in argdict: self.error("Duplicate variable name: '%s'" % local.name) localdict[local.name] = local self.localdict = localdict