001/* This file was generated by SableCC (http://www.sablecc.org/). */
002
003package org.anarres.graphviz.parser.analysis;
004
005import java.util.*;
006import org.anarres.graphviz.parser.node.*;
007
008public class ReversedDepthFirstAdapter extends AnalysisAdapter
009{
010    public void inStart(Start node)
011    {
012        defaultIn(node);
013    }
014
015    public void outStart(Start node)
016    {
017        defaultOut(node);
018    }
019
020    public void defaultIn(@SuppressWarnings("unused") Node node)
021    {
022        // Do nothing
023    }
024
025    public void defaultOut(@SuppressWarnings("unused") Node node)
026    {
027        // Do nothing
028    }
029
030    @Override
031    public void caseStart(Start node)
032    {
033        inStart(node);
034        node.getEOF().apply(this);
035        node.getPGraph().apply(this);
036        outStart(node);
037    }
038
039    public void inAGraph(AGraph node)
040    {
041        defaultIn(node);
042    }
043
044    public void outAGraph(AGraph node)
045    {
046        defaultOut(node);
047    }
048
049    @Override
050    public void caseAGraph(AGraph node)
051    {
052        inAGraph(node);
053        {
054            List<PStatement> copy = new ArrayList<PStatement>(node.getStatement());
055            Collections.reverse(copy);
056            for(PStatement e : copy)
057            {
058                e.apply(this);
059            }
060        }
061        if(node.getName() != null)
062        {
063            node.getName().apply(this);
064        }
065        if(node.getGraphType() != null)
066        {
067            node.getGraphType().apply(this);
068        }
069        outAGraph(node);
070    }
071
072    public void inAGraphGraphType(AGraphGraphType node)
073    {
074        defaultIn(node);
075    }
076
077    public void outAGraphGraphType(AGraphGraphType node)
078    {
079        defaultOut(node);
080    }
081
082    @Override
083    public void caseAGraphGraphType(AGraphGraphType node)
084    {
085        inAGraphGraphType(node);
086        if(node.getKwGraph() != null)
087        {
088            node.getKwGraph().apply(this);
089        }
090        outAGraphGraphType(node);
091    }
092
093    public void inADigraphGraphType(ADigraphGraphType node)
094    {
095        defaultIn(node);
096    }
097
098    public void outADigraphGraphType(ADigraphGraphType node)
099    {
100        defaultOut(node);
101    }
102
103    @Override
104    public void caseADigraphGraphType(ADigraphGraphType node)
105    {
106        inADigraphGraphType(node);
107        if(node.getKwDigraph() != null)
108        {
109            node.getKwDigraph().apply(this);
110        }
111        outADigraphGraphType(node);
112    }
113
114    public void inAGlobalDefaultsStatement(AGlobalDefaultsStatement node)
115    {
116        defaultIn(node);
117    }
118
119    public void outAGlobalDefaultsStatement(AGlobalDefaultsStatement node)
120    {
121        defaultOut(node);
122    }
123
124    @Override
125    public void caseAGlobalDefaultsStatement(AGlobalDefaultsStatement node)
126    {
127        inAGlobalDefaultsStatement(node);
128        outAGlobalDefaultsStatement(node);
129    }
130
131    public void inAGraphDefaultsStatement(AGraphDefaultsStatement node)
132    {
133        defaultIn(node);
134    }
135
136    public void outAGraphDefaultsStatement(AGraphDefaultsStatement node)
137    {
138        defaultOut(node);
139    }
140
141    @Override
142    public void caseAGraphDefaultsStatement(AGraphDefaultsStatement node)
143    {
144        inAGraphDefaultsStatement(node);
145        outAGraphDefaultsStatement(node);
146    }
147
148    public void inANodeDefaultsStatement(ANodeDefaultsStatement node)
149    {
150        defaultIn(node);
151    }
152
153    public void outANodeDefaultsStatement(ANodeDefaultsStatement node)
154    {
155        defaultOut(node);
156    }
157
158    @Override
159    public void caseANodeDefaultsStatement(ANodeDefaultsStatement node)
160    {
161        inANodeDefaultsStatement(node);
162        outANodeDefaultsStatement(node);
163    }
164
165    public void inAEdgeDefaultsStatement(AEdgeDefaultsStatement node)
166    {
167        defaultIn(node);
168    }
169
170    public void outAEdgeDefaultsStatement(AEdgeDefaultsStatement node)
171    {
172        defaultOut(node);
173    }
174
175    @Override
176    public void caseAEdgeDefaultsStatement(AEdgeDefaultsStatement node)
177    {
178        inAEdgeDefaultsStatement(node);
179        outAEdgeDefaultsStatement(node);
180    }
181
182    public void inADataStatement(ADataStatement node)
183    {
184        defaultIn(node);
185    }
186
187    public void outADataStatement(ADataStatement node)
188    {
189        defaultOut(node);
190    }
191
192    @Override
193    public void caseADataStatement(ADataStatement node)
194    {
195        inADataStatement(node);
196        outADataStatement(node);
197    }
198
199    public void inAComposite(AComposite node)
200    {
201        defaultIn(node);
202    }
203
204    public void outAComposite(AComposite node)
205    {
206        defaultOut(node);
207    }
208
209    @Override
210    public void caseAComposite(AComposite node)
211    {
212        inAComposite(node);
213        {
214            List<PAttribute> copy = new ArrayList<PAttribute>(node.getAttribute());
215            Collections.reverse(copy);
216            for(PAttribute e : copy)
217            {
218                e.apply(this);
219            }
220        }
221        {
222            List<PNode> copy = new ArrayList<PNode>(node.getNode());
223            Collections.reverse(copy);
224            for(PNode e : copy)
225            {
226                e.apply(this);
227            }
228        }
229        outAComposite(node);
230    }
231
232    public void inASimpleNode(ASimpleNode node)
233    {
234        defaultIn(node);
235    }
236
237    public void outASimpleNode(ASimpleNode node)
238    {
239        defaultOut(node);
240    }
241
242    @Override
243    public void caseASimpleNode(ASimpleNode node)
244    {
245        inASimpleNode(node);
246        if(node.getName() != null)
247        {
248            node.getName().apply(this);
249        }
250        outASimpleNode(node);
251    }
252
253    public void inAPortNode(APortNode node)
254    {
255        defaultIn(node);
256    }
257
258    public void outAPortNode(APortNode node)
259    {
260        defaultOut(node);
261    }
262
263    @Override
264    public void caseAPortNode(APortNode node)
265    {
266        inAPortNode(node);
267        if(node.getPort() != null)
268        {
269            node.getPort().apply(this);
270        }
271        if(node.getName() != null)
272        {
273            node.getName().apply(this);
274        }
275        outAPortNode(node);
276    }
277
278    public void inASubgraphNode(ASubgraphNode node)
279    {
280        defaultIn(node);
281    }
282
283    public void outASubgraphNode(ASubgraphNode node)
284    {
285        defaultOut(node);
286    }
287
288    @Override
289    public void caseASubgraphNode(ASubgraphNode node)
290    {
291        inASubgraphNode(node);
292        {
293            List<PStatement> copy = new ArrayList<PStatement>(node.getStatement());
294            Collections.reverse(copy);
295            for(PStatement e : copy)
296            {
297                e.apply(this);
298            }
299        }
300        if(node.getName() != null)
301        {
302            node.getName().apply(this);
303        }
304        outASubgraphNode(node);
305    }
306
307    public void inAArrowEdge(AArrowEdge node)
308    {
309        defaultIn(node);
310    }
311
312    public void outAArrowEdge(AArrowEdge node)
313    {
314        defaultOut(node);
315    }
316
317    @Override
318    public void caseAArrowEdge(AArrowEdge node)
319    {
320        inAArrowEdge(node);
321        if(node.getTokArrow() != null)
322        {
323            node.getTokArrow().apply(this);
324        }
325        outAArrowEdge(node);
326    }
327
328    public void inALinkEdge(ALinkEdge node)
329    {
330        defaultIn(node);
331    }
332
333    public void outALinkEdge(ALinkEdge node)
334    {
335        defaultOut(node);
336    }
337
338    @Override
339    public void caseALinkEdge(ALinkEdge node)
340    {
341        inALinkEdge(node);
342        if(node.getTokLink() != null)
343        {
344            node.getTokLink().apply(this);
345        }
346        outALinkEdge(node);
347    }
348
349    public void inAAttribute(AAttribute node)
350    {
351        defaultIn(node);
352    }
353
354    public void outAAttribute(AAttribute node)
355    {
356        defaultOut(node);
357    }
358
359    @Override
360    public void caseAAttribute(AAttribute node)
361    {
362        inAAttribute(node);
363        if(node.getValue() != null)
364        {
365            node.getValue().apply(this);
366        }
367        if(node.getKey() != null)
368        {
369            node.getKey().apply(this);
370        }
371        outAAttribute(node);
372    }
373
374    public void inALiteralAtom(ALiteralAtom node)
375    {
376        defaultIn(node);
377    }
378
379    public void outALiteralAtom(ALiteralAtom node)
380    {
381        defaultOut(node);
382    }
383
384    @Override
385    public void caseALiteralAtom(ALiteralAtom node)
386    {
387        inALiteralAtom(node);
388        if(node.getLiteral() != null)
389        {
390            node.getLiteral().apply(this);
391        }
392        outALiteralAtom(node);
393    }
394
395    public void inAQuotedAtom(AQuotedAtom node)
396    {
397        defaultIn(node);
398    }
399
400    public void outAQuotedAtom(AQuotedAtom node)
401    {
402        defaultOut(node);
403    }
404
405    @Override
406    public void caseAQuotedAtom(AQuotedAtom node)
407    {
408        inAQuotedAtom(node);
409        if(node.getStringLiteral() != null)
410        {
411            node.getStringLiteral().apply(this);
412        }
413        outAQuotedAtom(node);
414    }
415}