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

编译器/解释器

开发平台:

Others

  1. /**
  2.  * <b>SOFTWARE RIGHTS</b>
  3.  * <p>
  4.  * ANTLR 2.6.0 MageLang Insitute, 1998
  5.  * <p>
  6.  * We reserve no legal rights to the ANTLR--it is fully in the
  7.  * public domain. An individual or company may do whatever
  8.  * they wish with source code distributed with ANTLR or the
  9.  * code generated by ANTLR, including the incorporation of
  10.  * ANTLR, or its output, into commerical software.
  11.  * <p>
  12.  * We encourage users to develop software with ANTLR. However,
  13.  * we do ask that credit is given to us for developing
  14.  * ANTLR. By "credit", we mean that if you use ANTLR or
  15.  * incorporate any source code into one of your programs
  16.  * (commercial product, research project, or otherwise) that
  17.  * you acknowledge this fact somewhere in the documentation,
  18.  * research report, etc... If you like ANTLR and have
  19.  * developed a nice tool with the output, please mention that
  20.  * you developed it using ANTLR. In addition, we ask that the
  21.  * headers remain intact in our source code. As long as these
  22.  * guidelines are kept, we expect to continue enhancing this
  23.  * system and expect to make other tools available as they are
  24.  * completed.
  25.  * <p>
  26.  * The ANTLR gang:
  27.  * @version ANTLR 2.6.0 MageLang Insitute, 1998
  28.  * @author Terence Parr, <a href=http://www.MageLang.com>MageLang Institute</a>
  29.  * @author <br>John Lilley, <a href=http://www.Empathy.com>Empathy Software</a>
  30.  * @author <br><a href="mailto:pete@yamuna.demon.co.uk">Pete Wells</a>
  31.  */
  32. #include "antlr/NoViableAltException.hpp"
  33. #include "antlr/String.hpp"
  34. ANTLR_BEGIN_NAMESPACE(antlr)
  35. NoViableAltException::NoViableAltException(RefAST t)
  36. : RecognitionException("NoViableAlt")
  37. , token(0)
  38. , node(t)
  39. {
  40. fileName = "<AST>";
  41. }
  42. NoViableAltException::NoViableAltException(RefToken t,const ANTLR_USE_NAMESPACE(std)string& fileName_)
  43. : RecognitionException("NoViableAlt") // line ")+t.getLine()+" token is "+t.getText())
  44. , token(t)
  45. , node(nullASTptr)
  46. {
  47. line = t->getLine();
  48. column = t->getColumn();
  49. fileName = fileName_;
  50. }
  51. ANTLR_USE_NAMESPACE(std)string NoViableAltException::getErrorMessage() const
  52. {
  53. return getMessage();
  54. }
  55. ANTLR_USE_NAMESPACE(std)string NoViableAltException::getMessage() const
  56. {
  57. if (token)
  58. return ANTLR_USE_NAMESPACE(std)string("unexpected token: ")+token->getText();
  59. // must a tree parser error if token==null
  60. if (!node) {
  61. return "unexpected end of subtree";
  62. }
  63. return ANTLR_USE_NAMESPACE(std)string("unexpected AST node: ")+node->toString();
  64. }
  65. ANTLR_USE_NAMESPACE(std)string NoViableAltException::toString() const
  66. {
  67. if (token)
  68. return getFileLineString()+getMessage();
  69. else
  70. return getMessage();
  71. }
  72. ANTLR_END_NAMESPACE