GraphViz2, MarpaX::Grammar::Parser and MarpaX::Grammar::GraphViz2
OK. I've expanded MarpaX::Grammar::Parser V 1.01 so it now has a cooked_tree() method.
All trees discussed here use Tree::DAG_Node.
The code now takes the output of Marpa processing your grammar (still available via the raw_tree() method), and post-processes it to provide just the user's grammar. That is, it is shorn of all the Marpa-specific details.
The main purpose of cooked_tree() is as input into MarpaX::Grammar::GraphViz2 V 1.00, which converts your SLIF-DSL (a type of BNF) into a visual representation.
During this, I found a bug in GraphViz2, so it's now at V 2.20.
Lastly, the demo page for MarpaX::Grammar::GraphViz2 is here.