You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+13-3Lines changed: 13 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,10 +1,18 @@
1
1
### Community-Driven Language for Variability Models
2
2
3
-
The **U**niversal **V**ariability **L**anguage is a community effort towards a unified language for variability models. UVL is a direct result of the efforts within the <ahref="https://modevar.github.io/">MODEVAR</a> initiative.
3
+
The **U**niversal **V**ariability **L**anguage is a community effort towards a unified language for variability models. UVL is a direct result of the efforts within the <ahref="https://modevar.github.io/">MODEVAR</a> initiative.*Do you have any questions on UVL?**Do you want to contribute?**We gladly receive your message at [Contact](mailto:chico.sundermann@uni-ulm.de).*
4
4
5
5
6
6
# Language Design
7
7
8
+
UVL specifies variability models with a tree-like structure to represent the hierarchical structure of variability models. Below you can see a simple example of a variability model in UVL. The tree structure is visualized on the right side in the [FeatureIDE](https://github.com/FeatureIDE/FeatureIDE) representation. The language core of UVL comes with several concepts to specify constraints:
9
+
10
+
**Mandatory*: The feature needs to be selected if its parent is selected
11
+
**Optional*: The feature can be selected if its parent is selected
12
+
**Or*: At least one of the children need to be selected if its parent is selected
13
+
**Alternative*: Exactly one of the children needs to be selected
14
+
**Cross-tree constraints*: Arbitrary propositional constraints over the features
@@ -18,16 +26,18 @@ The **U**niversal **V**ariability **L**anguage is a community effort towards a u
18
26
Ketchup
19
27
Mustard
20
28
Cheese
29
+
constraints
30
+
Ketchup => Cheese
21
31
</code>
22
32
</pre>
23
33
24
34
# Software
25
35
26
36
### Tool Support for UVL
27
37
* Java-based parser for UVL: <ahref="https://github.com/Universal-Variability-Language/uvl-parser2.0">UVL-Parser2.0</a>
28
-
* Python-based parser for UVL: [UVL Parser](https://github.com/flamapy/uvlparser)
38
+
* Python-based parser for UVL (WIP): [UVL Parser](https://github.com/flamapy/uvlparser)
29
39
* Rust-based Language Server Protocol for integrating UVL in your favorite IDE: <ahref="https://github.com/Universal-Variability-Language/uvl-lsp">UVLS</a>
30
-
* Visual Studio Code <ahref="https://marketplace.visualstudio.com/items?itemName=caradhras.uvls-code">extension </a> based on **UVLs**
40
+
* Visual Studio Code <ahref="https://marketplace.visualstudio.com/items?itemName=caradhras.uvls-code">extension </a> based on **UVLS**
0 commit comments