NoViableAltException.java
上传用户:afrynkmhm
上传日期:2007-01-06
资源大小:1262k
文件大小:1k
源码类别:

编译器/解释器

开发平台:

Others

  1. package antlr;
  2. /* ANTLR Translator Generator
  3.  * Project led by Terence Parr at http://www.jGuru.com
  4.  * Software rights: http://www.antlr.org/RIGHTS.html
  5.  *
  6.  * $Id: //depot/code/org.antlr/release/antlr-2.7.0/antlr/NoViableAltException.java#1 $
  7.  */
  8. import antlr.collections.AST;
  9. public class NoViableAltException extends RecognitionException {
  10. public Token token;
  11. public AST node; // handles parsing and treeparsing
  12. public NoViableAltException(AST t) {
  13. super("NoViableAlt");
  14. node = t;
  15. fileName = "<AST>";
  16. }
  17. public NoViableAltException(Token t, String fileName) {
  18. super("NoViableAlt");
  19. token = t;
  20. line = t.getLine();
  21. column = t.getColumn();
  22. this.fileName = fileName;
  23. }
  24. /**
  25.  * @deprecated As of ANTLR 2.7.0
  26.  */
  27. public String getErrorMessage () {
  28. return getMessage();
  29. }
  30. /**
  31.  * Returns a clean error message (no line number/column information)
  32.  */
  33. public String getMessage ()
  34. {
  35. if (token != null) {
  36. return "unexpected token: "+token.getText();
  37. }
  38. // must a tree parser error if token==null
  39. if ( node==TreeParser.ASTNULL ) {
  40. return "unexpected end of subtree";
  41. }
  42. return "unexpected AST node: "+node.toString();
  43. }
  44.     /**
  45.      * Returns a string representation of this exception.
  46.      */
  47.     public String toString() {
  48. if ( token!=null ) { // AST or Token?
  49.     return Tool.getFileLineString(fileName,line)+getMessage();
  50. }
  51. return getMessage();
  52.     }
  53. }