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 ." } }