981 B53 lines
Blame
1grammar ArchitectureGrammar
2import "../common/common";
3import "arch";
4
5entry Architecture:
6 NEWLINE*
7 "architecture-beta"
8 (
9 NEWLINE
10 | TitleAndAccessibilities
11 | Statement
12 )*
13;
14
15fragment Statement:
16 groups+=Group
17 | services+=Service
18 | junctions+=Junction
19 | edges+=Edge
20;
21
22fragment LeftPort:
23 ':'lhsDir=ARROW_DIRECTION
24;
25
26fragment RightPort:
27 rhsDir=ARROW_DIRECTION':'
28;
29
30fragment Arrow:
31 LeftPort lhsInto?=ARROW_INTO? ('--' | '-' title=ARCH_TITLE '-') rhsInto?=ARROW_INTO? RightPort
32;
33
34Group:
35 'group' id=ID icon=ARCH_ICON? title=ARCH_TITLE? ('in' in=ID)? EOL
36;
37
38Service:
39 'service' id=ID (iconText=STRING | icon=ARCH_ICON)? title=ARCH_TITLE? ('in' in=ID)? EOL
40;
41
42Junction:
43 'junction' id=ID ('in' in=ID)? EOL
44;
45
46Edge:
47 lhsId=ID lhsGroup?=ARROW_GROUP? Arrow rhsId=ID rhsGroup?=ARROW_GROUP? EOL
48;
49
50terminal ARROW_DIRECTION: 'L' | 'R' | 'T' | 'B';
51terminal ARROW_GROUP: /\{group\}/;
52terminal ARROW_INTO: /<|>/;
53