]>
Commit | Line | Data |
---|---|---|
427c49bc A |
1 | /* ANTLR Translator Generator |
2 | * Project led by Terence Parr at http://www.jGuru.com | |
3 | * Software rights: http://www.antlr.org/license.html | |
4 | * | |
5 | * $Id: //depot/code/org.antlr/release/antlr-2.7.7/lib/cpp/src/NoViableAltException.cpp#2 $ | |
6 | */ | |
7 | ||
8 | #include "antlr/NoViableAltException.hpp" | |
9 | #include "antlr/String.hpp" | |
10 | ||
11 | #ifdef ANTLR_CXX_SUPPORTS_NAMESPACE | |
12 | namespace antlr { | |
13 | #endif | |
14 | ||
15 | ANTLR_USING_NAMESPACE(std) | |
16 | ||
17 | NoViableAltException::NoViableAltException(RefAST t) | |
18 | : RecognitionException("NoViableAlt","<AST>",-1,-1), | |
19 | token(0), node(t) | |
20 | { | |
21 | } | |
22 | ||
23 | NoViableAltException::NoViableAltException( | |
24 | RefToken t, | |
25 | const ANTLR_USE_NAMESPACE(std)string& fileName_ | |
26 | ) : RecognitionException("NoViableAlt",fileName_,t->getLine(),t->getColumn()), | |
27 | token(t), node(nullASTptr) | |
28 | { | |
29 | } | |
30 | ||
31 | ANTLR_USE_NAMESPACE(std)string NoViableAltException::getMessage() const | |
32 | { | |
33 | if (token) | |
34 | { | |
35 | if( token->getType() == Token::EOF_TYPE ) | |
36 | return string("unexpected end of file"); | |
37 | else if( token->getType() == Token::NULL_TREE_LOOKAHEAD ) | |
38 | return string("unexpected end of tree"); | |
39 | else | |
40 | return string("unexpected token: ")+token->getText(); | |
41 | } | |
42 | ||
43 | // must a tree parser error if token==null | |
44 | if (!node) | |
45 | return "unexpected end of subtree"; | |
46 | ||
47 | return string("unexpected AST node: ")+node->toString(); | |
48 | } | |
49 | ||
50 | #ifdef ANTLR_CXX_SUPPORTS_NAMESPACE | |
51 | } | |
52 | #endif |