Lines Matching refs:self
32 def __init__(self, table, ident, name, location, return_type, param_types,
34 super(Func, self).__init__(table, ident, location, pairs)
35 self.return_type = return_type
36 self.param_types = param_types
37 self.param_strings = param_strings
38 self.body = body
39 self.isInternalMachineFunc = False
40 self.c_ident = ident
41 self.c_name = name
42 self.class_name = ""
44 def __repr__(self):
48 def prototype(self):
49 if "external" in self:
52 return_type = self.return_type.c_ident
53 void_type = self.symtab.find("void", Type)
54 if "return_by_ref" in self and self.return_type != void_type:
56 elif "return_by_pointer" in self and self.return_type != void_type:
59 return "%s %s(%s);" % (return_type, self.c_name,
60 ", ".join(self.param_strings))
62 def writeCodeFiles(self, path, includes):
65 def checkArguments(self, args):
66 if len(args) != len(self.param_types):
67 self.error("Wrong number of arguments passed to function : '%s'" +\
68 " Expected %d, got %d", self.c_ident,
69 len(self.param_types), len(args))
73 for expr,expected_type in zip(args, self.param_types):
86 def generateCode(self):
88 if "external" in self:
91 code = self.symtab.codeFormatter()
94 void_type = self.symtab.find("void", Type)
95 return_type = self.return_type.c_ident
96 if "return_by_ref" in self and self.return_type != void_type:
98 if "return_by_pointer" in self and self.return_type != void_type:
101 params = ', '.join(self.param_strings)
105 ${{self.class_name}}::${{self.c_name}}($params)
107 ${{self.body}}