YACC(1) 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 gener- ated by lex(1)), with a main(int argc, char *argv[]) pro- gram, 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 mes- sages. 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 state- ments 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. Page 1 Plan 9 (printed 11/18/24) YACC(1) YACC(1) 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. Page 2 Plan 9 (printed 11/18/24)