|
|
1.1 ! root 1: .TH YACC 1 "18 January 1983" ! 2: .SH NAME ! 3: yacc \- yet another compiler-compiler ! 4: .SH SYNOPSIS ! 5: .B yacc ! 6: [ ! 7: .B \-vd ! 8: ] ! 9: grammar ! 10: .SH DESCRIPTION ! 11: .I Yacc ! 12: converts a context-free grammar into a set of ! 13: tables for a simple automaton which executes an LR(1) parsing ! 14: algorithm. ! 15: The grammar may be ambiguous; ! 16: specified precedence rules are used to break ambiguities. ! 17: .PP ! 18: The output file, ! 19: .IR y.tab.c , ! 20: must be compiled by the C compiler ! 21: to produce a program ! 22: .IR yyparse . ! 23: This program must be loaded with the lexical analyzer program, ! 24: .IR yylex , ! 25: as well as ! 26: .I main ! 27: and ! 28: .IR yyerror , ! 29: an error handling routine. ! 30: These routines must be supplied by the user; ! 31: .IR Lex (1) ! 32: is useful for creating lexical analyzers usable by ! 33: .IR yacc . ! 34: .PP ! 35: If the ! 36: .B \-v ! 37: flag is given, the file ! 38: .I y.output ! 39: is prepared, which contains a description of the parsing tables ! 40: and a report on ! 41: conflicts generated by ambiguities in the grammar. ! 42: .PP ! 43: If the \-\fBd\fR flag is used, the file ! 44: .I y.tab.h ! 45: is generated with the ! 46: .I define ! 47: statements that associate the ! 48: .I yacc\c ! 49: -assigned `token codes' with the user-declared `token names'. ! 50: This allows source files other than ! 51: .I y.tab.c ! 52: to access the token codes. ! 53: .SH FILES ! 54: .ta \w'yacc.tmp, yacc.acts 'u ! 55: y.output ! 56: .br ! 57: y.tab.c ! 58: .br ! 59: y.tab.h defines for token names ! 60: .br ! 61: yacc.tmp, yacc.acts temporary files ! 62: .br ! 63: /usr/lib/yaccpar parser prototype for C programs ! 64: .SH "SEE ALSO" ! 65: .IR lex (1) ! 66: .br ! 67: .I "LR Parsing" ! 68: by A. V. Aho and S. C. Johnson, ! 69: Computing Surveys, June, 1974. ! 70: .br ! 71: .I "YACC \- Yet Another Compiler Compiler" ! 72: by S. C. Johnson. ! 73: .SH DIAGNOSTICS ! 74: The number of reduce-reduce and shift-reduce conflicts ! 75: is reported on the standard output; ! 76: a more detailed report is ! 77: found in the ! 78: .I y.output ! 79: file. ! 80: Similarly, if some rules are not reachable from the ! 81: start symbol, this is also reported. ! 82: .SH BUGS ! 83: Because file names are fixed, at most one ! 84: .I yacc ! 85: process can be active in a given directory at ! 86: a time.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.