def visitFor_stmt(self, ctx: MPParser.For_stmtContext): id = Id(ctx.ID().getText()) expr1 = self.visit(ctx.exp(0)) expr2 = self.visit(ctx.exp(1)) loop = self.visit(ctx.stmt()) up = False if ctx.DOWNTO() else True if not isinstance(loop, list): loop = [loop] return For(id, expr1, expr2, up, loop)
def visitFor_stmt(self, ctx: MPParser.For_stmtContext): #for_stmt : FOR ID ASSIGN exp (TO | DOWNTO) exp DO stmt; if ctx.TO(): up = True else: up = False return For(Id(ctx.ID().getText()), self.visit(ctx.exp(0)), self.visit(ctx.exp(1)), up, self.visit(ctx.stmt()))
def visitFor_stmt(self, ctx: MPParser.For_stmtContext): if ctx.TO(): up = True elif ctx.DOWNTO(): up = False if ctx.stmt().compound_stmt() is None: for_body = [self.visit(ctx.stmt())] else: for_body = self.visit(ctx.stmt()) return For(Id(ctx.ID().getText()), self.visit(ctx.exp(0)), self.visit(ctx.exp(1)), up, for_body)
def visitFor_stmt(self, ctx: MPParser.For_stmtContext): return [ For(Id(ctx.ID().getText()), self.visit(ctx.exp(0)), self.visit(ctx.exp(1)), True if ctx.TO() else False, self.visit(ctx.statement())) ]