def visitExp1(self, ctx: MPParser.Exp1Context): if ctx.getChildCount() == 1: return self.visit(ctx.exp2(0)) else: return BinaryOp( ctx.getChild(1).getText(), self.visit(ctx.exp2(0)), self.visit(ctx.exp2(1)))
def visitExp1(self, ctx: MPParser.Exp1Context): if ctx.getChildCount() == 1: # exp2 return self.visit(ctx.exp2(0)) left = self.visit(ctx.exp2(0)) right = self.visit(ctx.exp2(1)) op = ctx.getChild(1).getText() return BinaryOp(op, left, right)
def visitExp1(self, ctx: MPParser.Exp1Context): #exp1 ADDOP exp2| exp1 OROP exp2 | exp2; # if ctx.ADDOP(): # return BinaryOp(ctx.ADDOP().getText(), # self.visit(ctx.exp1()), # self.visit(ctx.exp2())) # elif ctx.OROP(): # return BinaryOp(ctx.OROP().getText(), # self.visit(ctx.exp1()), # self.visit(ctx.exp2())) # else: # return self.visit(ctx.exp2()) if ctx.getChildCount() == 3: if ctx.ADDOP(): return BinaryOp(ctx.ADDOP().getText(), self.visit(ctx.exp1()), self.visit(ctx.exp2())) elif ctx.SUBOP(): return BinaryOp(ctx.SUBOP().getText(), self.visit(ctx.exp1()), self.visit(ctx.exp2())) elif ctx.OROP(): return BinaryOp(ctx.OROP().getText(), self.visit(ctx.exp1()), self.visit(ctx.exp2())) else: return self.visit(ctx.exp2())
def visitExp1(self, ctx: MPParser.Exp1Context): if ctx.getChildCount() == 3: if ctx.EQUAL(): return BinaryOp(ctx.EQUAL().getText(), self.visit(ctx.exp2(0)), self.visit(ctx.exp2(1))) elif ctx.NOTEQUAL(): return BinaryOp(ctx.NOTEQUAL().getText(), self.visit(ctx.exp2(0)), self.visit(ctx.exp2(1))) elif ctx.LESS(): return BinaryOp(ctx.LESS().getText(), self.visit(ctx.exp2(0)), self.visit(ctx.exp2(1))) elif ctx.LESSEQUAL(): return BinaryOp(ctx.LESSEQUAL().getText(), self.visit(ctx.exp2(0)), self.visit(ctx.exp2(1))) elif ctx.GREATER(): return BinaryOp(ctx.GREATER().getText(), self.visit(ctx.exp2(0)), self.visit(ctx.exp2(1))) elif ctx.GREATEREQUAL(): return BinaryOp(ctx.GREATEREQUAL().getText(), self.visit(ctx.exp2(0)), self.visit(ctx.exp2(1))) else: return self.visit(ctx.exp2(0))
def visitExp1(self, ctx: MPParser.Exp1Context): '''exp1: exp2 EQUAL exp2 | exp2 NOTEQUAL exp2 | exp2 LESSTHAN exp2 | exp2 GREATERTHAN exp2 | exp2 LESSEQUAL exp2 | exp2 GREATEREQUAL exp2 | exp2;''' return BinaryOp( ctx.getChild(1).getText(), self.visit(ctx.exp2(0)), self.visit( ctx.exp2(1))) if ctx.getChildCount() == 3 else self.visit( ctx.exp2(0))
def visitExp1(self, ctx:MPParser.Exp1Context): if ctx.getChildCount() == 3: exp0 = self.visit(ctx.exp2(0)) exp1 = self.visit(ctx.exp2(1)) op = self.visit(ctx.relationalOperator()) return BinaryOp(op,exp0,exp1) else: return self.visit(ctx.exp2(0))
def visitExp1(self, ctx: MPParser.Exp1Context): if ctx.getChildCount() == 1: return self.visit(ctx.exp2(0)) op = ctx.getChild(1).getText() exp2_1 = self.visit(ctx.exp2(0)) exp2_2 = self.visit(ctx.exp2(1)) return BinaryOp(op, exp2_1, exp2_2)