620 lines
9.8 KiB
Plaintext
620 lines
9.8 KiB
Plaintext
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 ."
|
|
}
|
|
|
|
|
|
}
|