KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > beaver > spec > ast > Declaration


1 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
2  * This file is part of Beaver Parser Generator. *
3  * Copyright (C) 2003,2004 Alexander Demenchuk <alder@softanvil.com>. *
4  * All rights reserved. *
5  * See the file "LICENSE" for the terms and conditions for copying, *
6  * distribution and modification of Beaver. *
7  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */

8
9 package beaver.spec.ast;
10
11 import beaver.Symbol;
12
13 /**
14  *
15  */

16 public abstract class Declaration extends Node
17 {
18     static public abstract class NameContainer extends Declaration
19     {
20         public final Symbol name;
21         
22         protected NameContainer(Symbol name)
23         {
24             this.name = name;
25         }
26         
27         public String JavaDoc getName()
28         {
29             return (String JavaDoc) name.value;
30         }
31     }
32     
33     static public abstract class CodeContainer extends Declaration
34     {
35         public final Symbol code;
36         
37         protected CodeContainer(Symbol code)
38         {
39             this.code = code;
40         }
41         
42         public String JavaDoc getCode()
43         {
44             return (String JavaDoc) code.value;
45         }
46     }
47     
48     static public abstract class SymbolsContainer extends Declaration
49     {
50         public final Symbol[] symbols;
51         
52         protected SymbolsContainer(Symbol[] symbols)
53         {
54             this.symbols = symbols;
55         }
56     }
57     
58     static public class Error extends Declaration
59     {
60         public void accept(TreeWalker walker)
61         {
62             walker.visit(this);
63         }
64     }
65     
66     static public class Goal extends NameContainer
67     {
68         public Goal(Symbol name)
69         {
70             super(name);
71         }
72         
73         public void accept(TreeWalker walker)
74         {
75             walker.visit(this);
76         }
77     }
78     
79     static public class ListType extends NameContainer
80     {
81         public ListType(Symbol name)
82         {
83             super(name);
84         }
85         
86         public void accept(TreeWalker walker)
87         {
88             walker.visit(this);
89         }
90     }
91
92     static public class Header extends CodeContainer
93     {
94         public Header(Symbol code)
95         {
96             super(code);
97         }
98         
99         public void accept(TreeWalker walker)
100         {
101             walker.visit(this);
102         }
103     }
104
105     static public class PackageName extends NameContainer
106     {
107         public PackageName(Symbol name)
108         {
109             super(name);
110         }
111         
112         public void accept(TreeWalker walker)
113         {
114             walker.visit(this);
115         }
116     }
117
118     static public class Imports extends SymbolsContainer
119     {
120         public Imports(Symbol[] symbols)
121         {
122             super(symbols);
123         }
124         
125         public void accept(TreeWalker walker)
126         {
127             walker.visit(this);
128         }
129     }
130     
131     static public class ClassName extends NameContainer
132     {
133         public ClassName(Symbol name)
134         {
135             super(name);
136         }
137         
138         public void accept(TreeWalker walker)
139         {
140             walker.visit(this);
141         }
142     }
143
144     static public class ClassCode extends CodeContainer
145     {
146         public ClassCode(Symbol code)
147         {
148             super(code);
149         }
150         
151         public void accept(TreeWalker walker)
152         {
153             walker.visit(this);
154         }
155     }
156     
157     static public class ConstructorCode extends CodeContainer
158     {
159         public ConstructorCode(Symbol code)
160         {
161             super(code);
162         }
163         
164         public void accept(TreeWalker walker)
165         {
166             walker.visit(this);
167         }
168     }
169     
170     static public class LeftAssoc extends SymbolsContainer
171     {
172         public LeftAssoc(Symbol[] symbols)
173         {
174             super(symbols);
175         }
176         
177         public void accept(TreeWalker walker)
178         {
179             walker.visit(this);
180         }
181     }
182     
183     static public class RightAssoc extends SymbolsContainer
184     {
185         public RightAssoc(Symbol[] symbols)
186         {
187             super(symbols);
188         }
189         
190         public void accept(TreeWalker walker)
191         {
192             walker.visit(this);
193         }
194     }
195     
196     static public class NonAssoc extends SymbolsContainer
197     {
198         public NonAssoc(Symbol[] symbols)
199         {
200             super(symbols);
201         }
202         
203         public void accept(TreeWalker walker)
204         {
205             walker.visit(this);
206         }
207     }
208     
209     static public class Terminals extends SymbolsContainer
210     {
211         public Terminals(Symbol[] tokens)
212         {
213             super(tokens);
214         }
215
216         public void accept(TreeWalker walker)
217         {
218             walker.visit(this);
219         }
220     }
221     
222     static public class TypeOf extends SymbolsContainer
223     {
224         public final Symbol type;
225
226         public TypeOf(Symbol[] symbols, Symbol type)
227         {
228             super(symbols);
229             this.type = type;
230         }
231
232         public String JavaDoc getTypeName()
233         {
234             return type == null ? null : (String JavaDoc) type.value;
235         }
236
237         public void accept(TreeWalker walker)
238         {
239             walker.visit(this);
240         }
241     }
242 }
243
Popular Tags