1 4 package com.tc.aspectwerkz.expression.ast; 5 6 public class TokenMgrError extends Error { 7 10 11 14 static final int LEXICAL_ERROR = 0; 15 16 19 static final int STATIC_LEXER_ERROR = 1; 20 21 24 static final int INVALID_LEXICAL_STATE = 2; 25 26 29 static final int LOOP_DETECTED = 3; 30 31 34 int errorCode; 35 36 39 protected static final String addEscapes(String str) { 40 StringBuffer retval = new StringBuffer (); 41 char ch; 42 for (int i = 0; i < str.length(); i++) { 43 switch (str.charAt(i)) { 44 case 0: 45 continue; 46 case '\b': 47 retval.append("\\b"); 48 continue; 49 case '\t': 50 retval.append("\\t"); 51 continue; 52 case '\n': 53 retval.append("\\n"); 54 continue; 55 case '\f': 56 retval.append("\\f"); 57 continue; 58 case '\r': 59 retval.append("\\r"); 60 continue; 61 case '\"': 62 retval.append("\\\""); 63 continue; 64 case '\'': 65 retval.append("\\\'"); 66 continue; 67 case '\\': 68 retval.append("\\\\"); 69 continue; 70 default: 71 if ((ch = str.charAt(i)) < 0x20 || ch > 0x7e) { 72 String s = "0000" + Integer.toString(ch, 16); 73 retval.append("\\u" + s.substring(s.length() - 4, s.length())); 74 } else { 75 retval.append(ch); 76 } 77 continue; 78 } 79 } 80 return retval.toString(); 81 } 82 83 90 protected static String LexicalError(boolean EOFSeen, 91 int lexState, 92 int errorLine, 93 int errorColumn, 94 String errorAfter, 95 char curChar) { 96 return ("Lexical error at line " 97 + errorLine 98 + ", column " 99 + errorColumn 100 + ". Encountered: " 101 + 102 (EOFSeen ? 103 "<EOF> " : ("\"" + addEscapes(String.valueOf(curChar)) + "\"") + " (" + (int) curChar + "), ") 104 + "after : \"" 105 + addEscapes(errorAfter) + "\""); 106 } 107 108 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, 131 int lexState, 132 int errorLine, 133 int errorColumn, 134 String errorAfter, 135 char curChar, 136 int reason) { 137 this(LexicalError(EOFSeen, lexState, errorLine, errorColumn, errorAfter, curChar), reason); 138 } 139 } | Popular Tags |