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

checker.src.org.checkerframework.checker.regex.RegexChecker Maven / Gradle / Ivy

package org.checkerframework.checker.regex;


import org.checkerframework.checker.experimental.regex_qual.Regex;
import org.checkerframework.common.basetype.BaseTypeVisitor;
import org.checkerframework.framework.qual.TypeUseLocation;
import org.checkerframework.framework.util.defaults.QualifierDefaults;
import org.checkerframework.qualframework.base.CheckerAdapter;
import org.checkerframework.qualframework.poly.PolyQual.GroundQual;
import org.checkerframework.qualframework.poly.QualParams;
import org.checkerframework.framework.qual.StubFiles;

/**
 * {@link CheckerAdapter} for the Regex-Qual-Param type system.
 */
@StubFiles("apache-xerces.astub")
public class RegexChecker extends CheckerAdapter> {

    public RegexChecker() {
        super(new RegexQualPolyChecker());
    }

    @Override
    protected BaseTypeVisitor createSourceVisitor() {
        return new RegexTypecheckVisitor(this);
    }

    @Override
    public void setupDefaults(QualifierDefaults defaults) {
        defaults.addCheckedCodeDefault(
                getTypeMirrorConverter().getAnnotation(
                        new QualParams<>(new GroundQual<>(Regex.BOTTOM))),
                TypeUseLocation.LOWER_BOUND);

        defaults.addCheckedCodeDefault(
                getTypeMirrorConverter().getAnnotation(
                        new QualParams<>(new GroundQual<>(Regex.TOP))),
                TypeUseLocation.LOCAL_VARIABLE);
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy