Research Article

Graph Drawing and Analysis Library and Its Domain-Specific Language for Graphs’ Layout Specifications

Listing 1

Base rules of the graph layout DSL.
LayoutGraph: ’lay’ ’out’ ’graph’ LayoutEnum;
LayoutEnum: LayoutAlgorithm | LayoutStyle | AestheticCriteria |
  AestheticCriteriaMath;
LayoutStyle: ’using’? ’style’ LayoutStyleEnum;
LayoutStyleEnum: ’automatic’ | ’circular’ | ’tree’ | ’hierarchical’ | ’
  symmetric’ | ’general’;
AestheticCriteria: (’conforming’ ’to’)? ’criteria’ (AestheticCriterion
  ’,’)+;
LayoutAlgorithm: ’using’? ’algorithm’ LayoutAlgorithmEnum;
AestheticCriteion: EdgeCrossings | MinimumAngles | MinimumBands;
LayoutAlgorithmEnum: TreeAlgorithm | StraightLineAlgorithm |
  HierarchicalAlgorithm;