001 package org.codehaus.groovy.syntax;
002
003
004 public class TokenException extends SyntaxException {
005 private Token token;
006
007 public TokenException(String message, Token token) {
008 super(
009 (token == null)
010 ? message + ". No token"
011 : message,
012 getLine(token),
013 getColumn(token));
014 }
015
016 public TokenException(String message, Throwable cause, int line, int column) {
017 super(message, cause, line, column);
018 }
019
020 public int getEndColumn() {
021 int length = 1;
022 if (token != null) {
023 length = token.getText().length();
024 }
025 return getStartColumn() + length;
026 }
027
028
029 // Implementation methods
030 // ----------------------------------------------------------------------
031 private static int getColumn(Token token) {
032 return (token != null) ? token.getStartColumn() : -1;
033 }
034
035 private static int getLine(Token token) {
036 return (token != null) ? token.getStartLine() : -1;
037 }
038
039 }