Nothing to draw yet — declare a root feature under features
Constraints
Structure
namespace MyModel // optional
features
Root
mandatory
Child
constraints
Child => Root
Indentation defines the tree (tabs or spaces — be consistent). Comments: // to end of line, or /* … */ across lines. Names with spaces are quoted: "Full Grain".
Groups
Parent mandatory // always in A optional // may be in B or // at least one C D alternative // exactly one E F [1..2] // 1 to 2 of them G H I
Children always sit under a group keyword, never directly under a feature.
Constraints
constraints A => B // requires A => !B // excludes !C | (D & E) A <=> B // equivalence
Precedence, loosest to tightest: <=>, =>, |, &, !. This editor covers the Boolean level of UVL. The editor completes names as you type (or Ctrl/Cmd+Space), shows details on hover, and Ctrl/Cmd-click jumps between a feature and its uses.
Attributes & extras
Engine {abstract}
Cache {size 512, fast}
String Name
Cpu cardinality [1..4]
{abstract} features structure the tree and are drawn dashed. Typed features and feature cardinality (clones) are parsed and displayed; analysis treats them as Boolean presence. See the UVL site for the full language.