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.OpBoolean; import uva.TaxForm.AST.NodeQuestion.Question; import uva.TaxForm.antlr4.TaxFormParser; import uva.TaxForm.antlr4.TaxFormParser.AllMightyContext; public class VisitorBoolean { private static Expression<?> exp = new Expression<>();; private static OpBoolean assign = new OpBoolean(); private static void init( Question<?> question ) { exp = question.getExpression(); exp.add(assign); } public static void visitAnd( @NotNull TaxFormParser.AndExpressionContext ctx, Question<?> question, NodeForm form ) { init(question); assign.setOperator("&&"); CommonTaxFormVisitor.visitAllMighty((AllMightyContext) ctx.allMighty(), question, form); } public static void visitOr( @NotNull TaxFormParser.OrExpressionContext ctx, Question<?> question, NodeForm form ) { init(question); assign.setOperator("||"); CommonTaxFormVisitor.visitAllMighty((AllMightyContext) ctx.allMighty(), question, form); } public static void visitNot( @NotNull TaxFormParser.NotExpressionContext ctx, Question<?> question, NodeForm form ) { init(question); assign.setOperator("!"); CommonTaxFormVisitor.visitAllMighty((AllMightyContext) ctx.allMighty(), question, form); } }