#
# Copyright (c) 1997, 2018 Oracle and/or its affiliates. All rights reserved.
#
# This program and the accompanying materials are made available under the
# terms of the Eclipse Distribution License v. 1.0, which is available at
# http://www.eclipse.org/org/documents/edl-v10.php.
#
# SPDX-License-Identifier: BSD-3-Clause
#

How labels are handled in BCEL and ASM

BCEL:

1. always call il.append( xxx ) to create the instruction
2. append returns an InstructionHandle.
3. call setTarget( InstructionHandler ) on branches.

ASM:

1. Create a Label wherever needed.
2. Use a label wherever needed.
3. Make sure that visitLabel is called just before the
   instruction that needs a label.

How can we create a single abstraction that could work for both?

Two operations:

1. Make sure a label is available at an instruction.
2. Use label in an instruction.

interface ByteCodeLabel
    
    
