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