GraphVi...se::Yapp(3)

πŸ’– NAME πŸ’–

Okay bestie, welcome to the GraphViz::Parse::Yapp(3) man page β€” yes, the header is out here truncating it to GraphVi...se::Yapp(3), iconic β€” from the User Contributed Perl Documentation. It’s giving GraphViz::Parse::Yapp - Visualise grammars ✨

🌸 SYNOPSIS 🌸

use GraphViz::Parse::Yapp;

# Pass in a file generated via yapp -v
my $g = GraphViz::Parse::Yapp->new('Yapp.output');
print $g->as_png;

πŸ¦‹ DESCRIPTION πŸ¦‹

This module makes it easy to visualise Parse::Yapp grammars. Lowkey, writing Parse::Yapp grammars is tricky at the best of times, and grammars almost always evolve in ways you didn’t foresee at the start. This module aims to visualise a grammar as a graph in order to make the structure clear and aid in understanding the grammar. No cap, that’s the whole vibe check.

The way that rules are represented? As nodes, bestie. A node has its name on the left of the node and its productions on the right of the node. The subrules present in the productions are represented by edges to the subrule nodes. Obsessed with the clarity, honestly.

🚨 Thus, every node (rule) should be connected to the graph β€” otherwise a rule is not part of the grammar. Periodt.

This uses the GraphViz module to draw the graph. Thanks to Damian Conway for the original idea 🫢.

🌈 METHODS 🌈

✨ new ✨

This is the constructor. It takes one mandatory argument, which is a filename of the output file generated by running yapp -v on the grammar file. For example, if your Parse::Yapp grammar file is called calc.yp, you would run yapp -v calc.yp and pass in calc.output as an argument here. A GraphViz object is returned.

# Pass in a file generated via yapp -v
my $graph = GraphViz::Parse::Yapp->new('Yapp.output');
print $g->as_png;

🌟 as_* 🌟

The grammar can be visualised in a number of different graphical formats. Methods include as_ps, as_hpgl, as_pcl, as_mif, as_pic, as_gd, as_gd2, as_gif, as_jpeg, as_png, as_wbmp, as_ismap, as_imap, as_vrml, as_vtx, as_mp, as_fig, as_svg. See the GraphViz documentation for more information. The two most common methods are:

# Print out a PNG-format file
print $g->as_png;

# Print out a PostScript-format file
print $g->as_ps;

πŸ‘‘ AUTHOR πŸ‘‘

Leon Brocard <acme@astray.com>

Copyright (C) 2001, Leon Brocard

This module is free software; you can redistribute it or modify it under the Perl License, a copy of which is available at <http://dev.perl.org/licenses/>.


Okay bestie, that’s the whole GraphViz::Parse::Yapp(3) page. Source/version: perl v5.42.0, date: 2023-03-04. Bye πŸ’–βœ¨πŸ’…

πŸ“¦ where this page comes from