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.OpComparison; import uva.TaxForm.AST.NodeQuestion.Question; import uva.TaxForm.antlr4.TaxFormParser; import uva.TaxForm.antlr4.TaxFormParser.AllMightyContext; public class VisitorComparison<T> { private static Expression<?> exp = new Expression<>();; private static OpComparison assign = new OpComparison(); private static void init( Question<?> question ) { exp = question.getExpression(); exp.add(assign); } //Lower public static void visitLower( @NotNull TaxFormParser.LowerExpressionContext ctx, Question<?> question, NodeForm form ) { init(question); assign.setOperator("<"); CommonTaxFormVisitor.visitAllMighty((AllMightyContext) ctx.allMighty(), question, form); } //Upper public static void visitUpper( @NotNull TaxFormParser.UpperExpressionContext ctx, Question<?> question, NodeForm form ) { init(question); assign.setOperator(">"); CommonTaxFormVisitor.visitAllMighty((AllMightyContext) ctx.allMighty(), question, form); } //LowerEqual public static void visitLowerEqual( @NotNull TaxFormParser.LowerEqualExpressionContext ctx, Question<?> question, NodeForm form ) { init(question); assign.setOperator("<="); CommonTaxFormVisitor.visitAllMighty((AllMightyContext) ctx.allMighty(), question, form); } //UpperEqual public static void visitUpperEqual( @NotNull TaxFormParser.UpperEqualExpressionContext ctx, Question<?> question, NodeForm form ) { init(question); assign.setOperator(">="); CommonTaxFormVisitor.visitAllMighty((AllMightyContext) ctx.allMighty(), question, form); } //Equal public static void visitEqual( @NotNull TaxFormParser.EqualExpressionContext ctx, Question<?> question, NodeForm form ) { init(question); assign.setOperator("=="); CommonTaxFormVisitor.visitAllMighty((AllMightyContext) ctx.allMighty(), question, form); } //NotEqual public static void visitNotEqual( @NotNull TaxFormParser.NotEqualExpressionContext ctx, Question<?> question, NodeForm form ) { init(question); assign.setOperator("!="); CommonTaxFormVisitor.visitAllMighty((AllMightyContext) ctx.allMighty(), question, form); } }