From bcf6a6c00727c500f8b1d80decf99478bf019565 Mon Sep 17 00:00:00 2001 From: uwe Date: Tue, 18 Jan 2011 23:36:06 +0000 Subject: [PATCH] Bring over improvements from FreeBSD. List all of the assignment operators explicitly, for those who have been traumatized by perl. Add C++ operators (from Christoph Mallon ) Markup improvements to make PostScript output pretty. Bring back FILES section now that /usr/share/misc/operator is resurrected. --- share/man/man7/operator.7 | 89 ++++++++++++++++++++++++++++++--------- share/misc/operator | 36 ++++++++-------- 2 files changed, 87 insertions(+), 38 deletions(-) diff --git a/share/man/man7/operator.7 b/share/man/man7/operator.7 index e544755886b3..fae4e7d08dbe 100644 --- a/share/man/man7/operator.7 +++ b/share/man/man7/operator.7 @@ -1,4 +1,4 @@ -.\" $NetBSD: operator.7,v 1.10 2011/01/17 11:19:07 jruoho Exp $ +.\" $NetBSD: operator.7,v 1.11 2011/01/18 23:36:07 uwe Exp $ .\" .\" Copyright (c) 1989, 1990, 1993 .\" The Regents of the University of California. All rights reserved. @@ -29,31 +29,78 @@ .\" .\" @(#)operator.7 8.1 (Berkeley) 6/9/93 .\" -.Dd January 17, 2011 +.Dd January 18, 2011 .Dt OPERATOR 7 .Os .Sh NAME .Nm operator -.Nd C operator precedence and associativity +.Nd C and C++ operator precedence and associativity .Sh DESCRIPTION -.Bl -column \ -"! ~ ++ -- - (type) * \*[Am] sizeof" "Associativity" -offset indent -.It Sy Operator Associativity -.It \&() [] -\*[Gt] . left to right -.It "! ~ ++ -- - (type) * \*[Am] sizeof" right to left -.It \&* / % left to right -.It \&+ - left to right -.It \&\*[Lt]\*[Lt] \*[Gt]\*[Gt] left to right -.It \&\*[Lt] \*[Le] \*[Gt] \*[Ge] left to right -.It \&== != left to right -.It \&\*[Am] left to right -.It \&^ left to right -.It \&| left to right -.It \&\*[Am]\*[Am] left to right -.It \&|| left to right -.It \&?: right to left -.It \&= += -= etc. right to left -.It \&, left to right +.Bl -column -offset indent \ + ".Li \&! ~ ++ \-\- \- (type) * \*[Am] sizeof new delete" \ + ".Sy Associativity" +.\" +.It Sy Operator \ + Ta Sy Associativity +.\" +.\" XXX: For some reason if anything but tab follows the last dot +.\" XXX: the space before it is lost and we get ->. in the output. +.\" XXX: My troff fu is weak, just work around with explicit \. +.It Li \&() [] \-\*[Gt]\ \. \ + Ta left to right +.\" +.It Li \&! ~ ++ \-\- \- (type) * \*[Am] sizeof new delete \ + Ta right to left +.\" +.It Li \&\-\*[Gt]* .* \ + Ta left to right +.\" +.It Li \&* / % \ + Ta left to right +.\" +.It Li \&+ \- \ + Ta left to right +.\" +.It Li \&\*[Lt]\*[Lt] \*[Gt]\*[Gt] \ + Ta left to right +.\" +.It Li \&\*[Lt] \*[Lt]= \*[Gt] \*[Gt]= \ + Ta left to right +.\" +.It Li \&== != \ + Ta left to right +.\" +.It Li \&\*[Am] \ + Ta left to right +.\" +.It Li \&^ \ + Ta left to right +.\" +.It Li \&| \ + Ta left to right +.\" +.It Li \&\*[Am]\*[Am] \ + Ta left to right +.\" +.It Li \&|| \ + Ta left to right +.\" +.It Li \&?: \ + Ta right to left +.\" +.It Li \&= += \-= *= /= %= \*[Lt]\*[Lt]= \*[Gt]\*[Gt]= \*[Am]= ^= |= throw \ + Ta right to left +.\" +.It Li \&?: No (C++, third operand)\ + Ta right to left +.\" +.It Li \&, \ + Ta left to right +.\" +.El +.Sh FILES +.Bl -tag -width ".Pa /usr/share/misc/operator" -compact +.It Pa /usr/share/misc/operator .El .Sh SEE ALSO .Xr iso646 3 diff --git a/share/misc/operator b/share/misc/operator index 003c436d055f..1eac77624055 100644 --- a/share/misc/operator +++ b/share/misc/operator @@ -1,17 +1,19 @@ -Operator Associativity ------------------------------------------------ -() [] -> . left to right -! ~ ++ -- - (type) * & sizeof right to left -* / % left to right -+ - left to right -<< >> left to right -< <= > >= left to right -== != left to right -& left to right -^ left to right -| left to right -&& left to right -|| left to right -?: right to left -= += -= etc. right to left -, left to right +Operator Associativity +------------------------------------------------------------- +() [] -> . left to right +! ~ ++ -- - (type) * & sizeof new delete right to left +->* .* left to right +* / % left to right ++ - left to right +<< >> left to right +< <= > >= left to right +== != left to right +& left to right +^ left to right +| left to right +&& left to right +|| left to right +?: right to left += += -= *= /= %= <<= >>= &= ^= |= throw right to left +?: (C++, third operand) right to left +, left to right