Lines Matching refs:self
32 def __init__(self, slicc, return_type, ident, formals, pairs, statements):
33 super(FuncDeclAST, self).__init__(slicc, pairs)
35 self.return_type = return_type
36 self.ident = ident
37 self.formals = formals
38 self.statements = statements
40 def __repr__(self):
41 return "[FuncDecl: %s]" % self.ident
43 def files(self, parent=None):
46 def generate(self, parent = None):
49 void_type = self.symtab.find("void", Type)
52 self.symtab.pushFrame()
55 return_type = self.return_type.type
58 for formal in self.formals:
69 body = self.slicc.codeFormatter()
70 if self.statements is None:
71 self["external"] = "yes"
73 rtype = self.statements.generate(body, return_type)
75 self.symtab.popFrame()
77 func_name_args = self.ident
80 for arg in self.formals:
88 machine = self.state_machine
89 func = Func(self.symtab, func_name_args, self.ident, self.location,
90 return_type, types, params, str(body), self.pairs)
94 self.error("Duplicate method: %s:%s()" % (parent, self.ident))
102 self.symtab.newSymbol(func)