package org.checkerframework.checker.regex.qual;

import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.checkerframework.framework.qual.InvisibleQualifier;
import org.checkerframework.framework.qual.SubtypeOf;

/**
 * Indicates a String that is not a syntactically valid regular expression. The String itself can be
 * stored as a parameter to the annotation, allowing the Regex Checker to verify some concatenations
 * of partial regular expression Strings.
 *
 * <p>This annotation may not be written in source code; it is an implementation detail of the Regex
 * Checker.
 *
 * @checker_framework.manual #regex-checker Regex Checker
 */
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({}) // empty target prevents programmers from writing this in a program
@InvisibleQualifier
@SubtypeOf(org.checkerframework.checker.regex.qual.UnknownRegex.class)
public @interface PartialRegex {

  /**
   * The String qualified by this annotation. Used to verify concatenation of partial regular
   * expressions. Defaults to the empty String.
   */
  String value() default "";
}
