This is the STT for GraphViz2::Marpa V 1.08.
It covers most, but perhaps not quite all, of the Graphviz dot language.
This table has been exported from an OpenOffice Calc spreadsheet as a CSV file, with the latter being incorporated into this HTML.
The lexer which reads the STT does not use the last 2 columns, Regexp and Interpretation.
The Regexp column is referred to in the spreadsheet by formulas, and the Interpretation column is just for the reader.
GraphViz2::Marpa::Lexer reads this STT, and outputs tokens in an intermediary language.
The STT is actually at the end of Lexer.pm, but options to new() allow you to override that source for the STT.
The lexer uses Set::FA::Element to process the graph definition.
GraphViz2::Marpa::Parser reads lexed tokens and builds a data structure in memory representing the graph.
Lastly, the default rendering engine GraphViz2::Marpa::Renderer::GraphViz2 uses this data structure to re-create the input to the lexer, although the formatting might be slightly different.
Start | Accept | State | Event | Next | Entry | Exit | Regexp | Interpretation |
Yes | . | initial | strict | graph | . | save_prefix | (?:"[^"]*"|<\s*<.*?>\s*>|[a-zA-Z_][a-zA-Z_0-9]*|-?(?:\.[0-9]+|[0-9]+(?:\.[0-9])*)) | ID |
. | . | . | (?:graph|digraph) | graph_id | . | . | :(?:"[^"]+"|<\s*<.*?>\s*>|[a-zA-Z_][a-zA-Z_0-9]*|-?(?:\.[0-9]+|[0-9]+(?:\.[0-9])*)) | : + ID |
. | . | . | \/\*.*?\*\/ | initial | . | . | \/\*.*\*\/ | . |
. | . | . | \s+ | initial | . | . | :(?:"[^"]+"|<\s*<.*?>\s*>|[a-zA-Z_][a-zA-Z_0-9]*|-?(?:\.[0-9]+|[0-9]+(?:\.[0-9])*)):(?:n|ne|e|se|s|sw|w|nw|c|_)(?![a-zA-Z_0-9]) | : + ID + : + Compass point |
. | . | . | . | . | . | . | :(?:n|ne|e|se|s|sw|w|nw|c|_)(?![a-zA-Z_0-9]) | : + Compass point |
. | . | graph | (?:graph|digraph) | graph_id | . | save_prefix | (?:->|--) | Edge |
. | . | . | \s+ | graph | . | . | . | . |
. | . | . | . | . | . | . | . | . |
. | . | graph_id | (?:"[^"]*"|<\s*<.*?>\s*>|[a-zA-Z_][a-zA-Z_0-9]*|-?(?:\.[0-9]+|[0-9]+(?:\.[0-9])*)) | open_brace | . | save_graph_id | . | . |
. | . | . | { | statement_list_1 | . | . | . | . |
. | . | . | \/\*.*?\*\/ | graph_id | . | . | . | . |
. | . | . | \s+ | graph_id | . | . | . | . |
. | . | . | . | . | . | . | . | . |
. | . | open_brace | { | statement_list_1 | . | start_statements | . | . |
. | . | . | \/\*.*?\*\/ | open_brace | . | . | . | . |
. | . | . | \s+ | open_brace | . | . | . | . |
. | . | . | . | . | . | . | . | . |
. | . | start_statement | { | statement_list_1 | . | start_statements | . | . |
. | . | . | \/\*.*?\*\/ | start_statement | . | . | . | . |
. | . | . | \s+ | start_statement | . | . | . | . |
. | . | . | . | . | . | . | . | . |
. | Yes | statement_list_1 | subgraph | graph_id | . | save_id_1 | . | . |
. | . | . | (?:"[^"]*"|<\s*<.*?>\s*>|[a-zA-Z_][a-zA-Z_0-9]*|-?(?:\.[0-9]+|[0-9]+(?:\.[0-9])*)) | id_a | . | . | . | . |
. | . | . | (?:->|--) | edge_id | . | . | . | . |
. | . | . | (?:\[) | attribute_list | . | . | . | . |
. | . | . | { | statement_list_2 | . | . | . | . |
. | . | . | } | end_statement | . | . | . | . |
. | . | . | ; | statement_list_1 | . | . | . | . |
. | . | . | \/\*.*?\*\/ | statement_list_1 | . | . | . | . |
. | . | . | \s+ | statement_list_1 | . | . | . | . |
. | . | . | . | . | . | . | . | . |
. | Yes | statement_list_2 | subgraph | graph_id | . | save_id_1 | . | . |
. | . | . | (?:"[^"]*"|<\s*<.*?>\s*>|[a-zA-Z_][a-zA-Z_0-9]*|-?(?:\.[0-9]+|[0-9]+(?:\.[0-9])*)) | id_a | . | . | . | . |
. | . | . | (?:->|--) | edge_id | . | . | . | . |
. | . | . | (?:\[) | attribute_list | . | . | . | . |
. | . | . | { | statement_list_1 | . | . | . | . |
. | . | . | } | end_statement | . | . | . | . |
. | . | . | ; | statement_list_2 | . | . | . | . |
. | . | . | \/\*.*?\*\/ | statement_list_2 | . | . | . | . |
. | . | . | \s+ | statement_list_2 | . | . | . | . |
. | . | . | . | . | . | . | . | . |
. | . | id_a | subgraph | graph_id | . | save_id_2 | . | . |
. | . | . | :(?:n|ne|e|se|s|sw|w|nw|c|_)(?![a-zA-Z_0-9]) | statement_list_1 | . | . | . | . |
. | . | . | :(?:"[^"]+"|<\s*<.*?>\s*>|[a-zA-Z_][a-zA-Z_0-9]*|-?(?:\.[0-9]+|[0-9]+(?:\.[0-9])*)):(?:n|ne|e|se|s|sw|w|nw|c|_)(?![a-zA-Z_0-9]) | statement_list_1 | . | . | . | . |
. | . | . | :(?:"[^"]+"|<\s*<.*?>\s*>|[a-zA-Z_][a-zA-Z_0-9]*|-?(?:\.[0-9]+|[0-9]+(?:\.[0-9])*)) | statement_list_1 | . | . | . | . |
. | . | . | (?:"[^"]*"|<\s*<.*?>\s*>|[a-zA-Z_][a-zA-Z_0-9]*|-?(?:\.[0-9]+|[0-9]+(?:\.[0-9])*)) | id_b | . | . | . | . |
. | . | . | { | statement_list_1 | . | . | A stand-alone { | . |
. | . | . | } | end_statement | . | . | . | . |
. | . | . | (?:->|--) | id_b | . | . | . | . |
. | . | . | \[ | attribute_list | . | . | . | . |
. | . | . | = | id_b | . | . | . | . |
. | . | . | ; | id_a | . | . | . | . |
. | . | . | \/\*.*?\*\/ | id_a | . | . | . | . |
. | . | . | \s+ | id_a | . | . | . | . |
. | . | . | . | . | . | . | . | . |
. | . | id_b | subgraph | graph_id | . | save_id_2 | . | . |
. | . | . | :(?:n|ne|e|se|s|sw|w|nw|c|_)(?![a-zA-Z_0-9]) | statement_list_1 | . | . | . | . |
. | . | . | :(?:"[^"]+"|<\s*<.*?>\s*>|[a-zA-Z_][a-zA-Z_0-9]*|-?(?:\.[0-9]+|[0-9]+(?:\.[0-9])*)):(?:n|ne|e|se|s|sw|w|nw|c|_)(?![a-zA-Z_0-9]) | statement_list_1 | . | . | . | . |
. | . | . | :(?:"[^"]+"|<\s*<.*?>\s*>|[a-zA-Z_][a-zA-Z_0-9]*|-?(?:\.[0-9]+|[0-9]+(?:\.[0-9])*)) | statement_list_1 | . | . | . | . |
. | . | . | (?:"[^"]*"|<\s*<.*?>\s*>|[a-zA-Z_][a-zA-Z_0-9]*|-?(?:\.[0-9]+|[0-9]+(?:\.[0-9])*)) | id_a | . | . | . | . |
. | . | . | { | statement_list_1 | . | . | A stand-alone { | . |
. | . | . | } | end_statement | . | . | . | . |
. | . | . | (?:->|--) | id_a | . | . | . | . |
. | . | . | \[ | attribute_list | . | . | . | . |
. | . | . | = | id_a | . | . | . | . |
. | . | . | ; | id_b | . | . | . | . |
. | . | . | \/\*.*?\*\/ | id_b | . | . | . | . |
. | . | . | \s+ | id_b | . | . | . | . |
. | . | . | . | . | . | . | . | . |
. | . | edge_id | subgraph | id_a | . | save_id_1 | . | . |
. | . | . | (?:"[^"]*"|<\s*<.*?>\s*>|[a-zA-Z_][a-zA-Z_0-9]*|-?(?:\.[0-9]+|[0-9]+(?:\.[0-9])*)) | id_a | . | . | . | . |
. | . | . | (?:->|--) | statement_list_1 | . | . | . | . |
. | . | . | } | end_statement | . | . | . | . |
. | . | . | \/\*.*?\*\/ | edge_id | . | . | . | . |
. | . | . | \s+ | edge_id | . | . | . | . |
. | . | . | . | . | . | . | . | . |
. | . | attribute_list | (?:"[^"]*"|<\s*<.*?>\s*>|[a-zA-Z_][a-zA-Z_0-9]*|-?(?:\.[0-9]+|[0-9]+(?:\.[0-9])*)) | attribute_a | . | save_attribute | . | . |
. | . | . | ] | statement_list_1 | . | . | . | . |
. | . | . | } | statement_list_1 | . | . | . | . |
. | . | . | \/\*.*?\*\/ | attribute_list | . | . | . | . |
. | . | . | \s+ | attribute_list | . | . | . | . |
. | . | . | . | . | . | . | . | . |
. | . | attribute_a | (?:"[^"]*"|<\s*<.*?>\s*>|[a-zA-Z_][a-zA-Z_0-9]*|-?(?:\.[0-9]+|[0-9]+(?:\.[0-9])*)) | attribute_b | . | save_attribute | . | . |
. | . | . | = | attribute_b | . | . | . | . |
. | . | . | , | attribute_list | . | . | . | . |
. | . | . | ] | statement_list_1 | . | . | . | . |
. | . | . | \/\*.*?\*\/ | attribute_a | . | . | . | . |
. | . | . | \s+ | attribute_a | . | . | . | . |
. | . | . | . | . | . | . | . | . |
. | . | attribute_b | (?:"[^"]*"|<\s*<.*?>\s*>|[a-zA-Z_][a-zA-Z_0-9]*|-?(?:\.[0-9]+|[0-9]+(?:\.[0-9])*)) | attribute_a | . | save_attribute | . | . |
. | . | . | = | attribute_a | . | . | . | . |
. | . | . | , | attribute_list | . | . | . | . |
. | . | . | ] | statement_list_1 | . | . | . | . |
. | . | . | \/\*.*?\*\/ | attribute_b | . | . | . | . |
. | . | . | \s+ | attribute_b | . | . | . | . |
. | . | . | . | . | . | . | . | . |
. | Yes | end_statement | subgraph | graph_id | . | save_id_1 | . | . |
. | . | . | (?:"[^"]*"|<\s*<.*?>\s*>|[a-zA-Z_][a-zA-Z_0-9]*|-?(?:\.[0-9]+|[0-9]+(?:\.[0-9])*)) | id_a | . | . | . | . |
. | . | . | (?:->|--) | edge_id | . | . | . | . |
. | . | . | \[ | attribute_list | . | . | . | . |
. | . | . | { | statement_list_1 | . | . | . | . |
. | . | . | } | statement_list_1 | . | . | . | . |
. | . | . | \/\*.*?\*\/ | end_statement | . | . | . | . |
. | . | . | \s+ | end_statement | . | . | . | . |
Start | Accept | State | Event | Next | Entry | Exit | Regexp | Interpretation |
Author
|
|
Date
|
2013-05-27
|
OS
|
Debian V 6
|
Perl
|
5.14.2
|