Clover coverage report - JBind Project
Coverage timestamp: Fr Mai 28 2004 11:17:36 CEST
file stats: LOC: 134   Methods: 6
NCLOC: 72   Classes: 1
This license of Clover is provided to support the development of JBind only. Please visit http://www.thecortex.net/clover to obtain a licensed version of Clover.
 
 Source file Conditionals Statements Methods TOTAL
TokenMgrError.java 0% 0% 0% 0%
 1   
 /* Generated By:JavaCC: Do not edit this line. TokenMgrError.java Version 2.1 */
 2   
 package org.jbind.javaParser;
 3   
 
 4   
 public class TokenMgrError extends Error
 5   
 {
 6   
    /*
 7   
     * Ordinals for various reasons why an Error of this type can be thrown.
 8   
     */
 9   
 
 10   
    /**
 11   
     * Lexical error occured.
 12   
     */
 13   
    static final int LEXICAL_ERROR = 0;
 14   
 
 15   
    /**
 16   
     * An attempt wass made to create a second instance of a static token manager.
 17   
     */
 18   
    static final int STATIC_LEXER_ERROR = 1;
 19   
 
 20   
    /**
 21   
     * Tried to change to an invalid lexical state.
 22   
     */
 23   
    static final int INVALID_LEXICAL_STATE = 2;
 24   
 
 25   
    /**
 26   
     * Detected (and bailed out of) an infinite loop in the token manager.
 27   
     */
 28   
    static final int LOOP_DETECTED = 3;
 29   
 
 30   
    /**
 31   
     * Indicates the reason why the exception is thrown. It will have
 32   
     * one of the above 4 values.
 33   
     */
 34   
    int errorCode;
 35   
 
 36   
    /**
 37   
     * Replaces unprintable characters by their espaced (or unicode escaped)
 38   
     * equivalents in the given string
 39   
     */
 40  0
    protected static final String addEscapes(String str) {
 41  0
       StringBuffer retval = new StringBuffer();
 42  0
       char ch;
 43  0
       for (int i = 0; i < str.length(); i++) {
 44  0
         switch (str.charAt(i))
 45   
         {
 46   
            case 0 :
 47  0
               continue;
 48   
            case '\b':
 49  0
               retval.append("\\b");
 50  0
               continue;
 51   
            case '\t':
 52  0
               retval.append("\\t");
 53  0
               continue;
 54   
            case '\n':
 55  0
               retval.append("\\n");
 56  0
               continue;
 57   
            case '\f':
 58  0
               retval.append("\\f");
 59  0
               continue;
 60   
            case '\r':
 61  0
               retval.append("\\r");
 62  0
               continue;
 63   
            case '\"':
 64  0
               retval.append("\\\"");
 65  0
               continue;
 66   
            case '\'':
 67  0
               retval.append("\\\'");
 68  0
               continue;
 69   
            case '\\':
 70  0
               retval.append("\\\\");
 71  0
               continue;
 72   
            default:
 73  0
               if ((ch = str.charAt(i)) < 0x20 || ch > 0x7e) {
 74  0
                  String s = "0000" + Integer.toString(ch, 16);
 75  0
                  retval.append("\\u" + s.substring(s.length() - 4, s.length()));
 76   
               } else {
 77  0
                  retval.append(ch);
 78   
               }
 79  0
               continue;
 80   
         }
 81   
       }
 82  0
       return retval.toString();
 83   
    }
 84   
 
 85   
    /**
 86   
     * Returns a detailed message for the Error when it is thrown by the
 87   
     * token manager to indicate a lexical error.
 88   
     * Parameters : 
 89   
     *    EOFSeen     : indicates if EOF caused the lexicl error
 90   
     *    curLexState : lexical state in which this error occured
 91   
     *    errorLine   : line number when the error occured
 92   
     *    errorColumn : column number when the error occured
 93   
     *    errorAfter  : prefix that was seen before this error occured
 94   
     *    curchar     : the offending character
 95   
     * Note: You can customize the lexical error message by modifying this method.
 96   
     */
 97  0
    private static final String LexicalError(boolean EOFSeen, int lexState, int errorLine, int errorColumn, String errorAfter, char curChar) {
 98  0
       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   
    /**
 106   
     * You can also modify the body of this method to customize your error messages.
 107   
     * For example, cases like LOOP_DETECTED and INVALID_LEXICAL_STATE are not
 108   
     * of end-users concern, so you can return something like : 
 109   
     *
 110   
     *     "Internal Error : Please file a bug report .... "
 111   
     *
 112   
     * from this method for such cases in the release version of your parser.
 113   
     */
 114  0
    public String getMessage() {
 115  0
       return super.getMessage();
 116   
    }
 117   
 
 118   
    /*
 119   
     * Constructors of various flavors follow.
 120   
     */
 121   
 
 122  0
    public TokenMgrError() {
 123   
    }
 124   
 
 125  0
    public TokenMgrError(String message, int reason) {
 126  0
       super(message);
 127  0
       errorCode = reason;
 128   
    }
 129   
 
 130  0
    public TokenMgrError(boolean EOFSeen, int lexState, int errorLine, int errorColumn, String errorAfter, char curChar, int reason) {
 131  0
       this(LexicalError(EOFSeen, lexState, errorLine, errorColumn, errorAfter, curChar), reason);
 132   
    }
 133   
 }
 134