View Javadoc

    1   package org.codehaus.groovy.syntax.lexer;
    2
    3   public class UnexpectedCharacterException extends LexerException {
    4       private char c;
    5       private char[] expected;
    6       private String message;
    7
    8       public UnexpectedCharacterException(int line, int column, char c, String message) {
    9           super("unexpected character: " + c + (message == null ? "" : "; " + message), line, column);
    10          this.c = c;
    11          this.expected = null;
    12          this.message  = message;
    13      }
    14
    15      public UnexpectedCharacterException(int line, int column, char c, char[] expected) {
    16          super("unexpected character: " + c, line, column);
    17          this.c = c;
    18          this.expected = expected;
    19          this.message  = null;
    20      }
    21
    22      public char getCharacter() {
    23          return this.c;
    24      }
    25
    26      public char[] getExpected() {
    27          return this.expected;
    28      }
    29
    30      public String getMessage() {
    31          StringBuffer message = new StringBuffer();
    32
    33          if( this.message != null ) {
    34              message.append( message );
    35          }
    36          else if( this.expected != null ) {
    37              message.append("expected ");
    38              if (this.expected.length == 1) {
    39                  message.append("'" + this.expected[0] + "'");
    40              }
    41              else {
    42                  message.append("one of {");
    43
    44                  for (int i = 0; i < this.expected.length; ++i) {
    45                      message.append("'" + this.expected[i] + "'");
    46
    47                      if (i < (this.expected.length - 1)) {
    48                          message.append(", ");
    49                      }
    50                  }
    51
    52                  message.append("}");
    53              }
    54          }
    55
    56          message.append( "; found '" ).append( c ).append( "'" );
    57
    58          return message.toString();
    59      }
    60  }