eu.cqse.check.framework.scanner.LanguageGroups Maven / Gradle / Ivy
Show all versions of teamscale-commons Show documentation
package eu.cqse.check.framework.scanner;
import java.util.EnumSet;
import java.util.Set;
/**
* Groups of {@link ELanguage}s that we often need together (e.g., in conditions).
*/
public class LanguageGroups {
/**
* {@link ELanguage#C} and languages that support (mostly) the same syntax/keywords and are compiled
* by the same compilers.
*
* For example, Java is not part of this list, even though it is inspired by C.
*/
public static final EnumSet C_AND_DERIVATIVES = EnumSet.of(ELanguage.C, ELanguage.CPP,
ELanguage.OBJECTIVE_C, ELanguage.OBJECTIVE_CPP);
/**
* {@link ELanguage#C} and {@link ELanguage#CPP} (i.e., languages that support the c but not
* objective-c syntax)
*/
public static final EnumSet C_AND_CPP = EnumSet.of(ELanguage.C, ELanguage.CPP);
/**
* {@link ELanguage#OBJECTIVE_C} and {@link ELanguage#OBJECTIVE_CPP} (i.e., languages that support
* the objective-c syntax)
*/
public static final EnumSet OBJECTIVE_C_AND_OBJECTIVE_CPP = EnumSet.of(ELanguage.OBJECTIVE_C,
ELanguage.OBJECTIVE_CPP);
/**
* {@link ELanguage#CPP} and {@link ELanguage#OBJECTIVE_CPP} (i.e., languages that support the C++
* syntax)
*/
public static final EnumSet CPP_AND_OBJECTIVE_CPP = EnumSet.of(ELanguage.CPP, ELanguage.OBJECTIVE_CPP);
/**
* {@link ELanguage#JAVA}, {@link ELanguage#KOTLIN}, {@link ELanguage#GROOVY} and
* {@link ELanguage#XTEND} (i.e., languages that run on the Java virtual machine)
*/
public static final EnumSet JVM_LANGUAGES = EnumSet.of(ELanguage.JAVA, ELanguage.KOTLIN,
ELanguage.GROOVY, ELanguage.XTEND);
/**
* All languages of code entities retrieved from SAP systems.
*/
public static final Set SAP_LANGUAGES = EnumSet.of(ELanguage.ABAP, ELanguage.ABAP_DDIC,
ELanguage.ABAP_CDS);
}