def visitTerm(self, ctx: CParser.TermContext): try: operator = Expression.BinOpTokens(self.visitMulOp(ctx.mulOp())) left = self.visitTerm(ctx.term()) right = self.visitUnaryExpression(ctx.unaryExpression()) return Expression.BinOp(ctx.start.line, ctx.start.column, operator, left, right) except: return self.visitChildren(ctx)
def visitRelExpression(self, ctx: CParser.RelExpressionContext): try: operator = Expression.BinOpTokens(self.visitRelOp(ctx.relOp())) left = self.visitSumExpression(ctx.sumExpression(0)) right = self.visitSumExpression(ctx.sumExpression(1)) return Expression.BinOp(ctx.start.line, ctx.start.column, operator, left, right) except: return self.visitChildren(ctx)