Provided by: perl-byacc_2.0-8_amd64 bug

NAME

       pbyacc - an LALR(1) parser generator

SYNOPSIS

       pbyacc [ -CPcdlrtv ] [ -b file_prefix ] [ -p symbol_prefix ] filename

DESCRIPTION

       pbyacc  reads  the  grammar specification in the file filename and generates an LR(1) parser for it.  The
       parsers consist of a set of LALR(1) parsing tables and  a  driver  routine  written  in  the  C  or  Perl
       programming  languages.   pbyacc  normally  writes  the  parse  tables and the driver routine to the file
       y.tab.c, using the C programming language.

       The following options are available:

              -b file_prefix
                     The -b option changes the prefix prepended to the output file names to the  string  denoted
                     by file_prefix.  The default prefix is the character y.

              -C or -c
                     Use the C programming language (default).

              -d     The -d option causes the header file y.tab.h to be written (or y.tab.ph, for Perl).

              -l     If  the  -l  option  is not specified, pbyacc will insert #line directives in the generated
                     code.  The #line directives let the C compiler relate errors in the generated code  to  the
                     user's  original  code.   If  the  -l option is specified, pbyacc will not insert the #line
                     directives.  #line directives specified by the user will be retained.

              -p symbol_prefix
                     Change the prefix in symbols in the generated code to the string denoted  by  symbol_prefix
                     rather than the default of "yy".  Only symbols generated by pbyacc are affected. Symbols in
                     the definition and user subroutine sections are not changed.

                     The symbol_prefix can contain upper or lower case  letters,  digits,  or  _  (underline  or
                     underscore).  It  must start with either an underline or a letter and must contain at least
                     one lower case letter.

                     All lower case letters in the symbol prefix will be converted to upper  case  letters  when
                     defined values or typedefs are generated.

                     For example, if '-p ftp_' is specifed on the pbyacc command line:

                          ┌─────────────┬──────────────┐
                          │ old symbol  │  new symbol  │
                          ├─────────────┼──────────────┤
                          │ YYABORT     │  FTP_ABORT   │
                          │ YYACCEPT    │  FTP_ACCEPT  │
                          │ YYBYACC     │  FTP_BYACC   │
                          │ YYDEBUG     │  FTP_DEBUG   │
                          │ YYSTYPE     │  FTP_STYPE   │
                          │ yyabort     │  ftp_abort   │
                          │ yyerrok     │  ftp_errok   │
                          │ yylex       │  ftp_lex     │
                          │ yylval      │  ftp_lval    │
                          │ yyparse     │  ftp_parse   │
--

FILES

       y.code.c    output parser code in C
       y.tab.c     output parser code and tables in C or, if -r switch specified, output parser tables in C
       y.tab.h     defines for token names and, if %union used in grammar, the union definition for C parsers
       y.code.pl   output parser code in PERL
       y.tab.pl    output  parser  code  and  tables in PERL or, if -r switch specified, output parser tables in
                   PERL
       y.tab.ph    PERL assignment statements for token names
       y.output    description of parser states, state transitions, and conflicts
       /tmp/pbyacc.aXXXXXX, /tmp/byacc.tXXXXXX, /tmp/byacc.uXXXXXX
                   temporary files
       /usr/lib/libby.a
                   library containing simple versions of main()  (calls  yyparse()  then  exits)  and  yyerror()
                   (prints message to stderr then returns)

SEE ALSO

       flex(1), lex(1)

       Yacc: Yet Another Compiler-Compiler
       Stephen C. Johnson
       Originally (?) published as Comp. Sci. Tech. Rep. No. 32. Bell Laboratories, July 1975. Reprinted in many
       different places.

       Introduction to Compiler Construction with UNIX
       Axel T. Schreiner and H. George Friedman, Jr.
       Prentice Hall, 1985.

       lex & yacc, Second Edition
       John R. Levine, Tony Mason, and Doug Brown
       O'Reilly & Associates, Inc., 1992.
            Possibly the best book yet on lex and yacc. (My opinion only. Others may disagree. - Rick Ohnemus)

       comp.compilers monthly message and Frequently Asked Questions
       Posted monthly in comp.compilers and news.answers USENET newsgroups.

DIAGNOSTICS

       If there are rules that are never reduced, the number of such rules is reported on standard error.

       If there are any LALR(1) conflicts, the number of conflicts is reported on standard error.

RESTRICTIONS

       A symbol prefix specified using the -p switch must contain at least one lower case character. This is  to
       allow a distinction between variables, defined values, and typedefs.

BUGS