package com.netflix.suro.routing.filter.lang; import com.google.common.base.Joiner; import org.antlr.runtime.tree.Tree; public class UnexpectedTokenException extends RuntimeException { private Tree unexpected; private String[] expected; private Joiner joiner = Joiner.on(" or "); public UnexpectedTokenException(Tree unexpected, String... expected){ this.unexpected = unexpected; this.expected = expected; } @Override public String toString() { return String.format( "Unexpected token %s at %d:%d. Expected: %s", unexpected.getText(), unexpected.getLine(), unexpected.getCharPositionInLine(), joiner.join(expected)); } @Override public String getMessage(){ return toString(); } }