Releases: FAMILIAR-project/familiar-language
FAMILIAR 1.2
FAMILIAR (for FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) is a language for importing, exporting, composing, decomposing, editing, configuring, computing "diffs", refactoring, reverse engineering, testing, and reasoning about (multiple) feature models. All these operations can be combined to realize complex variability management tasks.
Example of a session with the executable JAR.
vmacher:familiar-language macher1$ java -jar FML-standalone-withJARS/lib/FAMILIAR-Standalone-1.0.10-jar-with-dependencies.jar
FAMILIAR (for FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) version 1.2 (beta)
http://familiar-project.github.com/
fml> fm1 = FM (MDI : UML DesignPatterns (SI|IN) Instructors ; Instructors : (Mathieu | Guillaume); Mathieu <-> IN ; Guillaume <-> SI; )
fm1: (FEATURE_MODEL) MDI: (IN|SI) UML DesignPatterns Instructors ;
Instructors: (Mathieu|Guillaume) ;
(Mathieu <-> IN);
(Guillaume <-> SI);
fml> fm2 = slice fm1 excluding { Mathieu }
fm2: (FEATURE_MODEL) MDI: (IN|SI) UML DesignPatterns Instructors ;
Instructors: [Guillaume] ;
(SI <-> Guillaume);
fml> counting fm1
res1: (DOUBLE) 2.0
fml> counting fm2
res2: (DOUBLE) 2.0
fml> configs fm1
res3: (SET) {{MDI;UML;Guillaume;DesignPatterns;SI;Instructors};{UML;MDI;IN;DesignPatterns;Mathieu;Instructors}}
fml> configs fm2
res4: (SET) {{SI;MDI;Instructors;DesignPatterns;Guillaume;UML};{DesignPatterns;UML;MDI;IN;Instructors}}
fml>