1 /*
   2  * reserved comment block
   3  * DO NOT REMOVE OR ALTER!
   4  */
   5 /*
   6  * Licensed to the Apache Software Foundation (ASF) under one or more
   7  * contributor license agreements.  See the NOTICE file distributed with
   8  * this work for additional information regarding copyright ownership.
   9  * The ASF licenses this file to You under the Apache License, Version 2.0
  10  * (the "License"); you may not use this file except in compliance with
  11  * the License.  You may obtain a copy of the License at
  12  *
  13  *      http://www.apache.org/licenses/LICENSE-2.0
  14  *
  15  * Unless required by applicable law or agreed to in writing, software
  16  * distributed under the License is distributed on an "AS IS" BASIS,
  17  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  18  * See the License for the specific language governing permissions and
  19  * limitations under the License.
  20  */
  21 
  22 package com.sun.org.apache.bcel.internal.generic;
  23 
  24 /**
  25  * Interface implementing the Visitor pattern programming style.
  26  * I.e., a class that implements this interface can handle all types of
  27  * instructions with the properly typed methods just by calling the accept()
  28  * method.
  29  *
  30  */
  31 public interface Visitor {
  32 
  33     void visitStackInstruction( StackInstruction obj );
  34 
  35 
  36     void visitLocalVariableInstruction( LocalVariableInstruction obj );
  37 
  38 
  39     void visitBranchInstruction( BranchInstruction obj );
  40 
  41 
  42     void visitLoadClass( LoadClass obj );
  43 
  44 
  45     void visitFieldInstruction( FieldInstruction obj );
  46 
  47 
  48     void visitIfInstruction( IfInstruction obj );
  49 
  50 
  51     void visitConversionInstruction( ConversionInstruction obj );
  52 
  53 
  54     void visitPopInstruction( PopInstruction obj );
  55 
  56 
  57     void visitStoreInstruction( StoreInstruction obj );
  58 
  59 
  60     void visitTypedInstruction( TypedInstruction obj );
  61 
  62 
  63     void visitSelect( Select obj );
  64 
  65 
  66     void visitJsrInstruction( JsrInstruction obj );
  67 
  68 
  69     void visitGotoInstruction( GotoInstruction obj );
  70 
  71 
  72     void visitUnconditionalBranch( UnconditionalBranch obj );
  73 
  74 
  75     void visitPushInstruction( PushInstruction obj );
  76 
  77 
  78     void visitArithmeticInstruction( ArithmeticInstruction obj );
  79 
  80 
  81     void visitCPInstruction( CPInstruction obj );
  82 
  83 
  84     void visitInvokeInstruction( InvokeInstruction obj );
  85 
  86 
  87     void visitArrayInstruction( ArrayInstruction obj );
  88 
  89 
  90     void visitAllocationInstruction( AllocationInstruction obj );
  91 
  92 
  93     void visitReturnInstruction( ReturnInstruction obj );
  94 
  95 
  96     void visitFieldOrMethod( FieldOrMethod obj );
  97 
  98 
  99     void visitConstantPushInstruction( ConstantPushInstruction obj );
 100 
 101 
 102     void visitExceptionThrower( ExceptionThrower obj );
 103 
 104 
 105     void visitLoadInstruction( LoadInstruction obj );
 106 
 107 
 108     void visitVariableLengthInstruction( VariableLengthInstruction obj );
 109 
 110 
 111     void visitStackProducer( StackProducer obj );
 112 
 113 
 114     void visitStackConsumer( StackConsumer obj );
 115 
 116 
 117     void visitACONST_NULL( ACONST_NULL obj );
 118 
 119 
 120     void visitGETSTATIC( GETSTATIC obj );
 121 
 122 
 123     void visitIF_ICMPLT( IF_ICMPLT obj );
 124 
 125 
 126     void visitMONITOREXIT( MONITOREXIT obj );
 127 
 128 
 129     void visitIFLT( IFLT obj );
 130 
 131 
 132     void visitLSTORE( LSTORE obj );
 133 
 134 
 135     void visitPOP2( POP2 obj );
 136 
 137 
 138     void visitBASTORE( BASTORE obj );
 139 
 140 
 141     void visitISTORE( ISTORE obj );
 142 
 143 
 144     void visitCHECKCAST( CHECKCAST obj );
 145 
 146 
 147     void visitFCMPG( FCMPG obj );
 148 
 149 
 150     void visitI2F( I2F obj );
 151 
 152 
 153     void visitATHROW( ATHROW obj );
 154 
 155 
 156     void visitDCMPL( DCMPL obj );
 157 
 158 
 159     void visitARRAYLENGTH( ARRAYLENGTH obj );
 160 
 161 
 162     void visitDUP( DUP obj );
 163 
 164 
 165     void visitINVOKESTATIC( INVOKESTATIC obj );
 166 
 167 
 168     void visitLCONST( LCONST obj );
 169 
 170 
 171     void visitDREM( DREM obj );
 172 
 173 
 174     void visitIFGE( IFGE obj );
 175 
 176 
 177     void visitCALOAD( CALOAD obj );
 178 
 179 
 180     void visitLASTORE( LASTORE obj );
 181 
 182 
 183     void visitI2D( I2D obj );
 184 
 185 
 186     void visitDADD( DADD obj );
 187 
 188 
 189     void visitINVOKESPECIAL( INVOKESPECIAL obj );
 190 
 191 
 192     void visitIAND( IAND obj );
 193 
 194 
 195     void visitPUTFIELD( PUTFIELD obj );
 196 
 197 
 198     void visitILOAD( ILOAD obj );
 199 
 200 
 201     void visitDLOAD( DLOAD obj );
 202 
 203 
 204     void visitDCONST( DCONST obj );
 205 
 206 
 207     void visitNEW( NEW obj );
 208 
 209 
 210     void visitIFNULL( IFNULL obj );
 211 
 212 
 213     void visitLSUB( LSUB obj );
 214 
 215 
 216     void visitL2I( L2I obj );
 217 
 218 
 219     void visitISHR( ISHR obj );
 220 
 221 
 222     void visitTABLESWITCH( TABLESWITCH obj );
 223 
 224 
 225     void visitIINC( IINC obj );
 226 
 227 
 228     void visitDRETURN( DRETURN obj );
 229 
 230 
 231     void visitFSTORE( FSTORE obj );
 232 
 233 
 234     void visitDASTORE( DASTORE obj );
 235 
 236 
 237     void visitIALOAD( IALOAD obj );
 238 
 239 
 240     void visitDDIV( DDIV obj );
 241 
 242 
 243     void visitIF_ICMPGE( IF_ICMPGE obj );
 244 
 245 
 246     void visitLAND( LAND obj );
 247 
 248 
 249     void visitIDIV( IDIV obj );
 250 
 251 
 252     void visitLOR( LOR obj );
 253 
 254 
 255     void visitCASTORE( CASTORE obj );
 256 
 257 
 258     void visitFREM( FREM obj );
 259 
 260 
 261     void visitLDC( LDC obj );
 262 
 263 
 264     void visitBIPUSH( BIPUSH obj );
 265 
 266 
 267     void visitDSTORE( DSTORE obj );
 268 
 269 
 270     void visitF2L( F2L obj );
 271 
 272 
 273     void visitFMUL( FMUL obj );
 274 
 275 
 276     void visitLLOAD( LLOAD obj );
 277 
 278 
 279     void visitJSR( JSR obj );
 280 
 281 
 282     void visitFSUB( FSUB obj );
 283 
 284 
 285     void visitSASTORE( SASTORE obj );
 286 
 287 
 288     void visitALOAD( ALOAD obj );
 289 
 290 
 291     void visitDUP2_X2( DUP2_X2 obj );
 292 
 293 
 294     void visitRETURN( RETURN obj );
 295 
 296 
 297     void visitDALOAD( DALOAD obj );
 298 
 299 
 300     void visitSIPUSH( SIPUSH obj );
 301 
 302 
 303     void visitDSUB( DSUB obj );
 304 
 305 
 306     void visitL2F( L2F obj );
 307 
 308 
 309     void visitIF_ICMPGT( IF_ICMPGT obj );
 310 
 311 
 312     void visitF2D( F2D obj );
 313 
 314 
 315     void visitI2L( I2L obj );
 316 
 317 
 318     void visitIF_ACMPNE( IF_ACMPNE obj );
 319 
 320 
 321     void visitPOP( POP obj );
 322 
 323 
 324     void visitI2S( I2S obj );
 325 
 326 
 327     void visitIFEQ( IFEQ obj );
 328 
 329 
 330     void visitSWAP( SWAP obj );
 331 
 332 
 333     void visitIOR( IOR obj );
 334 
 335 
 336     void visitIREM( IREM obj );
 337 
 338 
 339     void visitIASTORE( IASTORE obj );
 340 
 341 
 342     void visitNEWARRAY( NEWARRAY obj );
 343 
 344 
 345     void visitINVOKEINTERFACE( INVOKEINTERFACE obj );
 346 
 347 
 348     void visitINEG( INEG obj );
 349 
 350 
 351     void visitLCMP( LCMP obj );
 352 
 353 
 354     void visitJSR_W( JSR_W obj );
 355 
 356 
 357     void visitMULTIANEWARRAY( MULTIANEWARRAY obj );
 358 
 359 
 360     void visitDUP_X2( DUP_X2 obj );
 361 
 362 
 363     void visitSALOAD( SALOAD obj );
 364 
 365 
 366     void visitIFNONNULL( IFNONNULL obj );
 367 
 368 
 369     void visitDMUL( DMUL obj );
 370 
 371 
 372     void visitIFNE( IFNE obj );
 373 
 374 
 375     void visitIF_ICMPLE( IF_ICMPLE obj );
 376 
 377 
 378     void visitLDC2_W( LDC2_W obj );
 379 
 380 
 381     void visitGETFIELD( GETFIELD obj );
 382 
 383 
 384     void visitLADD( LADD obj );
 385 
 386 
 387     void visitNOP( NOP obj );
 388 
 389 
 390     void visitFALOAD( FALOAD obj );
 391 
 392 
 393     void visitINSTANCEOF( INSTANCEOF obj );
 394 
 395 
 396     void visitIFLE( IFLE obj );
 397 
 398 
 399     void visitLXOR( LXOR obj );
 400 
 401 
 402     void visitLRETURN( LRETURN obj );
 403 
 404 
 405     void visitFCONST( FCONST obj );
 406 
 407 
 408     void visitIUSHR( IUSHR obj );
 409 
 410 
 411     void visitBALOAD( BALOAD obj );
 412 
 413 
 414     void visitDUP2( DUP2 obj );
 415 
 416 
 417     void visitIF_ACMPEQ( IF_ACMPEQ obj );
 418 
 419 
 420     void visitIMPDEP1( IMPDEP1 obj );
 421 
 422 
 423     void visitMONITORENTER( MONITORENTER obj );
 424 
 425 
 426     void visitLSHL( LSHL obj );
 427 
 428 
 429     void visitDCMPG( DCMPG obj );
 430 
 431 
 432     void visitD2L( D2L obj );
 433 
 434 
 435     void visitIMPDEP2( IMPDEP2 obj );
 436 
 437 
 438     void visitL2D( L2D obj );
 439 
 440 
 441     void visitRET( RET obj );
 442 
 443 
 444     void visitIFGT( IFGT obj );
 445 
 446 
 447     void visitIXOR( IXOR obj );
 448 
 449 
 450     void visitINVOKEVIRTUAL( INVOKEVIRTUAL obj );
 451 
 452 
 453     /**
 454      * @since 6.0
 455      */
 456     void visitINVOKEDYNAMIC( INVOKEDYNAMIC obj );
 457 
 458 
 459     void visitFASTORE( FASTORE obj );
 460 
 461 
 462     void visitIRETURN( IRETURN obj );
 463 
 464 
 465     void visitIF_ICMPNE( IF_ICMPNE obj );
 466 
 467 
 468     void visitFLOAD( FLOAD obj );
 469 
 470 
 471     void visitLDIV( LDIV obj );
 472 
 473 
 474     void visitPUTSTATIC( PUTSTATIC obj );
 475 
 476 
 477     void visitAALOAD( AALOAD obj );
 478 
 479 
 480     void visitD2I( D2I obj );
 481 
 482 
 483     void visitIF_ICMPEQ( IF_ICMPEQ obj );
 484 
 485 
 486     void visitAASTORE( AASTORE obj );
 487 
 488 
 489     void visitARETURN( ARETURN obj );
 490 
 491 
 492     void visitDUP2_X1( DUP2_X1 obj );
 493 
 494 
 495     void visitFNEG( FNEG obj );
 496 
 497 
 498     void visitGOTO_W( GOTO_W obj );
 499 
 500 
 501     void visitD2F( D2F obj );
 502 
 503 
 504     void visitGOTO( GOTO obj );
 505 
 506 
 507     void visitISUB( ISUB obj );
 508 
 509 
 510     void visitF2I( F2I obj );
 511 
 512 
 513     void visitDNEG( DNEG obj );
 514 
 515 
 516     void visitICONST( ICONST obj );
 517 
 518 
 519     void visitFDIV( FDIV obj );
 520 
 521 
 522     void visitI2B( I2B obj );
 523 
 524 
 525     void visitLNEG( LNEG obj );
 526 
 527 
 528     void visitLREM( LREM obj );
 529 
 530 
 531     void visitIMUL( IMUL obj );
 532 
 533 
 534     void visitIADD( IADD obj );
 535 
 536 
 537     void visitLSHR( LSHR obj );
 538 
 539 
 540     void visitLOOKUPSWITCH( LOOKUPSWITCH obj );
 541 
 542 
 543     void visitDUP_X1( DUP_X1 obj );
 544 
 545 
 546     void visitFCMPL( FCMPL obj );
 547 
 548 
 549     void visitI2C( I2C obj );
 550 
 551 
 552     void visitLMUL( LMUL obj );
 553 
 554 
 555     void visitLUSHR( LUSHR obj );
 556 
 557 
 558     void visitISHL( ISHL obj );
 559 
 560 
 561     void visitLALOAD( LALOAD obj );
 562 
 563 
 564     void visitASTORE( ASTORE obj );
 565 
 566 
 567     void visitANEWARRAY( ANEWARRAY obj );
 568 
 569 
 570     void visitFRETURN( FRETURN obj );
 571 
 572 
 573     void visitFADD( FADD obj );
 574 
 575 
 576     void visitBREAKPOINT( BREAKPOINT obj );
 577 }