コード例 #1
0
 def visitExp2(self, ctx: BKITParser.Exp2Context):
     if ctx.getChildCount() == 1:
         return self.visit(ctx.exp3())
     else:
         left = self.visit(ctx.exp2())
         right = self.visit(ctx.exp3())
         return BinaryOp(ctx.getChild(1).getText(), left, right)
コード例 #2
0
 def visitExp2(self,ctx:BKITParser.Exp2Context):
     if ctx.ADD():
         return BinaryOp(
             ctx.ADD().getText(),
             self.visitExp2(ctx.exp2()),
             self.visitExp3(ctx.exp3())
         )
     elif ctx.SUB():
         return BinaryOp(
             ctx.SUB().getText(),
             self.visitExp2(ctx.exp2()),
             self.visitExp3(ctx.exp3())
         )
     elif ctx.ADDDOT():
         return BinaryOp(
             ctx.ADDDOT().getText(),
             self.visitExp2(ctx.exp2()),
             self.visitExp3(ctx.exp3())
         )
     elif ctx.SUBDOT():
         return BinaryOp(
             ctx.SUBDOT().getText(),
             self.visitExp2(ctx.exp2()),
             self.visitExp3(ctx.exp3())
         )
     else:
         return self.visitExp3(ctx.exp3())
    def visitExp2(self, ctx: BKITParser.Exp2Context):
        if ctx.getChildCount() == 1:
            return ctx.exp3().accept(self)

        left = ctx.exp2().accept(self)
        right = ctx.exp3().accept(self)
        op = ctx.getChild(1).getText()

        return BinaryOp(op, left, right)
コード例 #4
0
 def visitExp2(self,ctx:BKITParser.Exp2Context):
     if ctx.getChildCount() == 3:
         if ctx.SUB():
             return BinaryOp(ctx.SUB().getText(),self.visit(ctx.exp2(),self.visit(ctx.exp3())))
         elif ctx.SUBFLOAT():
             return BinaryOp(ctx.SUBFLOAT().getText(),self.visit(ctx.exp2(),self.visit(ctx.exp3())))
         elif ctx.ADD():
             return BinaryOp(ctx.ADD().getText(),self.visit(ctx.exp2(),self.visit(ctx.exp3())))
         elif ctx.ADDFLOAT():
             return BinaryOp(ctx.ADDFLOAT().getText(),self.visit(ctx.exp2(),self.visit(ctx.exp3())))
     else: return ctx.exp3()
コード例 #5
0
 def visitExp2(self, ctx: BKITParser.Exp2Context):
     if ctx.getChildCount() > 1:
         left = self.visit(ctx.exp2())
         right = self.visit(ctx.exp3())
         if ctx.ADD():
             op = str(ctx.ADD().getText())
         if ctx.ADDF():
             op = str(ctx.ADDF().getText())
         if ctx.SUB():
             op = str(ctx.SUB().getText())
         if ctx.SUBF():
             op = str(ctx.SUBF().getText())
         return BinaryOp(op, left, right)
     else:
         return self.visit(ctx.exp3())
コード例 #6
0
 def visitExp2(self, ctx: BKITParser.Exp2Context):
     if ctx.getChildCount() == 3:
         return BinaryOp(
             ctx.getChild(1).getText(), self.visit(ctx.getChild(0)),
             self.visit(ctx.getChild(2)))
     else:
         return self.visit(ctx.exp3())
コード例 #7
0
ファイル: ASTGeneration.py プロジェクト: negordyh/PPL_BKIT
 def visitExp2(self, ctx: BKITParser.Exp2Context):
     if ctx.getChildCount() == 1:
         return self.visitChildren(ctx)
     return BinaryOp(
         ctx.getChild(1).getText(), self.visit(ctx.exp2()),
         self.visit(ctx.exp3()))
コード例 #8
0
 def visitExp2(self, ctx: BKITParser.Exp2Context):
     return ctx.exp3().accept(
         self) if ctx.getChildCount() == 1 else BinaryOp(
             ctx.getChild(1).getText(),
             ctx.exp2().accept(self),
             ctx.exp3().accept(self))
コード例 #9
0
 def visitExp2(self, ctx: BKITParser.Exp2Context):
     if ctx.getChildCount() == 1:
         return self.visit(ctx.exp3())
     op = ctx.And().getText() if ctx.And().getText() else ctx.Or().getText()
     return BinaryOp(op, self.visit(ctx.exp2()), self.visit(ctx.exp3()))