%%
%% This is file `apmptempl.tex',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% stepe.dtx  (with options: `apmptempl')
%% 
%%     This work has been partially funded by the US government
%%  and is not subject to copyright.
%% 
%%     This program is provided under the terms of the
%%  LaTeX Project Public License distributed from CTAN
%%  archives in directory macros/latex/base/lppl.txt.
%% 
%%  Author: Peter Wilson (CUA and NIST)
%%          now at: peter.r.wilson@boeing.com
%% 
\ProvidesFile{apmptempl.tex}[2001/07/16 AP mapping template boilerplate]
\typeout{apmptempl.tex [2001/07/16 STEP AP mapping template boilerplate]}

  This mapping specification includes mapping templates.
A mapping template is a reusable portion of a reference path that defines
a commonly used part of the structure of the application interpreted model.
A mapping template is similar to a programming language macro.
The mapping templates used in this part of ISO~10303 are defined in this
subclause. Each mapping template definition has three components as follows:
\begin{itemize}
\item the template signature that specifies the name of the template
      and may also specify the names and the order of the formal parameters
      of the template;

\item descriptions of the formal parameters of the template, if any;

\item the template body that defines the reusable portion of a reference
      path and may indicate, through the use of the formal parameter
      names included in the template signature, the points at which
      the value parameters are supplied in each template application.
\end{itemize}

    Each mapping template is used at least once in the reference paths
specified in~\ref{;uof1} to~\ref{;uoflast}.
Each such template application is a reference to the template definition,
based on the pattern established by the template signature, and supplies
the value parameters that are to be substitued for the formal parameters
specified in the template definition. The full reference path can be derived
by replacing any formal parameters in the template body by the value
parameters specified in the template application and then substituting
the completed template body for the template application.

%%\begin{anexample}
%%The following is an example of a template application that invokes and
%%supplies parameters for the GROUPS mapping template.
%%
%%/GROUPS(shape\_aspect, 'boundary index 1')/
%%
%%\end{anexample}

    The non-blank characters following the first `/' define the name of
the mapping template. The name of the mapping template is given in
upper case. The name of the template is followed by a list of parameter
values, seperated by commas, enclosed in parentheses. Parameter values
are given in lower case except in the case that the value parameter
is a string literal that includes upper case characters.

    The following notational conventions apply to the definitions and
applications of templates:

\begin{itemize}

\item[\texttt{/}] marks the beginning and end of a template signature or a
         template application;
\item[\texttt{\&}] prefixes the name of a formal parameter within the definition
          of a template body;
\item[\texttt{()}] enclose the formal parameters in a template signature or the
          value parameters in a template application;
\item[\texttt{,}] separates formal parameters in a template signature or
          value parameters in a template application;
\item[\texttt{' '}] denotes a string literal that is used as a value parameter
          in a template application.

\end{itemize}

    Value parameters that are not enclosed by quotes are \Express{} data type
identifiers.

    This part of ISO~10303 uses the templates that are specified in the
following subclauses.

\endinput
%%
%% End of file `apmptempl.tex'.
