logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

yapp - A perl frontend to the Parse::Yapp module

Author

       William N. Braswell, Jr. <wbraswell_cpan@NOSPAM.nym.hush.com> (Remove "NOSPAM".)

Bugs

       None known now :-)

Description

       yapp is a frontend to the Parse::Yapp module, which lets you compile Parse::Yapp grammar input files into
       Perl LALR(1) OO parser modules.

Name

       yapp - A perl frontend to the Parse::Yapp module

Options

       Options, as of today, are all optionals :-)

       -v  Creates a file grammar.output describing your parser. It will show you a summary of conflicts, rules,
           the DFA (Deterministic Finite Automaton) states and overall usage of the parser.

       -s  Create  a  standalone  module  in  which the driver is included.  Note that if you have more than one
           parser module called from a program, to have it standalone, you need this option only for one of your
           parser module.

       -n  Disable source file line numbering embedded in your parser module.  I don't know why one should  need
           it, but it's there.

       -mmodule
           Gives  your  parser  module the package name (or name space or module name or class name or whatever-
           you-call-it) of module.  It defaults to grammar-ooutfile
           The compiled output file will be named outfile for your parser module.  It defaults to grammar.pm or,
           if you specified the option -mA::Module::Name (see  below),  to  Name.pm,  in  the  current  working
           directory.

       -tfilename
           The  -tfilename option allows you to specify a file which should be used as template for generating
           the parser output.  The default is to use the internal template  defined  in  Parse::Yapp::Output.pm.
           For  how  to write your own template and which substitutions are available, have a look to the module
           Parse::Yapp::Output.pm : it should be obvious.

       -bshebang
           If you work on systems that understand so called shebangs, and your generated parser is  directly  an
           executable script, you can specifie one with the -b option, ie:

               yapp -b '/usr/local/bin/perl -w' -o myscript.pl myscript.yp

           This will output a file called myscript.pl whose very first line is:

               #!/usr/local/bin/perl -w

           The argument is mandatory, but if you specify an empty string, the value of $Config{perlpath} will be
           used instead.

       grammar
           The  input  grammar file. If no suffix is given, and the file does not exists, an attempt to open the
           file with a suffix of  .yp is tried before exiting.

       -V  Display current version of Parse::Yapp and gracefully exits.

       -h  Display the usage screen.

See Also

Parse::Yapp(3) Perl(1) yacc(1) bison(1)

perl v5.38.2                                       2024-06-19                                           YAPP(1p)

Synopsys

       yapp [options] grammar[.yp]

       yapp -V

       yapp -h

See Also