01: /*
02: [The "BSD licence"]
03: Copyright (c) 2005-2006 Terence Parr
04: All rights reserved.
05:
06: Redistribution and use in source and binary forms, with or without
07: modification, are permitted provided that the following conditions
08: are met:
09: 1. Redistributions of source code must retain the above copyright
10: notice, this list of conditions and the following disclaimer.
11: 2. Redistributions in binary form must reproduce the above copyright
12: notice, this list of conditions and the following disclaimer in the
13: documentation and/or other materials provided with the distribution.
14: 3. The name of the author may not be used to endorse or promote products
15: derived from this software without specific prior written permission.
16:
17: THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
18: IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19: OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20: IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
21: INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22: NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23: DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25: (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26: THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27: */
28: package org.antlr.runtime.tree;
29:
30: import org.antlr.runtime.Token;
31:
32: /** A record of the rules used to match a token sequence. The tokens
33: * end up as the leaves of this tree and rule nodes are the interior nodes.
34: * This really adds no functionality, it is just an alias for CommonTree
35: * that is more meaningful (specific) and holds a String to display for a node.
36: */
37: public class ParseTree extends BaseTree {
38: public Object payload;
39:
40: public ParseTree(Object label) {
41: this .payload = label;
42: }
43:
44: public Tree dupNode() {
45: return null;
46: }
47:
48: public int getType() {
49: return 0;
50: }
51:
52: public String getText() {
53: return toString();
54: }
55:
56: public int getTokenStartIndex() {
57: return 0;
58: }
59:
60: public void setTokenStartIndex(int index) {
61: }
62:
63: public int getTokenStopIndex() {
64: return 0;
65: }
66:
67: public void setTokenStopIndex(int index) {
68: }
69:
70: public String toString() {
71: if (payload instanceof Token) {
72: Token t = (Token) payload;
73: if (t.getType() == Token.EOF) {
74: return "<EOF>";
75: }
76: return t.getText();
77: }
78: return payload.toString();
79: }
80: }
|