def vIfStatement(self, node): self.w('if') self.w('(') self.doCondition(node, node.cond) self.w(')') if not isinstance(node.then, ast.CompoundStatement): t = ast.CompoundStatement() t.add(node.then) self.visit(t) else: self.visit(node.then) if node.elze: self.w('else') if not isinstance(node.elze, ast.CompoundStatement): t = ast.CompoundStatement() t.add(node.elze) self.visit(t) else: self.visit(node.elze)
def vWhileStatement(self, node): self.w('while') self.w('(') self.doCondition(node, node.cond) self.w(')') if not isinstance(node.loop, ast.CompoundStatement): t = ast.CompoundStatement() t.add(node.loop) self.visit(t) else: self.visit(node.loop)
def vForStatement(self, node): self.visit(node.init) self.w(';') self.p() self.w('WHILE') self.visit(node.cond) self.w('DO') if not isinstance(node.loop, ast.CompoundStatement): node.loop = ast.CompoundStatement(node.loop) node.incr.isStatement = True node.loop.add(node.incr) self.visit(node.loop) self.p()
def vForStatementInit(self, node): self.w('for') self.w('(') self.visit(node.init) self.w(';') self.doCondition(node, node.cond) self.w(';') self.visit(node.incr) self.w(')') self.p() if not isinstance(node.loop, ast.CompoundStatement): t = ast.CompoundStatement() t.add(node.loop) self.visit(t) else: self.visit(node.loop)
def p_statement_list_01(t): '''statement_list : statement''' t[1].isStatement = True t[0] = ast.CompoundStatement(t[1])