unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (v7man)
Page:
Section:
Apropos / Subsearch:
optional field

YACC(1)                     General Commands Manual                    YACC(1)



NAME
       yacc - yet another compiler-compiler

SYNOPSIS
       yacc [ -vd ] grammar

DESCRIPTION
       Yacc  converts a context-free grammar into a set of tables for a simple
       automaton which executes an LR(1) parsing algorithm.  The  grammar  may
       be ambiguous; specified precedence rules are used to break ambiguities.

       The output file, y.tab.c, must be compiled by the C compiler to produce
       a program yyparse.  This program must be loaded with the  lexical  ana-
       lyzer  program,  yylex,  as well as main and yyerror, an error handling
       routine.  These routines must be supplied by the user; Lex(1) is useful
       for creating lexical analyzers usable by yacc.

       If  the -v flag is given, the file y.output is prepared, which contains
       a description of the parsing tables and a report on conflicts generated
       by ambiguities in the grammar.

       If  the  -d flag is used, the file y.tab.h is generated with the define
       statements that associate the  yacc-assigned  `token  codes'  with  the
       user-declared  `token  names'.   This  allows  source  files other than
       y.tab.c to access the token codes.

FILES
       y.output
       y.tab.c
       y.tab.h             defines for token names
       yacc.tmp, yacc.acts temporary files
       /usr/lib/yaccpar    parser prototype for C programs
       /lib/liby.a         library with default `main' and `yyerror'

SEE ALSO
       lex(1)
       LR Parsing by A. V. Aho and S. C.  Johnson,  Computing  Surveys,  June,
       1974.
       YACC - Yet Another Compiler Compiler by S. C. Johnson.

DIAGNOSTICS
       The  number  of reduce-reduce and shift-reduce conflicts is reported on
       the standard output; a more detailed report is found  in  the  y.output
       file.   Similarly,  if some rules are not reachable from the start sym-
       bol, this is also reported.

BUGS
       Because file names are fixed, at most one yacc process can be active in
       a given directory at a time.



                                                                       YACC(1)