hc
2023-11-06 15ade055295d13f95d49e3d99b09f3bbfb4a43e7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
digraph {
    fontname="Inconsolata, Consolas"
    fontsize=10
    margin="0,0"
    penwidth=0.0
    
    node [fontname="Inconsolata, Consolas", fontsize=10, penwidth=0.5]
    edge [fontname="Inconsolata, Consolas", fontsize=10, penwidth=0.5]
 
    node [shape = doublecircle]; Start; Finish;
    node [shape = box; style = "rounded, filled"; fillcolor=white ];
 
    Start -> ArrayInitial [label=" ["];
    Start -> ObjectInitial [label=" {"];
 
    subgraph clusterArray {
        margin="10,10"
        style=filled
        fillcolor=gray95
        label = "Array"
        
        ArrayInitial; Element; ElementDelimiter; ArrayFinish;
    }
 
    subgraph clusterObject {
        margin="10,10"
        style=filled
        fillcolor=gray95
        label = "Object"
 
        ObjectInitial; MemberKey; KeyValueDelimiter; MemberValue; MemberDelimiter; ObjectFinish;
    }
 
    ArrayInitial -> ArrayInitial [label="["];
    ArrayInitial -> ArrayFinish [label=" ]"];
    ArrayInitial -> ObjectInitial [label="{", constraint=false];
    ArrayInitial -> Element [label="string\nfalse\ntrue\nnull\nnumber"];
 
    Element -> ArrayFinish [label="]"];
    Element -> ElementDelimiter [label=","];
 
    ElementDelimiter -> ArrayInitial [label=" ["];
    ElementDelimiter -> ObjectInitial [label="{"];
    ElementDelimiter -> Element [label="string\nfalse\ntrue\nnull\nnumber"];
 
    ObjectInitial -> ObjectFinish [label=" }"];
    ObjectInitial -> MemberKey [label=" string "];
 
    MemberKey -> KeyValueDelimiter [label=":"];
 
    KeyValueDelimiter -> ArrayInitial [label="["];
    KeyValueDelimiter -> ObjectInitial [label=" {"];
    KeyValueDelimiter -> MemberValue [label=" string\n false\n true\n null\n number"];
 
    MemberValue -> ObjectFinish [label="}"];
    MemberValue -> MemberDelimiter [label=","];
 
    MemberDelimiter -> MemberKey [label=" string "];
 
    ArrayFinish -> Finish;
    ObjectFinish -> Finish;
}