package uva.TaxForm.AST.Visitors; import org.antlr.v4.runtime.misc.NotNull; import uva.TaxForm.AST.NodeForm; import uva.TaxForm.AST.NodeExp.Expression; import uva.TaxForm.AST.NodeExp.Operations.OpArithmetic; import uva.TaxForm.AST.NodeQuestion.Question; import uva.TaxForm.antlr4.TaxFormParser; import uva.TaxForm.antlr4.TaxFormParser.AllMightyContext; public class VisitorArithmetic { private static Expression<?> exp = new Expression<>();; private static OpArithmetic assign = new OpArithmetic(); private static void init( Question<?> question ) { exp = question.getExpression(); exp.add(assign); } public static void visitMinus( @NotNull TaxFormParser.MinusExpressionContext ctx, Question<?> question, NodeForm form ) { init(question); assign.setOperator("-"); CommonTaxFormVisitor.visitAllMighty((AllMightyContext) ctx.allMighty(), question, form); } public static void visitAdd( @NotNull TaxFormParser.AddExpressionContext ctx, Question<?> question, NodeForm form ) { init(question); assign.setOperator("+"); CommonTaxFormVisitor.visitAllMighty((AllMightyContext) ctx.allMighty(), question, form); } public static void visitMultiply( @NotNull TaxFormParser.MultiplyExpressionContext ctx, Question<?> question, NodeForm form ) { init(question); assign.setOperator("*"); CommonTaxFormVisitor.visitAllMighty((AllMightyContext) ctx.allMighty(), question, form); } public static void visitDivide( @NotNull TaxFormParser.DivideExpressionContext ctx, Question<?> question, NodeForm form ) { init(question); assign.setOperator("/"); CommonTaxFormVisitor.visitAllMighty((AllMightyContext) ctx.allMighty(), question, form); } }