diff options
author | Philippe Charnier <charnier@FreeBSD.org> | 1997-08-28 06:33:53 +0000 |
---|---|---|
committer | Philippe Charnier <charnier@FreeBSD.org> | 1997-08-28 06:33:53 +0000 |
commit | fca5180712cb6cd3a35774ef9b62784b48451f7e (patch) | |
tree | 067b55a0cb952625e8ad285b6586a32cc628ec39 | |
parent | 7720a19d5d7456232e8e11909dd72d31ced622d1 (diff) | |
download | src-fca5180712cb6cd3a35774ef9b62784b48451f7e.tar.gz src-fca5180712cb6cd3a35774ef9b62784b48451f7e.zip |
Use err(3). Rewrote man page in mdoc format. The user visible change is that
report of s/r and r/r conflicts is now printed in two separate lines beginning
by `yacc: '.
Notes
Notes:
svn path=/head/; revision=28856
-rw-r--r-- | usr.bin/yacc/defs.h | 3 | ||||
-rw-r--r-- | usr.bin/yacc/error.c | 115 | ||||
-rw-r--r-- | usr.bin/yacc/main.c | 12 | ||||
-rw-r--r-- | usr.bin/yacc/mkpar.c | 24 | ||||
-rw-r--r-- | usr.bin/yacc/yacc.1 | 165 |
5 files changed, 148 insertions, 171 deletions
diff --git a/usr.bin/yacc/defs.h b/usr.bin/yacc/defs.h index 237efe29d2f7..229eacccd8c2 100644 --- a/usr.bin/yacc/defs.h +++ b/usr.bin/yacc/defs.h @@ -34,12 +34,13 @@ * SUCH DAMAGE. * * @(#)defs.h 5.6 (Berkeley) 5/24/93 - * $Id$ + * $Id: defs.h,v 1.5 1997/02/22 19:57:58 peter Exp $ */ #include <sys/cdefs.h> /* for __P macro */ #include <assert.h> #include <ctype.h> +#include <err.h> #include <stdio.h> diff --git a/usr.bin/yacc/error.c b/usr.bin/yacc/error.c index 3ccfb1413b86..0e789ec69c22 100644 --- a/usr.bin/yacc/error.c +++ b/usr.bin/yacc/error.c @@ -32,12 +32,14 @@ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. - * - * $Id$ */ #ifndef lint +#if 0 static char const sccsid[] = "@(#)error.c 5.3 (Berkeley) 6/1/90"; +#endif +static const char rcsid[] = + "$Id$"; #endif /* not lint */ /* routines for printing error messages */ @@ -50,7 +52,7 @@ void fatal(msg) char *msg; { - fprintf(stderr, "%s: f - %s\n", myname, msg); + warnx("f - %s", msg); done(2); } @@ -58,7 +60,7 @@ char *msg; void no_space() { - fprintf(stderr, "%s: f - out of space\n", myname); + warnx("f - out of space"); done(2); } @@ -67,7 +69,7 @@ void open_error(filename) char *filename; { - fprintf(stderr, "%s: f - cannot open \"%s\"\n", myname, filename); + warnx("f - cannot open \"%s\"", filename); done(2); } @@ -75,8 +77,8 @@ char *filename; void unexpected_EOF() { - fprintf(stderr, "%s: e - line %d of \"%s\", unexpected end-of-file\n", - myname, lineno, input_file_name); + warnx("e - line %d of \"%s\", unexpected end-of-file", + lineno, input_file_name); done(1); } @@ -115,8 +117,8 @@ int st_lineno; char *st_line; char *st_cptr; { - fprintf(stderr, "%s: e - line %d of \"%s\", syntax error\n", - myname, st_lineno, input_file_name); + warnx("e - line %d of \"%s\", syntax error", + st_lineno, input_file_name); print_pos(st_line, st_cptr); done(1); } @@ -128,8 +130,8 @@ int c_lineno; char *c_line; char *c_cptr; { - fprintf(stderr, "%s: e - line %d of \"%s\", unmatched /*\n", - myname, c_lineno, input_file_name); + warnx("e - line %d of \"%s\", unmatched /*", + c_lineno, input_file_name); print_pos(c_line, c_cptr); done(1); } @@ -141,8 +143,8 @@ int s_lineno; char *s_line; char *s_cptr; { - fprintf(stderr, "%s: e - line %d of \"%s\", unterminated string\n", - myname, s_lineno, input_file_name); + warnx("e - line %d of \"%s\", unterminated string", + s_lineno, input_file_name); print_pos(s_line, s_cptr); done(1); } @@ -154,8 +156,8 @@ int t_lineno; char *t_line; char *t_cptr; { - fprintf(stderr, "%s: e - line %d of \"%s\", unmatched %%{\n", - myname, t_lineno, input_file_name); + warnx("e - line %d of \"%s\", unmatched %%{", + t_lineno, input_file_name); print_pos(t_line, t_cptr); done(1); } @@ -167,8 +169,8 @@ int u_lineno; char *u_line; char *u_cptr; { - fprintf(stderr, "%s: e - line %d of \"%s\", unterminated %%union \ -declaration\n", myname, u_lineno, input_file_name); + warnx("e - line %d of \"%s\", unterminated %%union declaration", + u_lineno, input_file_name); print_pos(u_line, u_cptr); done(1); } @@ -178,8 +180,8 @@ void over_unionized(u_cptr) char *u_cptr; { - fprintf(stderr, "%s: e - line %d of \"%s\", too many %%union \ -declarations\n", myname, lineno, input_file_name); + warnx("e - line %d of \"%s\", too many %%union declarations", + lineno, input_file_name); print_pos(line, u_cptr); done(1); } @@ -191,8 +193,7 @@ int t_lineno; char *t_line; char *t_cptr; { - fprintf(stderr, "%s: e - line %d of \"%s\", illegal tag\n", - myname, t_lineno, input_file_name); + warnx("e - line %d of \"%s\", illegal tag", t_lineno, input_file_name); print_pos(t_line, t_cptr); done(1); } @@ -202,8 +203,7 @@ void illegal_character(c_cptr) char *c_cptr; { - fprintf(stderr, "%s: e - line %d of \"%s\", illegal character\n", - myname, lineno, input_file_name); + warnx("e - line %d of \"%s\", illegal character", lineno, input_file_name); print_pos(line, c_cptr); done(1); } @@ -213,8 +213,8 @@ void used_reserved(s) char *s; { - fprintf(stderr, "%s: e - line %d of \"%s\", illegal use of reserved symbol \ -%s\n", myname, lineno, input_file_name, s); + warnx("e - line %d of \"%s\", illegal use of reserved symbol %s", + lineno, input_file_name, s); done(1); } @@ -223,8 +223,8 @@ void tokenized_start(s) char *s; { - fprintf(stderr, "%s: e - line %d of \"%s\", the start symbol %s cannot be \ -declared to be a token\n", myname, lineno, input_file_name, s); + warnx("e - line %d of \"%s\", the start symbol %s cannot be \ +declared to be a token", lineno, input_file_name, s); done(1); } @@ -233,8 +233,8 @@ void retyped_warning(s) char *s; { - fprintf(stderr, "%s: w - line %d of \"%s\", the type of %s has been \ -redeclared\n", myname, lineno, input_file_name, s); + warnx("w - line %d of \"%s\", the type of %s has been redeclared", + lineno, input_file_name, s); } @@ -242,8 +242,8 @@ void reprec_warning(s) char *s; { - fprintf(stderr, "%s: w - line %d of \"%s\", the precedence of %s has been \ -redeclared\n", myname, lineno, input_file_name, s); + warnx("w - line %d of \"%s\", the precedence of %s has been redeclared", + lineno, input_file_name, s); } @@ -251,8 +251,8 @@ void revalued_warning(s) char *s; { - fprintf(stderr, "%s: w - line %d of \"%s\", the value of %s has been \ -redeclared\n", myname, lineno, input_file_name, s); + warnx("w - line %d of \"%s\", the value of %s has been redeclared", + lineno, input_file_name, s); } @@ -260,8 +260,8 @@ void terminal_start(s) char *s; { - fprintf(stderr, "%s: e - line %d of \"%s\", the start symbol %s is a \ -token\n", myname, lineno, input_file_name, s); + warnx("e - line %d of \"%s\", the start symbol %s is a token", + lineno, input_file_name, s); done(1); } @@ -269,16 +269,16 @@ token\n", myname, lineno, input_file_name, s); void restarted_warning() { - fprintf(stderr, "%s: w - line %d of \"%s\", the start symbol has been \ -redeclared\n", myname, lineno, input_file_name); + warnx("w - line %d of \"%s\", the start symbol has been redeclared", + lineno, input_file_name); } void no_grammar() { - fprintf(stderr, "%s: e - line %d of \"%s\", no grammar has been \ -specified\n", myname, lineno, input_file_name); + warnx("e - line %d of \"%s\", no grammar has been specified", + lineno, input_file_name); done(1); } @@ -287,8 +287,8 @@ void terminal_lhs(s_lineno) int s_lineno; { - fprintf(stderr, "%s: e - line %d of \"%s\", a token appears on the lhs \ -of a production\n", myname, s_lineno, input_file_name); + warnx("e - line %d of \"%s\", a token appears on the lhs of a production", + s_lineno, input_file_name); done(1); } @@ -296,8 +296,8 @@ of a production\n", myname, s_lineno, input_file_name); void prec_redeclared() { - fprintf(stderr, "%s: w - line %d of \"%s\", conflicting %%prec \ -specifiers\n", myname, lineno, input_file_name); + warnx("w - line %d of \"%s\", conflicting %%prec specifiers", + lineno, input_file_name); } @@ -307,8 +307,8 @@ int a_lineno; char *a_line; char *a_cptr; { - fprintf(stderr, "%s: e - line %d of \"%s\", unterminated action\n", - myname, a_lineno, input_file_name); + warnx("e - line %d of \"%s\", unterminated action", + a_lineno, input_file_name); print_pos(a_line, a_cptr); done(1); } @@ -319,8 +319,8 @@ dollar_warning(a_lineno, i) int a_lineno; int i; { - fprintf(stderr, "%s: w - line %d of \"%s\", $%d references beyond the \ -end of the current rule\n", myname, a_lineno, input_file_name, i); + warnx("w - line %d of \"%s\", $%d references beyond the \ +end of the current rule", a_lineno, input_file_name, i); } @@ -330,8 +330,7 @@ int a_lineno; char *a_line; char *a_cptr; { - fprintf(stderr, "%s: e - line %d of \"%s\", illegal $-name\n", - myname, a_lineno, input_file_name); + warnx("e - line %d of \"%s\", illegal $-name", a_lineno, input_file_name); print_pos(a_line, a_cptr); done(1); } @@ -340,8 +339,7 @@ char *a_cptr; void untyped_lhs() { - fprintf(stderr, "%s: e - line %d of \"%s\", $$ is untyped\n", - myname, lineno, input_file_name); + warnx("e - line %d of \"%s\", $$ is untyped", lineno, input_file_name); done(1); } @@ -351,8 +349,8 @@ untyped_rhs(i, s) int i; char *s; { - fprintf(stderr, "%s: e - line %d of \"%s\", $%d (%s) is untyped\n", - myname, lineno, input_file_name, i, s); + warnx("e - line %d of \"%s\", $%d (%s) is untyped", + lineno, input_file_name, i, s); done(1); } @@ -361,8 +359,7 @@ void unknown_rhs(i) int i; { - fprintf(stderr, "%s: e - line %d of \"%s\", $%d is untyped\n", - myname, lineno, input_file_name, i); + warnx("e - line %d of \"%s\", $%d is untyped", lineno, input_file_name, i); done(1); } @@ -370,8 +367,8 @@ int i; void default_action_warning() { - fprintf(stderr, "%s: w - line %d of \"%s\", the default action assigns an \ -undefined value to $$\n", myname, lineno, input_file_name); + warnx("w - line %d of \"%s\", the default action assigns an \ +undefined value to $$", lineno, input_file_name); } @@ -379,7 +376,7 @@ void undefined_goal(s) char *s; { - fprintf(stderr, "%s: e - the start symbol %s is undefined\n", myname, s); + warnx("e - the start symbol %s is undefined", s); done(1); } @@ -388,5 +385,5 @@ void undefined_symbol_warning(s) char *s; { - fprintf(stderr, "%s: w - the symbol %s is undefined\n", myname, s); + warnx("w - the symbol %s is undefined", s); } diff --git a/usr.bin/yacc/main.c b/usr.bin/yacc/main.c index fb8fa7115b2e..a683855122d3 100644 --- a/usr.bin/yacc/main.c +++ b/usr.bin/yacc/main.c @@ -32,8 +32,6 @@ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. - * - * $Id: main.c,v 1.5 1997/01/12 21:29:47 steve Exp $ */ #ifndef lint @@ -43,7 +41,11 @@ static char const copyright[] = #endif /* not lint */ #ifndef lint +#if 0 static char const sccsid[] = "@(#)main.c 5.5 (Berkeley) 5/24/93"; +#endif +static const char rcsid[] = + "$Id$"; #endif /* not lint */ #include <signal.h> @@ -60,7 +62,6 @@ char vflag; char *symbol_prefix; char *file_prefix = "y"; -char *myname = "yacc"; char *temp_form = "yacc.XXXXXXX"; int lineno; @@ -156,7 +157,9 @@ set_signals() static void usage() { - fprintf(stderr, "usage: %s [-dlrtv] [-b file_prefix] [-o output_file_name] [-p symbol_prefix] filename\n", myname); + fprintf(stderr, "%s\n%s\n", + "usage: yacc [-dlrtv] [-b file_prefix] [-o output_filename]", + " [-p symbol_prefix] filename"); exit(1); } @@ -169,7 +172,6 @@ char *argv[]; register int i; register char *s; - if (argc > 0) myname = argv[0]; for (i = 1; i < argc; ++i) { s = argv[i]; diff --git a/usr.bin/yacc/mkpar.c b/usr.bin/yacc/mkpar.c index bb59d9d7d455..212a79b210b8 100644 --- a/usr.bin/yacc/mkpar.c +++ b/usr.bin/yacc/mkpar.c @@ -32,12 +32,14 @@ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. - * - * $Id$ */ #ifndef lint +#if 0 static char const sccsid[] = "@(#)mkpar.c 5.3 (Berkeley) 1/20/91"; +#endif +static const char rcsid[] = + "$Id$"; #endif /* not lint */ #include <stdlib.h> @@ -245,9 +247,9 @@ unused_rules() if (nunused) if (nunused == 1) - fprintf(stderr, "%s: 1 rule never reduced\n", myname); + warnx("1 rule never reduced"); else - fprintf(stderr, "%s: %d rules never reduced\n", myname, nunused); + warnx("%d rules never reduced", nunused); } @@ -330,21 +332,15 @@ remove_conflicts() static void total_conflicts() { - fprintf(stderr, "%s: ", myname); if (SRtotal == 1) - fprintf(stderr, "1 shift/reduce conflict"); + warnx("1 shift/reduce conflict"); else if (SRtotal > 1) - fprintf(stderr, "%d shift/reduce conflicts", SRtotal); - - if (SRtotal && RRtotal) - fprintf(stderr, ", "); + warnx("%d shift/reduce conflicts", SRtotal); if (RRtotal == 1) - fprintf(stderr, "1 reduce/reduce conflict"); + warnx("1 reduce/reduce conflict"); else if (RRtotal > 1) - fprintf(stderr, "%d reduce/reduce conflicts", RRtotal); - - fprintf(stderr, ".\n"); + warnx("%d reduce/reduce conflicts", RRtotal); } diff --git a/usr.bin/yacc/yacc.1 b/usr.bin/yacc/yacc.1 index 596d15495bf3..f532779264ff 100644 --- a/usr.bin/yacc/yacc.1 +++ b/usr.bin/yacc/yacc.1 @@ -33,125 +33,106 @@ .\" SUCH DAMAGE. .\" .\" @(#)yacc.1 5.8 (Berkeley) 5/24/93 -.\" $Id: yacc.1,v 1.6 1997/02/22 19:58:04 peter Exp $ +.\" $Id: yacc.1,v 1.7 1997/05/14 02:33:08 steve Exp $ .\" -.TH YACC 1 "May 24, 1993" -.UC 6 -.SH NAME -yacc \- an LALR(1) parser generator -.SH SYNOPSIS -.B yacc [ -dlrtv ] [ -b -.I file_prefix -.B ] [ -o -.I output_filename -.B ] [ -p -.I symbol_prefix -.B ] -.I filename -.SH DESCRIPTION -.I Yacc +.Dd May 24, 1993 +.Dt YACC 1 +.Os +.Sh NAME +.Nm yacc +.Nd an LALR(1) parser generator +.Sh SYNOPSIS +.Nm +.Op Fl dlrtv +.Op Fl b Ar file_prefix +.Op Fl o Ar output_filename +.Op Fl p Ar symbol_prefix +.Ar filename +.Sh DESCRIPTION +.Nm Yacc reads the grammar specification in the file -.I filename +.Ar filename and generates an LR(1) parser for it. The parsers consist of a set of LALR(1) parsing tables and a driver routine written in the C programming language. -.I Yacc +.Nm Yacc normally writes the parse tables and the driver routine to the file -.IR y.tab.c. -.PP +.Pa y.tab.c . +.Pp The following options are available: -.RS -.TP -\fB-b \fIfile_prefix\fR -The -.B -b -option changes the prefix prepended to the output file names to +.Bl -tag -width indent +.It Fl b Ar file_prefix +Change the prefix prepended to the output file names to the string denoted by -.IR file_prefix. +.Ar file_prefix . The default prefix is the character -.IR y. -.TP -.B -d -The \fB-d\fR option causes the header file -.IR y.tab.h +.Pa y . +.It Fl d +Cause the header file +.Pa y.tab.h to be written. -.TP -.B -l +.It Fl l If the -.B -l +.Fl l option is not specified, -.I yacc +.Nm will insert #line directives in the generated code. The #line directives let the C compiler relate errors in the generated code to the user's original code. -If the \fB-l\fR option is specified, -.I yacc +If the +.Fl l +option is specified, +.Nm will not insert the #line directives. Any #line directives specified by the user will be retained. -.TP -\fB-o \fIoutput_filename\fR -The -.B -o -option causes -.I yacc +.It Fl o Ar output_filename +Cause +.Nm to write the generated code to -.IR output_filename +.Ar output_filename instead of the default file, -.IR y.tab.c . -.TP -\fB-p \fIsymbol_prefix\fR -The -.B -p -option changes the prefix prepended to yacc-generated symbols to +.Pa y.tab.c . +.It Fl p Ar symbol_prefix +Change the prefix prepended to yacc-generated symbols to the string denoted by -.IR symbol_prefix. +.Ar symbol_prefix . The default prefix is the string -.IR yy. -.TP -.B -r -The -.B -r -option causes -.I yacc +.Pa yy . +.It Fl r +Cause +.Nm to produce separate files for code and tables. The code file is named -.IR y.code.c, +.Pa y.code.c , and the tables file is named -.IR y.tab.c. -.TP -.B -t -The -.B -t -option changes the preprocessor directives generated by -.I yacc +.Pa y.tab.c . +.It Fl t +Change the preprocessor directives generated by +.Nm so that debugging statements will be incorporated in the compiled code. -.TP -.B -v -The -.B -v -option causes a human-readable description of the generated parser to +.It Fl v +Cause a human-readable description of the generated parser to be written to the file -.IR y.output. -.RE -.PP -If the environment variable TMPDIR is set, the string denoted by -TMPDIR will be used as the name of the directory where the temporary +.Pa y.output . +.El +.Pp +If the environment variable +.Ev TMPDIR +is set, the string denoted by +.Ev TMPDIR +will be used as the name of the directory where the temporary files are created. -.SH FILES -.IR y.code.c -.br -.IR y.tab.c -.br -.IR y.tab.h -.br -.IR y.output -.br -.IR /tmp/yacc.aXXXXXX -.br -.IR /tmp/yacc.tXXXXXX -.br -.IR /tmp/yacc.uXXXXXX -.SH DIAGNOSTICS +.Sh FILES +.Bl -tag -width /tmp/yacc.aXXXXXX -compact +.It Pa y.code.c +.It Pa y.tab.c +.It Pa y.tab.h +.It Pa y.output +.It Pa /tmp/yacc.aXXXXXX +.It Pa /tmp/yacc.tXXXXXX +.It Pa /tmp/yacc.uXXXXXX +.El +.Sh DIAGNOSTICS If there are rules that are never reduced, the number of such rules is reported on standard error. If there are any LALR(1) conflicts, the number of conflicts is reported |