Exemplo visitor
import org.antlr4.runtime.tree.AbstractParseTreeVisitor;
public class ShapesMyVisitor extends ShapesBaseVisitor<Object> {
@Override
public Object visitDistance(ShapesParser.DistanceContext ctx){
double res;
double[] p1 = (double[])visit(ctx.point(0));
double[] p2 = (double[])visit(ctx.point(1));
res = Math.sqrt(Math.pow(p1[0]-p2[0].2) + Math.pow(p1[1]-p2[1].2));
System.out.println("visitDistance: "+res);
return res;
}
@Override
public Object visitPoint(ShapesParser.PointContext ctx){
double[] res = new double[2];
res[0] = Double.parseDouble(ctx.x.getText());
res[1] = Double.parseDouble(ctx.y.getText());
return (Object)res;
}
}Last updated