libamxo  4.3.4
Object Definition Language (ODL) parsing
event_subscribe_2.rr.py
Go to the documentation of this file.
1 # https://pypi.org/project/railroad-diagrams/
2 # https://jakearchibald.github.io/svgomg/
3 
4 from railroad import *
5 
6 css_rr = """svg.railroad-diagram {
7  background-color:hsl(30,20%,95%);
8 }
9 svg.railroad-diagram path {
10  stroke-width:3;
11  stroke:black;
12  fill:rgba(0,0,0,0);
13 }
14 svg.railroad-diagram text {
15  font:bold 14px monospace;
16  text-anchor:middle;
17 }
18 svg.railroad-diagram text.label{
19  text-anchor:start;
20 }
21 svg.railroad-diagram text.comment{
22  font:italic 12px monospace;
23 }
24 svg.railroad-diagram rect{
25  stroke-width:3;
26  stroke:black;
27  fill:hsl(120,100%,90%);
28 }
29 svg.railroad-diagram g.non-terminal rect{
30  stroke: black;
31  fill: white;
32 )
33 svg.railroad-diagram rect.group-box {
34  stroke: gray;
35  stroke-dasharray: 10 5;
36  fill: none;
37 }"""
38 
39 d = Diagram(
40  Sequence(
41  Terminal("on"),
42  Terminal("event"),
43  Choice(0,
44  Terminal("'*'"),
45  Terminal('"*"'),
46  Terminal("'<NAME>'"),
47  Terminal('"<NAME>"'),
48  Sequence(
49  Terminal("regexp"),
50  Terminal("("),
51  Choice(0,
52  Terminal("'<NAME>'"),
53  Terminal('"<NAME>"'),
54  ),
55  Terminal(")")
56  )
57  ),
58  Terminal("of"),
59  Choice(0,
60  Terminal("'<PATH>'"),
61  Terminal('"<PATH>"'),
62  Sequence(
63  Terminal("regexp"),
64  Terminal("("),
65  Choice(0,
66  Terminal("'<NAME>'"),
67  Terminal('"<NAME>"'),
68  ),
69  Terminal(")")
70  )
71  ),
72  Terminal("call"),
73  Choice(0,
74  Terminal("<NAME>"),
75  Terminal("'<NAME>'"),
76  Terminal('"<NAME>"'),
77  ),
78  Stack(
79  Optional(
80  Sequence(
81  NonTerminal("RESOLVER")
82  ), "skip"
83  ),
84  ),
85  Terminal(";")
86  )
87 )
88 
89 d.writeStandalone(sys.stdout.write, css=css_rr)