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 π
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
- opensuse-leap 16.0: perl-GraphViz 2.26-bp160.1.11 Β· Artistic-1.0 OR GPL-1.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms