| graph: { |
| display_edge_labels: yes |
| priority_phase: yes |
| port_sharing: no |
| crossing_weight: median |
| splines: yes |
| node: { |
| title: "0" |
| label: "state 0\n $accept -> . value $end" |
| } |
| edge: { |
| sourcename: "0" |
| targetname: "1" |
| label: "NUMBER" |
| color: blue |
| textcolor: black |
| } |
| edge: { |
| sourcename: "0" |
| targetname: "2" |
| label: "STRING" |
| color: blue |
| textcolor: black |
| } |
| edge: { |
| sourcename: "0" |
| targetname: "3" |
| label: "LBRACE" |
| color: blue |
| textcolor: black |
| } |
| edge: { |
| sourcename: "0" |
| targetname: "4" |
| label: "LBRACK" |
| color: blue |
| textcolor: black |
| } |
| edge: { |
| sourcename: "0" |
| targetname: "5" |
| label: "TRUE_VALUE" |
| color: blue |
| textcolor: black |
| } |
| edge: { |
| sourcename: "0" |
| targetname: "6" |
| label: "FALSE_VALUE" |
| color: blue |
| textcolor: black |
| } |
| edge: { |
| sourcename: "0" |
| targetname: "7" |
| label: "NULL_VALUE" |
| color: blue |
| textcolor: black |
| } |
| edge: { |
| sourcename: "0" |
| targetname: "8" |
| label: "value" |
| color: green |
| textcolor: black |
| } |
| edge: { |
| sourcename: "0" |
| targetname: "9" |
| label: "object" |
| color: green |
| textcolor: black |
| } |
| edge: { |
| sourcename: "0" |
| targetname: "10" |
| label: "array" |
| color: green |
| textcolor: black |
| } |
| edge: { |
| sourcename: "0" |
| targetname: "11" |
| label: "number" |
| color: green |
| textcolor: black |
| } |
| edge: { |
| sourcename: "0" |
| targetname: "12" |
| label: "string" |
| color: green |
| textcolor: black |
| } |
| edge: { |
| sourcename: "0" |
| targetname: "13" |
| label: "null" |
| color: green |
| textcolor: black |
| } |
| edge: { |
| sourcename: "0" |
| targetname: "14" |
| label: "boolean" |
| color: green |
| textcolor: black |
| } |
| node: { |
| title: "1" |
| label: "state 1\n number -> NUMBER ." |
| } |
| node: { |
| title: "2" |
| label: "state 2\n string -> STRING ." |
| } |
| node: { |
| title: "3" |
| label: "state 3\n object -> LBRACE . RBRACE\n object -> LBRACE . object_value_list RBRACE" |
| } |
| edge: { |
| sourcename: "3" |
| targetname: "15" |
| label: "STRING" |
| color: blue |
| textcolor: black |
| } |
| edge: { |
| sourcename: "3" |
| targetname: "16" |
| label: "RBRACE" |
| color: blue |
| textcolor: black |
| } |
| edge: { |
| sourcename: "3" |
| targetname: "17" |
| label: "object_value_list" |
| color: green |
| textcolor: black |
| } |
| node: { |
| title: "4" |
| label: "state 4\n array -> LBRACK . RBRACK\n array -> LBRACK . array_value_list RBRACK" |
| } |
| backedge: { |
| sourcename: "4" |
| targetname: "1" |
| label: "NUMBER" |
| color: blue |
| textcolor: black |
| } |
| backedge: { |
| sourcename: "4" |
| targetname: "2" |
| label: "STRING" |
| color: blue |
| textcolor: black |
| } |
| backedge: { |
| sourcename: "4" |
| targetname: "3" |
| label: "LBRACE" |
| color: blue |
| textcolor: black |
| } |
| edge: { |
| sourcename: "4" |
| targetname: "4" |
| label: "LBRACK" |
| color: blue |
| textcolor: black |
| } |
| edge: { |
| sourcename: "4" |
| targetname: "18" |
| label: "RBRACK" |
| color: blue |
| textcolor: black |
| } |
| edge: { |
| sourcename: "4" |
| targetname: "5" |
| label: "TRUE_VALUE" |
| color: blue |
| textcolor: black |
| } |
| edge: { |
| sourcename: "4" |
| targetname: "6" |
| label: "FALSE_VALUE" |
| color: blue |
| textcolor: black |
| } |
| edge: { |
| sourcename: "4" |
| targetname: "7" |
| label: "NULL_VALUE" |
| color: blue |
| textcolor: black |
| } |
| edge: { |
| sourcename: "4" |
| targetname: "19" |
| label: "value" |
| color: green |
| textcolor: black |
| } |
| edge: { |
| sourcename: "4" |
| targetname: "9" |
| label: "object" |
| color: green |
| textcolor: black |
| } |
| edge: { |
| sourcename: "4" |
| targetname: "10" |
| label: "array" |
| color: green |
| textcolor: black |
| } |
| edge: { |
| sourcename: "4" |
| targetname: "20" |
| label: "array_value_list" |
| color: green |
| textcolor: black |
| } |
| edge: { |
| sourcename: "4" |
| targetname: "11" |
| label: "number" |
| color: green |
| textcolor: black |
| } |
| edge: { |
| sourcename: "4" |
| targetname: "12" |
| label: "string" |
| color: green |
| textcolor: black |
| } |
| edge: { |
| sourcename: "4" |
| targetname: "13" |
| label: "null" |
| color: green |
| textcolor: black |
| } |
| edge: { |
| sourcename: "4" |
| targetname: "14" |
| label: "boolean" |
| color: green |
| textcolor: black |
| } |
| node: { |
| title: "5" |
| label: "state 5\n boolean -> TRUE_VALUE ." |
| } |
| node: { |
| title: "6" |
| label: "state 6\n boolean -> FALSE_VALUE ." |
| } |
| node: { |
| title: "7" |
| label: "state 7\n null -> NULL_VALUE ." |
| } |
| node: { |
| title: "8" |
| label: "state 8\n $accept -> value . $end" |
| } |
| edge: { |
| sourcename: "8" |
| targetname: "21" |
| label: "$end" |
| color: blue |
| textcolor: black |
| } |
| node: { |
| title: "9" |
| label: "state 9\n value -> object ." |
| } |
| node: { |
| title: "10" |
| label: "state 10\n value -> array ." |
| } |
| node: { |
| title: "11" |
| label: "state 11\n value -> number ." |
| } |
| node: { |
| title: "12" |
| label: "state 12\n value -> string ." |
| } |
| node: { |
| title: "13" |
| label: "state 13\n value -> null ." |
| } |
| node: { |
| title: "14" |
| label: "state 14\n value -> boolean ." |
| } |
| node: { |
| title: "15" |
| label: "state 15\n object_value_list -> STRING . COLON value\n object_value_list -> STRING . COLON value COMMA object_value_list" |
| } |
| edge: { |
| sourcename: "15" |
| targetname: "22" |
| label: "COLON" |
| color: blue |
| textcolor: black |
| } |
| node: { |
| title: "16" |
| label: "state 16\n object -> LBRACE RBRACE ." |
| } |
| node: { |
| title: "17" |
| label: "state 17\n object -> LBRACE object_value_list . RBRACE" |
| } |
| edge: { |
| sourcename: "17" |
| targetname: "23" |
| label: "RBRACE" |
| color: blue |
| textcolor: black |
| } |
| node: { |
| title: "18" |
| label: "state 18\n array -> LBRACK RBRACK ." |
| } |
| node: { |
| title: "19" |
| label: "state 19\n array_value_list -> value .\n array_value_list -> value . COMMA array_value_list" |
| } |
| edge: { |
| sourcename: "19" |
| targetname: "24" |
| label: "COMMA" |
| color: blue |
| textcolor: black |
| } |
| node: { |
| title: "20" |
| label: "state 20\n array -> LBRACK array_value_list . RBRACK" |
| } |
| edge: { |
| sourcename: "20" |
| targetname: "25" |
| label: "RBRACK" |
| color: blue |
| textcolor: black |
| } |
| node: { |
| title: "21" |
| label: "state 21\n $accept -> value $end ." |
| } |
| node: { |
| title: "22" |
| label: "state 22\n object_value_list -> STRING COLON . value\n object_value_list -> STRING COLON . value COMMA object_value_list" |
| } |
| backedge: { |
| sourcename: "22" |
| targetname: "1" |
| label: "NUMBER" |
| color: blue |
| textcolor: black |
| } |
| backedge: { |
| sourcename: "22" |
| targetname: "2" |
| label: "STRING" |
| color: blue |
| textcolor: black |
| } |
| backedge: { |
| sourcename: "22" |
| targetname: "3" |
| label: "LBRACE" |
| color: blue |
| textcolor: black |
| } |
| backedge: { |
| sourcename: "22" |
| targetname: "4" |
| label: "LBRACK" |
| color: blue |
| textcolor: black |
| } |
| backedge: { |
| sourcename: "22" |
| targetname: "5" |
| label: "TRUE_VALUE" |
| color: blue |
| textcolor: black |
| } |
| backedge: { |
| sourcename: "22" |
| targetname: "6" |
| label: "FALSE_VALUE" |
| color: blue |
| textcolor: black |
| } |
| backedge: { |
| sourcename: "22" |
| targetname: "7" |
| label: "NULL_VALUE" |
| color: blue |
| textcolor: black |
| } |
| edge: { |
| sourcename: "22" |
| targetname: "26" |
| label: "value" |
| color: green |
| textcolor: black |
| } |
| backedge: { |
| sourcename: "22" |
| targetname: "9" |
| label: "object" |
| color: green |
| textcolor: black |
| } |
| backedge: { |
| sourcename: "22" |
| targetname: "10" |
| label: "array" |
| color: green |
| textcolor: black |
| } |
| backedge: { |
| sourcename: "22" |
| targetname: "11" |
| label: "number" |
| color: green |
| textcolor: black |
| } |
| backedge: { |
| sourcename: "22" |
| targetname: "12" |
| label: "string" |
| color: green |
| textcolor: black |
| } |
| backedge: { |
| sourcename: "22" |
| targetname: "13" |
| label: "null" |
| color: green |
| textcolor: black |
| } |
| backedge: { |
| sourcename: "22" |
| targetname: "14" |
| label: "boolean" |
| color: green |
| textcolor: black |
| } |
| node: { |
| title: "23" |
| label: "state 23\n object -> LBRACE object_value_list RBRACE ." |
| } |
| node: { |
| title: "24" |
| label: "state 24\n array_value_list -> value COMMA . array_value_list" |
| } |
| backedge: { |
| sourcename: "24" |
| targetname: "1" |
| label: "NUMBER" |
| color: blue |
| textcolor: black |
| } |
| backedge: { |
| sourcename: "24" |
| targetname: "2" |
| label: "STRING" |
| color: blue |
| textcolor: black |
| } |
| backedge: { |
| sourcename: "24" |
| targetname: "3" |
| label: "LBRACE" |
| color: blue |
| textcolor: black |
| } |
| backedge: { |
| sourcename: "24" |
| targetname: "4" |
| label: "LBRACK" |
| color: blue |
| textcolor: black |
| } |
| backedge: { |
| sourcename: "24" |
| targetname: "5" |
| label: "TRUE_VALUE" |
| color: blue |
| textcolor: black |
| } |
| backedge: { |
| sourcename: "24" |
| targetname: "6" |
| label: "FALSE_VALUE" |
| color: blue |
| textcolor: black |
| } |
| backedge: { |
| sourcename: "24" |
| targetname: "7" |
| label: "NULL_VALUE" |
| color: blue |
| textcolor: black |
| } |
| backedge: { |
| sourcename: "24" |
| targetname: "19" |
| label: "value" |
| color: green |
| textcolor: black |
| } |
| backedge: { |
| sourcename: "24" |
| targetname: "9" |
| label: "object" |
| color: green |
| textcolor: black |
| } |
| backedge: { |
| sourcename: "24" |
| targetname: "10" |
| label: "array" |
| color: green |
| textcolor: black |
| } |
| edge: { |
| sourcename: "24" |
| targetname: "27" |
| label: "array_value_list" |
| color: green |
| textcolor: black |
| } |
| backedge: { |
| sourcename: "24" |
| targetname: "11" |
| label: "number" |
| color: green |
| textcolor: black |
| } |
| backedge: { |
| sourcename: "24" |
| targetname: "12" |
| label: "string" |
| color: green |
| textcolor: black |
| } |
| backedge: { |
| sourcename: "24" |
| targetname: "13" |
| label: "null" |
| color: green |
| textcolor: black |
| } |
| backedge: { |
| sourcename: "24" |
| targetname: "14" |
| label: "boolean" |
| color: green |
| textcolor: black |
| } |
| node: { |
| title: "25" |
| label: "state 25\n array -> LBRACK array_value_list RBRACK ." |
| } |
| node: { |
| title: "26" |
| label: "state 26\n object_value_list -> STRING COLON value .\n object_value_list -> STRING COLON value . COMMA object_value_list" |
| } |
| edge: { |
| sourcename: "26" |
| targetname: "28" |
| label: "COMMA" |
| color: blue |
| textcolor: black |
| } |
| node: { |
| title: "27" |
| label: "state 27\n array_value_list -> value COMMA array_value_list ." |
| } |
| node: { |
| title: "28" |
| label: "state 28\n object_value_list -> STRING COLON value COMMA . object_value_list" |
| } |
| backedge: { |
| sourcename: "28" |
| targetname: "15" |
| label: "STRING" |
| color: blue |
| textcolor: black |
| } |
| edge: { |
| sourcename: "28" |
| targetname: "29" |
| label: "object_value_list" |
| color: green |
| textcolor: black |
| } |
| node: { |
| title: "29" |
| label: "state 29\n object_value_list -> STRING COLON value COMMA object_value_list ." |
| } |
| |
| |
| } |