.\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .if !\nF .nr F 0 .if \nF>0 \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} .\} .\" ======================================================================== .\" .IX Title "YAPP 1p" .TH YAPP 1p "2018-07-19" "perl v5.26.2" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" yapp \- A perl frontend to the Parse::Yapp module .SH "SYNOPSYS" .IX Header "SYNOPSYS" yapp [options] \fIgrammar\fR[.yp] .PP yapp \fI\-V\fR .PP yapp \fI\-h\fR .SH "DESCRIPTION" .IX Header "DESCRIPTION" yapp is a frontend to the Parse::Yapp module, which lets you compile Parse::Yapp grammar input files into Perl \s-1\fILALR\s0\fR\|(1) \s-1OO\s0 parser modules. .SH "OPTIONS" .IX Header "OPTIONS" Options, as of today, are all optionals :\-) .IP "\fI\-v\fR" 4 .IX Item "-v" Creates a file \fIgrammar\fR.output describing your parser. It will show you a summary of conflicts, rules, the \s-1DFA\s0 (Deterministic Finite Automaton) states and overall usage of the parser. .IP "\fI\-s\fR" 4 .IX Item "-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. .IP "\fI\-n\fR" 4 .IX Item "-n" Disable source file line numbering embedded in your parser module. I don't know why one should need it, but it's there. .IP "\fI\-m module\fR" 4 .IX Item "-m module" Gives your parser module the package name (or name space or module name or class name or whatever-you-call-it) of \fImodule\fR. It defaults to \fIgrammar\fR .IP "\fI\-o outfile\fR" 4 .IX Item "-o outfile" The compiled output file will be named \fIoutfile\fR for your parser module. It defaults to \fIgrammar\fR.pm or, if you specified the option \&\fI\-m A::Module::Name\fR (see below), to \fIName.pm\fR, in the current working directory. .IP "\fI\-t filename\fR" 4 .IX Item "-t filename" The \fI\-t filename\fR 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 \fIParse::Yapp::Output.pm\fR. For how to write your own template and which substitutions are available, have a look to the module \fIParse::Yapp::Output.pm\fR : it should be obvious. .IP "\fI\-b shebang\fR" 4 .IX Item "-b shebang" If you work on systems that understand so called \fIshebangs\fR, and your generated parser is directly an executable script, you can specifie one with the \fI\-b\fR option, ie: .Sp .Vb 1 \& yapp \-b \*(Aq/usr/local/bin/perl \-w\*(Aq \-o myscript.pl myscript.yp .Ve .Sp This will output a file called \fImyscript.pl\fR whose very first line is: .Sp .Vb 1 \& #!/usr/local/bin/perl \-w .Ve .Sp The argument is mandatory, but if you specify an empty string, the value of \fI\f(CI$Config\fI{perlpath}\fR will be used instead. .IP "\fIgrammar\fR" 4 .IX Item "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 \fI.yp\fR is tried before exiting. .IP "\fI\-V\fR" 4 .IX Item "-V" Display current version of Parse::Yapp and gracefully exits. .IP "\fI\-h\fR" 4 .IX Item "-h" Display the usage screen. .SH "BUGS" .IX Header "BUGS" None known now :\-) .SH "AUTHOR" .IX Header "AUTHOR" William N. Braswell, Jr. (Remove \*(L"\s-1NOSPAM\*(R".\s0) .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright © 1998, 1999, 2000, 2001, Francois Desarmenien. Copyright © 2017 William N. Braswell, Jr. .PP See \fIParse::Yapp\fR\|(3) for legal use and distribution rights .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIParse::Yapp\fR\|(3) \fIPerl\fR\|(1) \fIyacc\fR\|(1) \fIbison\fR\|(1)