YACC(1)
NAME
yacc − yet another compiler-compiler
SYNOPSIS
yacc [ option ... ] grammar
DESCRIPTION
Yacc converts a context-free grammar and translation code into a set of tables for an LR(1) parser and translator. 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 a lexical analyzer function, yylex(void) (often generated by lex(1)), with a main(int argc, char ∗argv[]) program, and with an error handling routine, yyerror(char∗).
The options are
-o output Direct output to the specified file instead of y.tab.c.
-Dn Create file y.debug, containing diagnostic messages. The amount of diagnostic output from the parser is regulated by value n:
0 Report errors.
1 Also report reductions.
2 Also report the name of each token returned by yylex.
-v Create file y.output, containing a description of the parsing tables and of conflicts arising from ambiguities in the grammar.
-d Create file y.tab.h, containing #define statements that associate yacc-assigned ‘token codes’ with user-declared ‘token names’. Include it in source files other than y.tab.c to give access to the token codes.
-s stem Change the prefix y of the file names y.tab.c, y.tab.h, y.debug, and y.output to stem.
-S Write a parser that uses stdio instead of the print routines in libc.
FILES
y.output
y.tab.c
y.tab.h
y.debug
y.tmp.∗ temporary file
y.acts.∗ temporary file
/sys/lib/yaccpar
parser prototype
/sys/lib/yaccpars
parser prototype using stdio
SEE ALSO
lex(1)
Yacc: A parser generator, S. C. Johnson and R. Sethi, Unix Research System Programmer’s Manual, Volume 2
BUGS
The parser may not have full information when it writes to y.debug so that the names of the tokens returned by yylex may be missing.
Plan 9 — January 03, 1993