コード例 #1
0
ファイル: ASTGeneration.py プロジェクト: tranhoi199/PPL2019
 def visitIf_statement(self, ctx: MCParser.If_statementContext):
     expression = self.visit(ctx.exp())
     if_stmt = self.visit(ctx.statement(0))
     if ctx.statement(1):
         else_stmt = self.visit(ctx.statement(1))
         return If(expression, if_stmt, else_stmt)
     return If(expression, if_stmt)
コード例 #2
0
 def visitIf_statement(self, ctx: MCParser.If_statementContext):
     exp = self.visit(ctx.exp())
     if ctx.ELSE():
         _then = self.visit(ctx.block(0))
         _else = self.visit(ctx.block(1))
         return If(exp, _then, _else)
     else:
         _then = self.visit(ctx.block(0))  # TODO: again why index?
         return If(exp, _then, None)
コード例 #3
0
 def visitIf_statement(self, ctx: MCParser.If_statementContext):
     expression = self.visit(ctx.expression())
     if ctx.ELSE():
         then_statement = self.visit(ctx.statement(0))
         if (type(then_statement) == list):
             then_statement = then_statement[0]
         else_statement = self.visit(ctx.statement(1))
         if (type(else_statement) == list):
             else_statement = else_statement[0]
         return If(expression, then_statement, else_statement)
     else:
         then_statement = self.visit(ctx.statement(0))
         if (type(then_statement) == list):
             then_statement = then_statement[0]
         return If(expression, then_statement)
コード例 #4
0
 def visitIf_statement(self, ctx: MCParser.If_statementContext):
     # if_statement: IF LB exp RB statement (ELSE statement)?;
     if (ctx.ELSE()):
         return If(self.visit(ctx.exp()), self.visit(ctx.statement(0)),
                   self.visit(ctx.statement(1)))
     else:
         return If(self.visit(ctx.exp()), self.visit(ctx.statement(0)),
                   None)
コード例 #5
0
 def visitIf_statement(self, ctx:MCParser.If_statementContext):
     expr = self.visit(ctx.exp())
     thenStmt = self.visit(ctx.statement())
     return If(expr,thenStmt,self.visit(ctx.else_statement())) if (ctx.else_statement()) else If(expr,thenStmt)
コード例 #6
0
 def visitIf_statement(self, ctx: MCParser.If_statementContext):
     return self.visit(ctx.no_else_if_statement()
                       ) if ctx.no_else_if_statement() else self.visit(
                           ctx.have_else_if_statement())
コード例 #7
0
 def visitIf_statement(self, ctx: MCParser.If_statementContext):
     if ctx.ELSE():
         return If(self.visit(ctx.exp()), self.visit(ctx.statement(0)),
                   self.visit(ctx.statement(1)))
     else:
         return If(self.visit(ctx.exp()), self.visit(ctx.statement(0)))
コード例 #8
0
 def visitIf_statement(self, ctx: MCParser.If_statementContext):
     '''if_statement: IF LP exp_bool RP statement (ELSE statement)? ;'''
     return If(self.visit(ctx.exp_bool()), self.visit(ctx.statement(0)),
               self.visit(ctx.statement(1))) if ctx.ELSE() else If(
                   self.visit(ctx.exp_bool()), self.visit(ctx.statement(0)))