All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.checkerframework.dataflow.cfg.builder.UnconditionalJump Maven / Gradle / Ivy

Go to download

dataflow-shaded is a dataflow framework based on the javac compiler. It differs from the org.checkerframework:dataflow artifact in two ways. First, the packages in this artifact have been renamed to org.checkerframework.shaded.*. Second, unlike the dataflow artifact, this artifact contains the dependencies it requires.

There is a newer version: 3.42.0-eisop5
Show newest version
package org.checkerframework.dataflow.cfg.builder;

import org.checkerframework.dataflow.analysis.Store.FlowRule;
import org.checkerframework.dataflow.cfg.builder.ExtendedNode.ExtendedNodeType;

/** An extended node of type {@link ExtendedNodeType#UNCONDITIONAL_JUMP}. */
/*package-private*/ class UnconditionalJump extends ExtendedNode {

    /** The jump target label. */
    protected final Label jumpTarget;

    /** The flow rule for this edge. */
    protected final FlowRule flowRule;

    /**
     * Construct an UnconditionalJump.
     *
     * @param jumpTarget the jump target label
     */
    public UnconditionalJump(Label jumpTarget) {
        this(jumpTarget, FlowRule.EACH_TO_EACH);
    }

    /**
     * Construct an UnconditionalJump, specifying its flow rule.
     *
     * @param jumpTarget the jump target label
     * @param flowRule the flow rule for this edge
     */
    public UnconditionalJump(Label jumpTarget, FlowRule flowRule) {
        super(ExtendedNodeType.UNCONDITIONAL_JUMP);
        assert jumpTarget != null;
        this.jumpTarget = jumpTarget;
        this.flowRule = flowRule;
    }

    @Override
    public Label getLabel() {
        return jumpTarget;
    }

    /**
     * Returns the flow rule for this edge.
     *
     * @return the flow rule for this edge
     */
    public FlowRule getFlowRule() {
        return flowRule;
    }

    /**
     * Produce a string representation.
     *
     * @return a string representation
     * @see org.checkerframework.dataflow.cfg.builder.CFGBuilder.PhaseOneResult#nodeToString
     */
    @Override
    public String toString() {
        return "JumpMarker(" + getLabel() + ")";
    }

    @Override
    public String toStringDebug() {
        return toString();
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy