1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-10-19 02:29:40 +00:00

Add a genclass.1 manpage.

This commit is contained in:
Wolfram Schneider 1997-09-15 19:18:59 +00:00
parent 7874d7a3bb
commit 753da33042
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=29478
2 changed files with 65 additions and 1 deletions

View File

@ -0,0 +1,63 @@
.\" $Id$
.TH GENCLASS 1 "\*(Dt" "GNU Tools" "GNU Tools"
.SH NAME
genclass \- generate c++ classes from prototypes
.SH SYNOPSIS
.B genclass -list [proto ...]
.br
.B genclass -catalog [proto ...]
.br
.B genclass type1 {ref|val} proto [out_prefix]
.br
.B genclass -2 type1 {ref|val} type2 {ref, val} proto [out_prefix]
.br
.B genclass [-usage] [-version]
.SH DESCRIPTION
Specific classes may be generated via the
.B genclass
shell script
program. This program has arguments specifying the kinds of base
types(s) to be used. Specifying base types requires two arguments. The
first is the name of the base type, which may be any named type, like
`int' or `String'. Only named types are supported; things like `int*'
are not accepted. However, pointers like this may be used by supplying
the appropriate typedefs (e.g., editing the resulting files to include
`typedef int* intp;'). The type name must be followed by one of the
words `val' or `ref', to indicate whether the base elements should be
passed to functions by-value or by-reference.
.PP
You can specify basic container classes using `genclass base
[val,ref] proto', where `proto' is the name of the class being
generated. Container classes like dictionaries and maps that require
two types may be specified via `genclass -2 keytype [val, ref],
basetype [val, ref] proto', where the key type is specified first and
the contents type second. The resulting classnames and filenames are
generated by prepending the specified type names to the prototype names,
and separating the filename parts with dots. For example, `genclass
int val List' generates class `intList' residing in files `int.List.h'
and `int.List.cc'. `genclass -2 String ref int val VHMap' generates
(the awkward, but unavoidable) class name `StringintVHMap'. Of course,
programmers may use `typedef' or simple editing to create more
appropriate names. The existence of dot seperators in file names
allows the use of GNU make to help automate configuration and
recompilation. An example Makefile exploiting such capabilities may be
found in the `libg++/proto-kit' directory.
.PP
The
.B genclass
utility operates via simple text substitution using
`sed'. All occurrences of the pseudo-types `<T>' and `<C>' (if there
are two types) are replaced with the indicated type, and occurrences of
`<T&>' and `<C&>' are replaced by just the types, if `val' is
specified, or types followed by "&" if `ref' is specified.
.SH FILES
/usr/share/libg++/ standard g++ prototype directory
.SH ENVIRONMENT
PROTODIR standard g++ prototype directory if defined
.SH "SEE ALSO"
.BR g++(1)
.br
The GNU C++ library Texinfo documentation, file:/usr/share/info/libg++
.SH AUTHORS
Doug Lea (dl@rocky.oswego.edu), Wendell C. Baker.
This Manpage based on the GNU C++ library Texinfo documentation.

View File

@ -1,8 +1,9 @@
#
# $Id$
# $Id: Makefile,v 1.4 1997/02/22 15:45:31 peter Exp $
#
GPPDIR= ${.CURDIR}/../../../contrib/libg++
MAN1= genclass.1
.PATH: ${GPPDIR}/libg++/src ${GPPDIR}/libg++/genclass