1 2 package org.xquark.xquery.parser; 3 4 public class TokenMgrError extends Error 5 { 6 9 10 13 static final int LEXICAL_ERROR = 0; 14 15 18 static final int STATIC_LEXER_ERROR = 1; 19 20 23 static final int INVALID_LEXICAL_STATE = 2; 24 25 28 static final int LOOP_DETECTED = 3; 29 30 34 int errorCode; 35 36 40 protected static final String addEscapes(String str) { 41 StringBuffer retval = new StringBuffer (); 42 char ch; 43 for (int i = 0; i < str.length(); i++) { 44 switch (str.charAt(i)) 45 { 46 case 0 : 47 continue; 48 case '\b': 49 retval.append("\\b"); 50 continue; 51 case '\t': 52 retval.append("\\t"); 53 continue; 54 case '\n': 55 retval.append("\\n"); 56 continue; 57 case '\f': 58 retval.append("\\f"); 59 continue; 60 case '\r': 61 retval.append("\\r"); 62 continue; 63 case '\"': 64 retval.append("\\\""); 65 continue; 66 case '\'': 67 retval.append("\\\'"); 68 continue; 69 case '\\': 70 retval.append("\\\\"); 71 continue; 72 default: 73 if ((ch = str.charAt(i)) < 0x20 || ch > 0x7e) { 74 String s = "0000" + Integer.toString(ch, 16); 75 retval.append("\\u" + s.substring(s.length() - 4, s.length())); 76 } else { 77 retval.append(ch); 78 } 79 continue; 80 } 81 } 82 return retval.toString(); 83 } 84 85 97 private static final String LexicalError(boolean EOFSeen, int lexState, int errorLine, int errorColumn, String errorAfter, char curChar) { 98 return("Lexical error at line " + 99 errorLine + ", column " + 100 errorColumn + ". Encountered: " + 101 (EOFSeen ? "<EOF> " : ("\"" + addEscapes(String.valueOf(curChar)) + "\"") + " (" + (int)curChar + "), ") + 102 "after : \"" + addEscapes(errorAfter) + "\""); 103 } 104 105 114 public String getMessage() { 115 return super.getMessage(); 116 } 117 118 121 122 public TokenMgrError() { 123 } 124 125 public TokenMgrError(String message, int reason) { 126 super(message); 127 errorCode = reason; 128 } 129 130 public TokenMgrError(boolean EOFSeen, int lexState, int errorLine, int errorColumn, String errorAfter, char curChar, int reason) { 131 this(LexicalError(EOFSeen, lexState, errorLine, errorColumn, errorAfter, curChar), reason); 132 } 133 } 134 | Popular Tags |