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