TokenMgrError.java
上传用户:quxuerui
上传日期:2018-01-08
资源大小:41811k
文件大小:5k
源码类别:

网格计算

开发平台:

Java

  1. /* Generated By:JavaCC: Do not edit this line. TokenMgrError.java Version 3.0 */
  2. /**
  3.  * Licensed to the Apache Software Foundation (ASF) under one
  4.  * or more contributor license agreements.  See the NOTICE file
  5.  * distributed with this work for additional information
  6.  * regarding copyright ownership.  The ASF licenses this file
  7.  * to you under the Apache License, Version 2.0 (the
  8.  * "License"); you may not use this file except in compliance
  9.  * with the License.  You may obtain a copy of the License at
  10.  *
  11.  *     http://www.apache.org/licenses/LICENSE-2.0
  12.  *
  13.  * Unless required by applicable law or agreed to in writing, software
  14.  * distributed under the License is distributed on an "AS IS" BASIS,
  15.  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  16.  * See the License for the specific language governing permissions and
  17.  * limitations under the License.
  18.  */
  19. package org.apache.hadoop.record.compiler.generated;
  20. public class TokenMgrError extends Error
  21. {
  22.   /*
  23.    * Ordinals for various reasons why an Error of this type can be thrown.
  24.    */
  25.   /**
  26.    * Lexical error occured.
  27.    */
  28.   static final int LEXICAL_ERROR = 0;
  29.   /**
  30.    * An attempt wass made to create a second instance of a static token manager.
  31.    */
  32.   static final int STATIC_LEXER_ERROR = 1;
  33.   /**
  34.    * Tried to change to an invalid lexical state.
  35.    */
  36.   static final int INVALID_LEXICAL_STATE = 2;
  37.   /**
  38.    * Detected (and bailed out of) an infinite loop in the token manager.
  39.    */
  40.   static final int LOOP_DETECTED = 3;
  41.   /**
  42.    * Indicates the reason why the exception is thrown. It will have
  43.    * one of the above 4 values.
  44.    */
  45.   int errorCode;
  46.   /**
  47.    * Replaces unprintable characters by their espaced (or unicode escaped)
  48.    * equivalents in the given string
  49.    */
  50.   protected static final String addEscapes(String str) {
  51.     StringBuffer retval = new StringBuffer();
  52.     char ch;
  53.     for (int i = 0; i < str.length(); i++) {
  54.       switch (str.charAt(i))
  55.         {
  56.         case 0 :
  57.           continue;
  58.         case 'b':
  59.           retval.append("\b");
  60.           continue;
  61.         case 't':
  62.           retval.append("\t");
  63.           continue;
  64.         case 'n':
  65.           retval.append("\n");
  66.           continue;
  67.         case 'f':
  68.           retval.append("\f");
  69.           continue;
  70.         case 'r':
  71.           retval.append("\r");
  72.           continue;
  73.         case '"':
  74.           retval.append("\"");
  75.           continue;
  76.         case ''':
  77.           retval.append("\'");
  78.           continue;
  79.         case '\':
  80.           retval.append("\\");
  81.           continue;
  82.         default:
  83.           if ((ch = str.charAt(i)) < 0x20 || ch > 0x7e) {
  84.             String s = "0000" + Integer.toString(ch, 16);
  85.             retval.append("\u" + s.substring(s.length() - 4, s.length()));
  86.           } else {
  87.             retval.append(ch);
  88.           }
  89.           continue;
  90.         }
  91.     }
  92.     return retval.toString();
  93.   }
  94.   /**
  95.    * Returns a detailed message for the Error when it is thrown by the
  96.    * token manager to indicate a lexical error.
  97.    * Parameters : 
  98.    *    EOFSeen     : indicates if EOF caused the lexicl error
  99.    *    curLexState : lexical state in which this error occured
  100.    *    errorLine   : line number when the error occured
  101.    *    errorColumn : column number when the error occured
  102.    *    errorAfter  : prefix that was seen before this error occured
  103.    *    curchar     : the offending character
  104.    * Note: You can customize the lexical error message by modifying this method.
  105.    */
  106.   protected static String LexicalError(boolean EOFSeen, int lexState, int errorLine, int errorColumn, String errorAfter, char curChar) {
  107.     return("Lexical error at line " +
  108.            errorLine + ", column " +
  109.            errorColumn + ".  Encountered: " +
  110.            (EOFSeen ? "<EOF> " : (""" + addEscapes(String.valueOf(curChar)) + """) + " (" + (int)curChar + "), ") +
  111.            "after : "" + addEscapes(errorAfter) + """);
  112.   }
  113.   /**
  114.    * You can also modify the body of this method to customize your error messages.
  115.    * For example, cases like LOOP_DETECTED and INVALID_LEXICAL_STATE are not
  116.    * of end-users concern, so you can return something like : 
  117.    *
  118.    *     "Internal Error : Please file a bug report .... "
  119.    *
  120.    * from this method for such cases in the release version of your parser.
  121.    */
  122.   public String getMessage() {
  123.     return super.getMessage();
  124.   }
  125.   /*
  126.    * Constructors of various flavors follow.
  127.    */
  128.   public TokenMgrError() {
  129.   }
  130.   public TokenMgrError(String message, int reason) {
  131.     super(message);
  132.     errorCode = reason;
  133.   }
  134.   public TokenMgrError(boolean EOFSeen, int lexState, int errorLine, int errorColumn, String errorAfter, char curChar, int reason) {
  135.     this(LexicalError(EOFSeen, lexState, errorLine, errorColumn, errorAfter, curChar), reason);
  136.   }
  137. }