From 539e01b5bc14b8fa5bc882f4f819e88d71f79de1 Mon Sep 17 00:00:00 2001
From: ceriel <none@none>
Date: Mon, 14 Mar 1988 16:37:00 +0000
Subject: [PATCH] Adapted for PAREN_OPEN and PAREN_CLOSE, and better adaption
 for type-setter

---
 doc/top/top.n | 23 +++++++++++++++--------
 1 file changed, 15 insertions(+), 8 deletions(-)

diff --git a/doc/top/top.n b/doc/top/top.n
index 7067bf828..61e38df44 100644
--- a/doc/top/top.n
+++ b/doc/top/top.n
@@ -1,6 +1,9 @@
 .ND
 .tr ~
+.ds <.
+.ds <,
 .ds >. .
+.ds >, ,
 .ds [. [
 .ds .] ]
 .TL
@@ -27,7 +30,6 @@ write such a table for a new machine.
 It also discusses the implementation of the
 Target Optimizer and its generator.
 .AE
-.bp
 .NH 1
 Introduction
 .PP
@@ -106,7 +108,6 @@ algorithm and to the definition of the table format.
 Chapters 3 and 4 discuss the implementation of the target optimizer
 and the target optimizer generator.
 Appendix A gives full information for writing a description table.
-.bp
 .NH 1
 Global structure of the target optimizer
 .PP
@@ -463,7 +464,6 @@ The keyword REST contains the mnemonic of the first instruction of
 the rest of the input.
 If this instruction uses the carry-bit (e.g. an adc, subc, bhis)
 the transformation is not allowed.
-.bp
 .NH 1
 Implementation of the target optimizer
 .PP
@@ -650,7 +650,6 @@ its current value (a string).
 The restrictions on variables and the constraints are stored
 in a switch-statement,
 indexed by variable number and entry number respectively.
-.bp
 .NH 1
 Implementation of the target optimizer generator
 .PP
@@ -696,6 +695,12 @@ Topgen maintains two symbol tables, one for variable names and one
 for tunable parameters.
 The symbol tables are organized as binary trees.
 .bp
+.NH 1
+References
+.[
+$LIST$
+.]
+.bp
 .SH
 Appendix A
 .PP
@@ -751,6 +756,8 @@ MAXOPLEN	25
 MAX_OPC_LEN	10
 MAXVARLEN	25
 MAXLINELEN	100
+PAREN_OPEN	not defined
+PAREN_CLOSE	not defined
 .TE
 .ce 1
 table 1: parameter names and defaults
@@ -774,6 +781,10 @@ As variables may be set by user routines (see "bitw" example for
 the Vax) the table-writer must have access to this length and
 must be able to change it.
 MAXLINELEN denotes the maximum length of a line of assembly code.
+PAREN_OPEN and PAREN_CLOSE must be used when the operand separator can also
+occur within operands, between parentheses of some kind. In this case,
+PAREN_OPEN must be set to a string containing the opening parentheses, and
+PAREN_CLOSE must be set to a string containing the closing parentheses.
 .PP
 If a line of assembly code violates any of the assumptions or
 exceeds some limit,
@@ -856,7 +867,3 @@ user_routines -> anything .
 .ft R
 .DE
 The remainder of the table consists of user-defined subroutines.
-.bp
-.[
-$LIST$
-.]