xref: /aosp_15_r20/external/apache-commons-bcel/src/examples/Mini/SimpleNode.java (revision 0c56280ab0842982c46a149f7b9eaa497e31e292)
1*0c56280aSSorin Basca /*
2*0c56280aSSorin Basca  * Licensed to the Apache Software Foundation (ASF) under one or more
3*0c56280aSSorin Basca  * contributor license agreements.  See the NOTICE file distributed with
4*0c56280aSSorin Basca  * this work for additional information regarding copyright ownership.
5*0c56280aSSorin Basca  * The ASF licenses this file to You under the Apache License, Version 2.0
6*0c56280aSSorin Basca  * (the "License"); you may not use this file except in compliance with
7*0c56280aSSorin Basca  * the License.  You may obtain a copy of the License at
8*0c56280aSSorin Basca  *
9*0c56280aSSorin Basca  *      http://www.apache.org/licenses/LICENSE-2.0
10*0c56280aSSorin Basca  *
11*0c56280aSSorin Basca  *  Unless required by applicable law or agreed to in writing, software
12*0c56280aSSorin Basca  *  distributed under the License is distributed on an "AS IS" BASIS,
13*0c56280aSSorin Basca  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14*0c56280aSSorin Basca  *  See the License for the specific language governing permissions and
15*0c56280aSSorin Basca  *  limitations under the License.
16*0c56280aSSorin Basca  *
17*0c56280aSSorin Basca  */
18*0c56280aSSorin Basca /* Generated By:JJTree: Do not edit this line. SimpleNode.java */
19*0c56280aSSorin Basca /* JJT: 0.3pre1 */
20*0c56280aSSorin Basca 
21*0c56280aSSorin Basca package Mini;
22*0c56280aSSorin Basca 
23*0c56280aSSorin Basca /**
24*0c56280aSSorin Basca  *
25*0c56280aSSorin Basca  * @version $Id$
26*0c56280aSSorin Basca  */
27*0c56280aSSorin Basca public abstract class SimpleNode implements Node {
28*0c56280aSSorin Basca   protected Node parent;
29*0c56280aSSorin Basca   protected Node[] children;
30*0c56280aSSorin Basca   protected int id;
31*0c56280aSSorin Basca   protected MiniParser parser;
32*0c56280aSSorin Basca 
SimpleNode(int i)33*0c56280aSSorin Basca   public SimpleNode(int i) {
34*0c56280aSSorin Basca     id = i;
35*0c56280aSSorin Basca   }
36*0c56280aSSorin Basca 
SimpleNode(MiniParser p, int i)37*0c56280aSSorin Basca   public SimpleNode(MiniParser p, int i) {
38*0c56280aSSorin Basca     this(i);
39*0c56280aSSorin Basca     parser = p;
40*0c56280aSSorin Basca   }
41*0c56280aSSorin Basca 
jjtOpen()42*0c56280aSSorin Basca   public void jjtOpen() {
43*0c56280aSSorin Basca   }
44*0c56280aSSorin Basca 
jjtClose()45*0c56280aSSorin Basca   public void jjtClose() {
46*0c56280aSSorin Basca   }
47*0c56280aSSorin Basca 
closeNode()48*0c56280aSSorin Basca   public void closeNode() {
49*0c56280aSSorin Basca   }
50*0c56280aSSorin Basca 
jjtSetParent(Node n)51*0c56280aSSorin Basca   public void jjtSetParent(Node n) { parent = n; }
jjtGetParent()52*0c56280aSSorin Basca   public Node jjtGetParent() { return parent; }
53*0c56280aSSorin Basca 
jjtAddChild(Node n, int i)54*0c56280aSSorin Basca   public void jjtAddChild(Node n, int i) {
55*0c56280aSSorin Basca     if (children == null) {
56*0c56280aSSorin Basca       children = new Node[i + 1];
57*0c56280aSSorin Basca     } else if (i >= children.length) {
58*0c56280aSSorin Basca       Node c[] = new Node[i + 1];
59*0c56280aSSorin Basca       System.arraycopy(children, 0, c, 0, children.length);
60*0c56280aSSorin Basca       children = c;
61*0c56280aSSorin Basca     }
62*0c56280aSSorin Basca     children[i] = n;
63*0c56280aSSorin Basca   }
64*0c56280aSSorin Basca 
jjtGetChild(int i)65*0c56280aSSorin Basca   public Node jjtGetChild(int i) {
66*0c56280aSSorin Basca     return children[i];
67*0c56280aSSorin Basca   }
68*0c56280aSSorin Basca 
jjtGetNumChildren()69*0c56280aSSorin Basca   public int jjtGetNumChildren() {
70*0c56280aSSorin Basca     return (children == null) ? 0 : children.length;
71*0c56280aSSorin Basca   }
72*0c56280aSSorin Basca 
73*0c56280aSSorin Basca   /* You can override these two methods in subclasses of SimpleNode to
74*0c56280aSSorin Basca      customize the way the node appears when the tree is dumped.  If
75*0c56280aSSorin Basca      your output uses more than one line you should override
76*0c56280aSSorin Basca      toString(String), otherwise overriding toString() is probably all
77*0c56280aSSorin Basca      you need to do. */
78*0c56280aSSorin Basca 
79*0c56280aSSorin Basca   @Override
toString()80*0c56280aSSorin Basca   public String toString() { return MiniParserTreeConstants.jjtNodeName[id]; }
toString(String prefix)81*0c56280aSSorin Basca   public String toString(String prefix) { return prefix + toString(); }
82*0c56280aSSorin Basca 
83*0c56280aSSorin Basca   /* Override this method if you want to customize how the node dumps
84*0c56280aSSorin Basca      out its children. */
85*0c56280aSSorin Basca 
dump(String prefix)86*0c56280aSSorin Basca   public void dump(String prefix) {
87*0c56280aSSorin Basca     System.out.println(toString(prefix));
88*0c56280aSSorin Basca     if (children != null) {
89*0c56280aSSorin Basca       for (int i = 0; i < children.length; ++i) {
90*0c56280aSSorin Basca         SimpleNode n = (SimpleNode)children[i];
91*0c56280aSSorin Basca         if (n != null) {
92*0c56280aSSorin Basca           n.dump(prefix + " ");
93*0c56280aSSorin Basca         }
94*0c56280aSSorin Basca       }
95*0c56280aSSorin Basca     }
96*0c56280aSSorin Basca   }
97*0c56280aSSorin Basca }
98*0c56280aSSorin Basca 
99