コード例 #1
0
 def visitExp4(self, ctx: MPParser.Exp4Context):
     if ctx.exp4() is None:
         return self.visit(ctx.exp5())
     else:
         return BinaryOp(
             ctx.getChild(1).getText(), self.visit(ctx.exp4()),
             self.visit(ctx.exp5()))
コード例 #2
0
ファイル: ASTGeneration.py プロジェクト: hieupham9809/ASS3PPL
    def visitExp4(self, ctx:MPParser.Exp4Context):
        op = ""
        if ctx.SUBOP(): op = ctx.SUBOP().getText()
        elif ctx.NOT(): op = ctx.NOT().getText()
        else: return self.visit(ctx.exp5())

        return UnaryOp(op, self.visit(ctx.exp4()))
コード例 #3
0
 def visitExp4(self, ctx: MPParser.Exp4Context):
     if ctx.getChildCount() == 1:
         return self.visit(ctx.exp5())
     if ctx.SUB():
         return UnaryOp(ctx.SUB().getText(), self.visit(ctx.exp4()))
     if ctx.NOT():
         return UnaryOp(ctx.NOT().getText(), self.visit(ctx.exp4()))
コード例 #4
0
 def visitExp4(self, ctx: MPParser.Exp4Context):
     if (ctx.SUB() or ctx.NOT()):
         if ctx.SUB():
             return UnaryOp(ctx.SUB().getText(), self.visit(ctx.exp4()))
         elif ctx.NOT():
             return UnaryOp(ctx.NOT().getText(), self.visit(ctx.exp4()))
     else:
         return self.visit(ctx.exp5())
コード例 #5
0
ファイル: ASTGeneration.py プロジェクト: sarv19/ass3_2
 def visitExp4(self, ctx: MPParser.Exp4Context):
     if (ctx.DIVSI()):
         return BinaryOp("/", self.visit(ctx.exp4()),
                         self.visit(ctx.exp5()))
     elif (ctx.MUL()):
         return BinaryOp("*", self.visit(ctx.exp4()),
                         self.visit(ctx.exp5()))
     elif (ctx.MOD()):
         mod = ctx.MOD().getText()
         return BinaryOp(mod, self.visit(ctx.exp4()),
                         self.visit(ctx.exp5()))
     elif (ctx.AND()):
         return BinaryOp(ctx.AND().getText(), self.visit(ctx.exp4()),
                         self.visit(ctx.exp5()))
     elif (ctx.DIV()):
         return BinaryOp(ctx.DIV().getText(), self.visit(ctx.exp4()),
                         self.visit(ctx.exp5()))
     else:
         return self.visit(ctx.exp5())
コード例 #6
0
 def visitExp4(self, ctx: MPParser.Exp4Context):
     if ctx.expr():
         return self.visit(ctx.expr())
     else:
         return self.visit(ctx.exp5())
コード例 #7
0
ファイル: ASTGeneration.py プロジェクト: ThaoTrinh/PPL
 def visitExp4(self, ctx: MPParser.Exp4Context):
     if ctx.getChildCount() == 1:
         return self.visit(ctx.exp5())
     op = ctx.getChild(0).getText()
     exp4 = self.visit(ctx.exp4())
     return UnaryOp(op, exp4)
コード例 #8
0
 def visitExp4(self, ctx: MPParser.Exp4Context):
     '''exp4: SUB exp4 | NOT exp4 | exp5;'''
     return UnaryOp(ctx.getChild(0).getText(), self.visit(
         ctx.exp4())) if ctx.getChildCount() == 2 else self.visit(
             ctx.exp5())