예제 #1
0
 def visitFor_stmt(self, ctx:BKITParser.For_stmtContext):
     iter_var = Id(ctx.ID().getText())
     expr1 = self.visitExpr(ctx.expr(0))
     expr2 = self.visitExpr(ctx.expr(1))
     expr3 = self.visitExpr(ctx.expr(2))
     loop = tuple(self.visitStmt_list(ctx.stmt_list()))
     return For(iter_var, expr1, expr2, expr3, loop)
예제 #2
0
 def visitFor_stmt(self, ctx:BKITParser.For_stmtContext):
     """
     idx1: Id
     expr1:Expr
     expr2:Expr
     expr3:Expr
     loop: Tuple[List[VarDecl],List[Stmt]]
     """
     getID = Id(ctx.ID().getText())
     getExpr1 = self.visitExp(ctx.exp())
     getExpr2 = self.visitConditionExpr(ctx.conditionExpr())
     getExpr3 = self.visitUpdateExpr(ctx.updateExpr())
     tempBody = []
     temp_var = []
     temp_stmt = []
     # for x in ctx.body():
     #     temp = self.visitBody(x)
     #     if temp[0] == 0:
     #         if isinstance(temp[1], list):
     #             temp_var.extend(temp[1])
     #         else:
     #             temp_var.append(temp[1])
     #     else:
     #         if isinstance(temp[1], list):
     #             temp_stmt.extend(temp[1])
     #         else:
     #             temp_stmt.append(temp[1])
     getLstBody = self.visitBody(ctx.body())
     tempBody.append(getLstBody[0])
     tempBody.append(getLstBody[1])
     getLoop = (tempBody[0], tempBody[1])
     return For(getID, getExpr1, getExpr2, getExpr3, getLoop)
 def visitFor_stmt(self,
                   ctx: BKITParser.For_stmtContext):  # return For object
     return For(Id(ctx.ID().getText()),
                ctx.expression(0).accept(self),
                ctx.expression(1).accept(self),
                ctx.expression(2).accept(self),
                ctx.statement_list().accept(self))
예제 #4
0
 def visitFor_stmt(self, ctx: BKITParser.For_stmtContext):
     
     param0 = Id(ctx.ID().getText())
     param1 = ctx.expr(0).accept(self)
     param2 = ctx.expr(1).accept(self)
     param3 = ctx.expr(2).accept(self)
     param4 = ctx.stmtlst().accept(self) if ctx.stmtlst() else ([], [])
     return  For(param0, param1, param2, param3, param4)
예제 #5
0
    def visitFor_stmt(self, ctx: BKITParser.For_stmtContext):
        idx = Id(ctx.ID().getText())
        exp1 = self.visit(ctx.exp())
        exp2 = self.visit(ctx.exp_bool())
        exp3 = self.visit(ctx.update_exp())
        loop = self.visit(ctx.stmts_list()) if ctx.stmts_list() else ([], [])

        return For(idx, exp1, exp2, exp3, loop)
    def visitFor_stmt(self, ctx: BKITParser.For_stmtContext):
        idx1 = (ctx.scalar().accept(self))[0]
        expr1 = ctx.expression(0).accept(self)
        expr2 = ctx.expression(1).accept(self)
        expr3 = ctx.expression(2).accept(self)

        vardecl = []
        stmt = []
        if ctx.variable_declaration_stmt():
            for x in ctx.variable_declaration_stmt():
                vardecl.extend(x.accept(self))

        if ctx.statement_list():
            for x in ctx.statement_list():
                stmt.append(x.accept(self))

        loop = (vardecl, stmt)
        return For(idx1, expr1, expr2, expr3, loop)
예제 #7
0
 def visitFor_stmt(self, ctx: BKITParser.For_stmtContext):
     return ctx.for_statement().accept(self)
예제 #8
0
 def visitFor_stmt(self, ctx: BKITParser.For_stmtContext):
     return For(Id(ctx.ID().getText()), self.visit(ctx.getChild(4)),
                self.visit(ctx.getChild(6)), self.visit(ctx.getChild(8)),
                self.visit(ctx.list_stmts()))
예제 #9
0
 def visitFor_stmt(self, ctx: BKITParser.For_stmtContext):
     abc = self.visit(ctx.stmt2())
     return For(Id(ctx.ID().getText()), self.visit(ctx.exp(0)),
                self.visit(ctx.exp(1)), self.visit(ctx.exp(2)),
                (abc[0], abc[1]))