Provided by: perl-byacc_2.0-7_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