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}