1 5 package org.apache.commons.jxpath.ri.parser; 6 7 public class TokenMgrError extends Error 8 { 9 12 13 16 static final int LEXICAL_ERROR = 0; 17 18 21 static final int STATIC_LEXER_ERROR = 1; 22 23 26 static final int INVALID_LEXICAL_STATE = 2; 27 28 31 static final int LOOP_DETECTED = 3; 32 33 37 int errorCode; 38 39 43 public static final String addEscapes(String str) { 44 StringBuffer retval = new StringBuffer (); 45 char ch; 46 for (int i = 0; i < str.length(); i++) { 47 switch (str.charAt(i)) 48 { 49 case 0 : 50 continue; 51 case '\b': 52 retval.append("\\b"); 53 continue; 54 case '\t': 55 retval.append("\\t"); 56 continue; 57 case '\n': 58 retval.append("\\n"); 59 continue; 60 case '\f': 61 retval.append("\\f"); 62 continue; 63 case '\r': 64 retval.append("\\r"); 65 continue; 66 case '\"': 67 retval.append("\\\""); 68 continue; 69 case '\'': 70 retval.append("\\\'"); 71 continue; 72 case '\\': 73 retval.append("\\\\"); 74 continue; 75 default: 76 if ((ch = str.charAt(i)) < 0x20 || ch > 0x7e) { 77 String s = "0000" + Integer.toString(ch, 16); 78 retval.append("\\u" + s.substring(s.length() - 4, s.length())); 79 } else { 80 retval.append(ch); 81 } 82 continue; 83 } 84 } 85 return retval.toString(); 86 } 87 88 100 protected static String LexicalError(boolean EOFSeen, int lexState, int errorLine, int errorColumn, String errorAfter, char curChar) { 101 return("Lexical error at line " + 102 errorLine + ", column " + 103 errorColumn + ". Encountered: " + 104 (EOFSeen ? "<EOF> " : ("\"" + addEscapes(String.valueOf(curChar)) + "\"") + " (" + (int)curChar + "), ") + 105 "after : \"" + addEscapes(errorAfter) + "\""); 106 } 107 108 117 public String getMessage() { 118 return super.getMessage(); 119 } 120 121 124 125 public TokenMgrError() { 126 } 127 128 public TokenMgrError(String message, int reason) { 129 super(message); 130 errorCode = reason; 131 } 132 133 public TokenMgrError(boolean EOFSeen, int lexState, int errorLine, int errorColumn, String errorAfter, char curChar, int reason) { 134 this(LexicalError(EOFSeen, lexState, errorLine, errorColumn, errorAfter, curChar), reason); 135 136 position = errorColumn - 1; 138 character = curChar; 139 } 140 141 142 private int position; 143 private char character; 144 145 146 public int getPosition(){ 147 return position; 148 } 149 150 public char getCharacter(){ 151 return character; 152 } 153 } 154 | Popular Tags |