コード例 #1
0
 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)
コード例 #2
0
ファイル: ASTGeneration.py プロジェクト: hungdao1311/PPL-A03
 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()))
コード例 #3
0
 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)
コード例 #4
0
 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()))
     ]