Class CPPAnnotationParser

java.lang.Object
org.variantsync.diffdetective.feature.PreprocessorAnnotationParser
org.variantsync.diffdetective.feature.cpp.CPPAnnotationParser
All Implemented Interfaces:
AnnotationParser

public class CPPAnnotationParser extends PreprocessorAnnotationParser
Parses a C preprocessor statement. For example, given the annotation "#if defined(A) || B()", this class extracts the type AnnotationType.If with the formula new Or(new Literal("A"), new Literal("B")). The extractor detects if, ifdef, ifndef, elif, elifdef, elifndef, else and endif annotations. All other annotations are considered source code. The given CPP statement might also be a line in a diff (i.e., preceded by a - or +).
Author:
Paul Bittner, Sören Viegener, Benjamin Moosherr, Alexander Schultheiß