libamxo  4.3.4
Object Definition Language (ODL) parsing
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
instance_add_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  ZeroOrMore(
41  Choice(0,
42  Terminal("%read-only"),
43  Terminal("%persistent"),
44  Terminal("%protected"),
45  Terminal("%private")
46  ),
47  ),
48  ZeroOrMore(
49  Choice(0,
50  Terminal("!read-only"),
51  Terminal("!persistent"),
52  Terminal("!protected"),
53  Terminal("!private")
54  ),
55  ),
56  Terminal("instance"),
57  Terminal("add"),
58  Stack(
59  Sequence(
60  Terminal("("),
61  Optional(
62  OptionalSequence(
63  Sequence(
64  Terminal("<NUMBER>"),
65  Terminal(",")
66  ),
67  Sequence(
68  Terminal("<NAME>"),
69  Terminal(",")
70  ),
71  OneOrMore(
72  Sequence(
73  Terminal("<NAME>"),
74  Terminal("="),
75  Terminal("<VALUE>")
76  ), ","
77  )
78  ), "skip"
79  ),
80  Terminal(")"),
81  ),
82  Sequence(
83  Choice(0,
84  Terminal(";"),
85  Sequence(
86  Terminal("{"),
87  ZeroOrMore(
88  Choice(0,
89  NonTerminal("SET PARAMETER"),
90  NonTerminal("POPULATE OBJECT")
91  ), "", "skip"
92  ),
93  Terminal("}")
94  )
95  )
96  )
97  ),
98 )
99 
100 d.writeStandalone(sys.stdout.write, css=css_rr)