blob: 78cdca23467197c94248a9c8f114f0dca4570116 [file] [log] [blame]
package org.checkerframework.dataflow.cfg.builder;
/**
* A label is used to refer to other extended nodes using a mapping from labels to extended nodes.
* Labels get their names either from labeled statements in the source code or from internally
* generated unique names.
*/
class Label {
private static int uid = 0;
protected final String name;
public Label(String name) {
this.name = name;
}
public Label() {
this.name = uniqueName();
}
@Override
public String toString() {
return name;
}
/**
* Return a new unique label name that cannot be confused with a Java source code label.
*
* @return a new unique label name
*/
private static String uniqueName() {
return "%L" + uid++;
}
}