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 }