diff options
author | Kristaps Dzonsons <kristaps@bsd.lv> | 2011-07-21 10:24:35 +0000 |
---|---|---|
committer | Kristaps Dzonsons <kristaps@bsd.lv> | 2011-07-21 10:24:35 +0000 |
commit | 49de222b7899f01575a6ac00a26bc345864dc826 (patch) | |
tree | e8b6249505f745bf14ced273989037807624f076 /eqn.7 | |
parent | f1454c7cbdfb3ec91f3bcce1e004d4c81d3b08cf (diff) | |
download | mandoc-49de222b7899f01575a6ac00a26bc345864dc826.tar.gz |
Finish the eqn syntactic parser. This correctly parses terms and does
the proper `define' dance, which amounts to pure word-replace (you can,
say, define `foo' as `define' then define `define' as something else).
eqn.c is now ready for some semantic parsing of `box' and `eqn'
productions as defined by the grammar.
Diffstat (limited to 'eqn.7')
-rw-r--r-- | eqn.7 | 71 |
1 files changed, 56 insertions, 15 deletions
@@ -71,8 +71,8 @@ text : TEXT .Pp Data in TEXT form is a non-empty sequence of non-space characters or a non-empty quoted string. -White-space (and enclosing literal quote pairs) is thrown away and -productions may not be broken by newlines. +Unless within a quoted string, white-space (and enclosing literal quote +pairs) is thrown away. .Pp The following control statements are available: .Bl -tag -width Ds @@ -80,11 +80,20 @@ The following control statements are available: Replace all occurances of a key with a value. Its syntax is as follows: .Pp -.D1 define Ar key val +.D1 define Ar key cvalc +.Pp +The first character of the value string, +.Ar c , +is used as the delimiter for the value +.Ar val . +This allows for arbitrary enclosure of terms (not just quotes), such as +.Pp +.D1 define Ar foo 'bar baz' +.D1 define Ar foo cbar bazc .Pp It is an error to have an empty .Ar key or -.Ar value . +.Ar val . Note that a quoted .Ar key causes errors in some @@ -93,6 +102,14 @@ implementations and should not be considered portable. Definitions may refer to other definitions; these are evaluated recursively when text replacement occurs and not when the definition is created. +.Pp +Definitions can create arbitrary strings, for example, the following is +a legal construction. +.Bd -literal -offset indent +define foo 'define' +foo bar 'baz' +.Ed +.Pp Self-referencing definitions will raise an error. .It Cm set Set an equation mode. @@ -107,6 +124,20 @@ Once invoked, the definition for .Ar key is discarded. .El +.Sh COMPATIBILITY +This section documents the compatibility of mandoc +.Nm +and the troff +.Nm +implementation (including GNU troff). +.Pp +.Bl -dash -compact +.It +The text string +.Sq \e\*q +is interpreted as a literal quote in troff. +In mandoc, this is interpreted as a comment. +.El .Sh SEE ALSO .Xr mandoc 1 , .Xr man 7 , @@ -122,18 +153,28 @@ is discarded. .%P 151\(en157 .%D March, 1975 .Re -.\" .Sh HISTORY -.\" The tbl utility, a preprocessor for troff, was originally written by M. -.\" E. Lesk at Bell Labs in 1975. -.\" The GNU reimplementation of tbl, part of the groff package, was released -.\" in 1990 by James Clark. -.\" A standalone tbl implementation was written by Kristaps Dzonsons in -.\" 2010. -.\" This formed the basis of the implementation that is part of the -.\" .Xr mandoc 1 -.\" utility. +.Rs +.%A Brian W. Kernighan +.%A Lorinda L. Cherry +.%T Typesetting Mathematics, User's Guide +.%D 1976 +.Re +.Rs +.%A Brian W. Kernighan +.%A Lorinda L. Cherry +.%T Typesetting Mathematics, User's Guide (Second Edition) +.%D 1978 +.Re +.Sh HISTORY +The eqn utility, a preprocessor for troff, was originally written by +Brian W. Kernighan and Lorinda L. Cherry in 1975. +The GNU reimplementation of eqn, part of the GNU troff package, was +released in 1989 by James Clark. +The eqn component of +.Xr mandoc 1 +was added in 2011. .Sh AUTHORS -This partial +This .Nm reference was written by .An Kristaps Dzonsons Aq kristaps@bsd.lv . |