iterative-parser-states-diagram.dot 1.9 KB

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