Lines Matching refs:self
32 def __init__(self, slicc, cond, then, else_):
33 super(IfStatementAST, self).__init__(slicc)
38 self.cond = cond
39 self.then = then
40 self.else_ = else_
42 def __repr__(self):
43 return "[IfStatement: %r%r%r]" % (self.cond, self.then, self.else_)
45 def generate(self, code, return_type):
46 cond_code = self.slicc.codeFormatter()
47 cond_type = self.cond.generate(cond_code)
49 if cond_type != self.symtab.find("bool", Type):
50 self.cond.error("Condition of if stmt must be bool, type was '%s'",
58 self.symtab.pushFrame()
59 self.then.generate(code, return_type)
60 self.symtab.popFrame()
63 if self.else_:
66 self.symtab.pushFrame()
67 self.else_.generate(code, return_type)
68 self.symtab.popFrame()
72 def findResources(self, resources):
74 self.then.findResources(resources)
75 if self.else_ is not None:
76 self.else_.findResources(resources)