Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/external/bsd/byacc/bin Improve PostScript output.



details:   https://anonhg.NetBSD.org/src/rev/286bed6b7c6c
branches:  trunk
changeset: 936445:286bed6b7c6c
user:      uwe <uwe%NetBSD.org@localhost>
date:      Mon Jul 27 00:34:56 2020 +0000

description:
Improve PostScript output.

Some highlights in no particular order:

%destructor was somehow lost from the list that follows, it should be
part of it.

Use .Ic for yacc directives when they are defined, .Ql otherwise.

Use explicit .Sq Li (instead of .Ql) in description of %destructor to
make sure the result is consistently quoted.  It more readable that
way.

Use .Va and .Vt where appropriate.

C preprocessor directives are marked up with .No (a nop), so that it's
easy to switch them to something else if need be.  For now just use
them as plain words.

diffstat:

 external/bsd/byacc/bin/yacc.1 |  239 +++++++++++++++++++++++------------------
 1 files changed, 131 insertions(+), 108 deletions(-)

diffs (truncated from 570 to 300 lines):

diff -r 8647b7228458 -r 286bed6b7c6c external/bsd/byacc/bin/yacc.1
--- a/external/bsd/byacc/bin/yacc.1     Sun Jul 26 23:18:06 2020 +0000
+++ b/external/bsd/byacc/bin/yacc.1     Mon Jul 27 00:34:56 2020 +0000
@@ -1,4 +1,4 @@
-.\"    $NetBSD: yacc.1,v 1.8 2020/07/26 23:18:06 uwe Exp $
+.\"    $NetBSD: yacc.1,v 1.9 2020/07/27 00:34:56 uwe Exp $
 .\"
 .\" Copyright (c) 1989, 1990 The Regents of the University of California.
 .\" All rights reserved.
@@ -32,7 +32,7 @@
 .\"
 .\"    from: @(#)yacc.1        5.7 (Berkeley) 7/30/91
 .\"    from: Id: yacc.1,v 1.24 2014/10/06 00:03:48 tom Exp
-.\"    $NetBSD: yacc.1,v 1.8 2020/07/26 23:18:06 uwe Exp $
+.\"    $NetBSD: yacc.1,v 1.9 2020/07/27 00:34:56 uwe Exp $
 .\"
 .Dd October 5, 2014
 .Dt YACC 1
@@ -40,7 +40,7 @@
 .Sh NAME
 .Nm yacc
 .Nd an
-.Tn LALR(1)
+.Tn LALR Ns (1)
 parser generator
 .Sh SYNOPSIS
 .Nm
@@ -54,10 +54,10 @@
 reads the grammar specification in the file
 .Ar filename
 and generates an
-.Tn LALR(1)
+.Tn LALR Ns (1)
 parser for it.
 The parsers consist of a set of
-.Tn LALR(1)
+.Tn LALR Ns (1)
 parsing tables and a driver routine
 written in the C programming language.
 .Nm
@@ -65,7 +65,7 @@
 .Pa y.tab.c .
 .Pp
 The following options are available:
-.Bl -tag -width symbol_prefixXXX
+.Bl -tag -width Fl
 .It Fl b Ar file_prefix
 The
 .Fl b
@@ -73,7 +73,7 @@
 the string denoted by
 .Ar file_prefix .
 The default prefix is the character
-.Ar y .
+.Ql y .
 .It Fl B
 Create a backtracking parser (compile-type configuration for
 .Nm ) .
@@ -83,12 +83,14 @@
 option causes the header file
 .Pa y.tab.h
 to be written.
-It contains #define's for the token identifiers.
+It contains
+.No #define Ns 's
+for the token identifiers.
 .It Fl g
 The
 .Fl g
 option causes a graphical description of the generated
-.Tn LALR(1)
+.Tn LALR Ns (1)
 parser to be written to the file
 .Pa y.dot
 in graphviz format, ready to be processed by
@@ -100,15 +102,19 @@
 .Pa y.tab.i
 to be written.
 It contains extern declarations
-and supplementary #define's as needed to map the conventional
+and supplementary
+.No #define Ns 's
+as needed to map the conventional
 .Nm
-yy-prefixed names to whatever the
+.Va yy Ns \&-prefixed
+names to whatever the
 .Fl p
 option may specify.
 The code file, e.g.,
 .Pa y.tab.c
-is modified to #include this file
-as well as the
+is modified to
+.No #include
+this file as well as the
 .Pa y.tab.h
 file, enforcing consistent usage of the symbols defined in those files.
 The supplementary header file makes it simpler to separate compilation
@@ -118,18 +124,25 @@
 .Fl l
 option is not specified,
 .Nm
-will insert #line directives in the generated code.
-The #line directives let the C compiler relate errors in the
+will insert
+.No #line
+directives in the generated code.
+The
+.No #line
+directives let the C compiler relate errors in the
 generated code to the user's original code.
 If the
 .Fl l
 option is specified,
 .Nm
-will not insert the #line directives.
-#line directives specified by the user will be retained.
+will not insert the
+.No #line
+directives.
+.No #line
+directives specified by the user will be retained.
 .It Fl L
 Enable position processing, e.g.,
-.Dq %locations
+.Ql %locations
 (compile-type configuration for
 .Nm ) .
 .It Fl o Ar output_file
@@ -146,7 +159,7 @@
 options instructs
 .Nm
 to create a reentrant parser, like
-.Dq %pure-parser
+.Ql %pure-parser
 does.
 .It Fl p Ar symbol_prefix
 The
@@ -155,7 +168,7 @@
 the string denoted by
 .Ar symbol_prefix .
 The default prefix is the string
-.Ar yy .
+.Ql yy .
 .It Fl r
 The
 .Fl r
@@ -167,15 +180,15 @@
 and the tables file is named
 .Pa y.tab.c .
 The prefix
-.Dq y .
+.Ql y
 can be overridden using the
 .Fl b
 option.
 .It Fl s
 Suppress
-.Dq #define
+.No #define
 statements generated for string literals in a
-.Dq %token
+.Ql %token
 statement, to more closely match original
 .Nm
 behavior.
@@ -183,10 +196,14 @@
 Normally when
 .Nm
 sees a line such as
-.Dq %token OP_ADD "ADD"
+.Pp
+.Dl %token OP_ADD \*qADD\*q
+.Pp
 it notices that the quoted
 .Dq ADD
-is a valid C identifier, and generates a #define not only for
+is a valid C identifier, and generates a
+.No #define
+not only for
 .Dv OP_ADD ,
 but for
 .Dv ADD
@@ -196,18 +213,19 @@
 #define OP_ADD 257
 #define ADD 258
 .Ed
+.Pp
 The original
 .Nm
 does not generate the second
-.Dq #define .
+.No #define .
 The
 .Fl s
 option suppresses this
-.Dq #define .
+.No #define .
 .Pp
 .St -p1003.1
 documents only names and numbers for
-.Dq %token ,
+.Ql %token ,
 though the original
 .Nm
 and
@@ -243,18 +261,15 @@
 .Xr bison 1
 and other implementations of yacc.
 The
-.Dq %destructor
+.Ql %destructor
 and
-.Dq %locations
+.Ql %locations
 features are available only if
 .Nm yacc
 has been configured and compiled to support the back-tracking functionality.
 The remaining features are always available:
-.Pp
-.Dv %destructor {
-.Dv code }
-.Dv symbol+
-.Pp
+.Bl -tag -width Ic
+.It Ic %destructor { Ar code Ic } Ar symbol Ns +
 Defines code that is invoked when a symbol is automatically
 discarded during error recovery.
 This code can be used to
@@ -267,32 +282,31 @@
 that will allow parsing to continue.
 This error recovery approach results in a memory leak
 if the
-.Dq YYSTYPE
+.Vt YYSTYPE
 value is, or contains, pointers to dynamically allocated memory.
 .Pp
 The bracketed
-.Dv code
+.Ar code
 is invoked whenever the parser discards one of the symbols.
-Within
-.Dv  code ,
-.Dq $$
+Within it
+.Sq Li $$
 or
-.Dq $\*[Lt]tag\*[Gt]$
+.Sq Li $\*[Lt] Ns Ar tag Ns Li \*[Gt]$
 designates the semantic value associated with the discarded symbol, and
-.Dq @$
+.Sq Li @$
 designates its location (see
-.Dq %locations
+.Ql %locations
 directive).
 .Pp
 A per-symbol destructor is defined by listing a grammar symbol
 in
-.Dv symbol+ .
+.Ar symbol Ns + .
 A per-type destructor is defined  by listing a semantic type tag (e.g.,
-.Dq \*[Lt]some_tag\*[Gt] )
+.Sq Li \*[Lt] Ns Ar some_tag Ns Li \*[Gt] )
 in
-.Dv symbol+ ;
+.Ar symbol Ns + ;
 in this case, the parser will invoke
-.Dv code
+.Ar code
 whenever it discards any grammar symbol that has that semantic type tag,
 unless that symbol has its own per-symbol destructor.
 .Pp
@@ -301,62 +315,60 @@
 per-type destructor:
 .Pp
 The code for
-.Dq \*[Lt]*\*[Gt]
+.Sq Li \*[Lt]*\*[Gt]
 is used
 for grammar symbols that have an explicitly declared semantic type tag
 (via
-.Dq %type ) ;
+.Ql %type ) ;
 .Pp
-the code for
-.Dq \*[Lt]\*[Gt]
+The code for
+.Sq Li \*[Lt]\*[Gt]
 is used for grammar symbols that have no declared semantic type tag.
-.Pp
-.Bl -tag -width "%expect-rr number" -compact
-.It Dv %expect Ar number
+.It Ic %expect Ar number
 Tell
 .Nm
 the expected number of shift/reduce conflicts.
 That makes it only report the number if it differs.
-.It Dv %expect-rr Ar number



Home | Main Index | Thread Index | Old Index