Select Rule

Re-write incoming geometry to a different set of labels.

select { RegionList }

RegionList – label selector list, list of selector expressions applied on the input shape.

No geometry is modified, only labels are assigned and attributes set. The purpose of this rule is to remove redundancy of repeating the same operations on one label in different selector blocks, for instance:

InputLabel --> place(CENTRE) 
 { 50%: Border1 | else: Border2  } 
 { i("circle", 10) Inserted } 
 { 50%: Border1 | else: Border2  }

can be rewritten as:

InputLabel --> place(CENTRE) 
{ Border } { i("circle", 10) Inserted } { Border } 

Border --> select { 50%: Border1 | else: Border2 }

Rule application makes even more sense when selector expression lists are longer, or when the same label is assigned in a number of different rules.