raterspec now writes to aux file
commit
385bdbcd4a
|
@ -20,6 +20,8 @@
|
|||
% base class, defaulting to 10pt
|
||||
\LoadClass[10pt]{scrreprt}
|
||||
|
||||
\RequirePackage{xparse}
|
||||
|
||||
\RequirePackage[top=4.5cm,bottom=5cm,width=\textwidth]{geometry}
|
||||
\RequirePackage{makeidx}
|
||||
\RequirePackage{minitoc}
|
||||
|
|
|
@ -69,19 +69,28 @@
|
|||
% The host environment is the same for all new systems
|
||||
%
|
||||
|
||||
\def\@raterspec@input@types{
|
||||
\PackageWarning{raterspec}{Missing program-specific input parameter types!
|
||||
\MessageBreak Define using \protect\inputtypes}
|
||||
\todo{No input parameter types have been defined.}
|
||||
\let\@@madespec0
|
||||
|
||||
\def\@raterspec@mkhook#1#2#3#4{
|
||||
\expandafter\gdef\csname @raterspec@#1\endcsname{
|
||||
\PackageWarning{raterspec}{Missing #2!
|
||||
\MessageBreak Define using \expandafter\protect\csname#1\endcsname}%
|
||||
\todo{No #2 have been defined.}%
|
||||
}%
|
||||
\expandafter\gdef\csname#1\endcsname##1{%
|
||||
\expandafter\gdef\csname @raterspec@#1\endcsname{%
|
||||
#3\input{##1}#4%
|
||||
}%
|
||||
}%
|
||||
}
|
||||
|
||||
\def\@raterspec@input@params{
|
||||
\PackageWarning{raterspec}{Missing input parameters!
|
||||
\MessageBreak Define using \protect\inputparams}
|
||||
\todo{No input parameters have been defined.}
|
||||
}
|
||||
\def\makespec{
|
||||
\ifx\@@madespec1%
|
||||
\PackageError{raterspec}{Duplicate call to \protect\makespec}
|
||||
\fi
|
||||
|
||||
\global\let\@@madespec1
|
||||
|
||||
\def\@lvspec@posttitle{
|
||||
\pnumoff\part{General System}\pnumon
|
||||
|
||||
\chapter{Host Environment}
|
||||
|
@ -95,36 +104,38 @@
|
|||
\section{Program-Specific Parameter Types}
|
||||
\sectiondept{it/uw}
|
||||
|
||||
\@raterspec@input@types
|
||||
\@raterspec@inputtypes
|
||||
\index{input data|)}
|
||||
|
||||
\chapter{Input Parameters}
|
||||
\index{input data!parameters|(}
|
||||
\index{parameter|(}
|
||||
\input{raterspec/sec/params}
|
||||
\@raterspec@input@params
|
||||
\@raterspec@inputparams
|
||||
|
||||
\index{input data!parameters|)}
|
||||
\index{parameter|)}
|
||||
}
|
||||
|
||||
|
||||
\def\inputtypes#1{
|
||||
\gdef\@raterspec@input@types{
|
||||
\@raterspec@mkhook{inputtypes}{input types}
|
||||
{%
|
||||
% can't really include a sigline here because approvial would be global
|
||||
\pnumoff
|
||||
Parameter types in this section are common to the \@title@short\ program.
|
||||
\pnumon
|
||||
\index{parameter type|(}
|
||||
\input{#1}
|
||||
\index{parameter type|)}
|
||||
}
|
||||
}
|
||||
{\index{parameter type|)}}
|
||||
|
||||
\def\inputparams#1{
|
||||
\gdef\@raterspec@input@params{
|
||||
\input{#1}
|
||||
}
|
||||
\@raterspec@mkhook{inputparams}{input parameters}
|
||||
{}
|
||||
{}
|
||||
|
||||
\AtEndDocument{
|
||||
\ifx\@@madespec0
|
||||
\PackageError{raterspec}{\protect\makespec\space was not called}
|
||||
\fi
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -24,6 +24,11 @@
|
|||
\edef\@root{\@ptype@root#1<||}%
|
||||
\edef\@type{\@ptype@type#1<#1>||}%
|
||||
\expandafter\gdef\csname ptype@#2\endcsname{#3}%
|
||||
% place definition into aux file; will be available next pass
|
||||
\protected@write\@auxout{}{%
|
||||
\string\expandafter\string\gdef
|
||||
\string\csname\space ptype@#2\string\endcsname{#3}%
|
||||
}%
|
||||
% typeset definition with link
|
||||
\item[%
|
||||
\hypertarget{@ptype:#2}{#2}%
|
||||
|
@ -35,7 +40,7 @@
|
|||
% ensure that the parent type actually exists
|
||||
\ifx\@root\@coreptype\else%
|
||||
\expandafter\ifx\csname ptype@\@type\endcsname\relax%
|
||||
\errmessage{unknown parent param type `\@type' for `#2'}
|
||||
\PackageWarning{raterspec}{unknown parent param type `\@type' for `#2'}
|
||||
\fi%
|
||||
\fi%
|
||||
% process any keywords
|
||||
|
@ -76,6 +81,13 @@
|
|||
% define constant
|
||||
\expandafter\gdef\csname const@#2\endcsname{#1}%
|
||||
\expandafter\gdef\csname const@value@#2\endcsname{#3}%
|
||||
% place definition into aux file; will be available next pass
|
||||
\protected@write\@auxout{}{%
|
||||
\string\expandafter\string\gdef
|
||||
\string\csname\space const@#2\string\endcsname{#1}%
|
||||
\string\expandafter\string\gdef
|
||||
\string\csname\space constvalue@#2\string\endcsname{#3}%
|
||||
}%
|
||||
% typeset
|
||||
\index{constant!{\tt#2}}%
|
||||
{\tt\hypertarget{@const:#2}{#2}} & $#3$ & #1 \\
|
||||
|
@ -99,7 +111,7 @@
|
|||
\def\unionv#1{%
|
||||
% does this type exist?
|
||||
\expandafter\ifx\csname ptype@#1\endcsname\relax%
|
||||
\errmessage{unknown param type `#1' for union}
|
||||
\PackageWarning{raterspec}{unknown param type `#1' for union}
|
||||
\fi%
|
||||
\item{\typeref{#1}}
|
||||
}
|
||||
|
@ -152,7 +164,7 @@
|
|||
\def\@type@exists@err#1{{%
|
||||
\expandafter\let\expandafter\@chk\csname ptype@#1\endcsname
|
||||
\ifx\@chk\relax
|
||||
\errmessage{parameter `#1' is undefined}%
|
||||
\PackageWarning{raterspec}{parameter `#1' is undefined}%
|
||||
\fi
|
||||
}}
|
||||
\def\@const@exists@err#1{{%
|
||||
|
@ -160,7 +172,7 @@
|
|||
\@ifnumeric{#1}\else
|
||||
\expandafter\let\expandafter\@chk\csname const@#1\endcsname
|
||||
\ifx\@chk\relax
|
||||
\errmessage{constant `#1' is undefined}%
|
||||
\PackageWarning{raterspec}{constant `#1' is undefined}%
|
||||
\fi
|
||||
\fi
|
||||
}}
|
||||
|
@ -197,10 +209,15 @@
|
|||
\edef\@root{\@ptype@root#1<||}%
|
||||
\edef\@type{\@ptype@type#1<#1>||}%
|
||||
\expandafter\gdef\csname param@#2\endcsname{#3}%
|
||||
% place definition into aux file; will be available next pass
|
||||
\protected@write\@auxout{}{%
|
||||
\string\expandafter\string\gdef
|
||||
\string\csname\space param@#2\string\endcsname{#3}%
|
||||
}%
|
||||
% does the given type exist (note that this check assumes that the typedef
|
||||
% appears before the param in the specs, as is currently the case)
|
||||
\expandafter\ifx\csname ptype@\@type\endcsname\relax%
|
||||
\errmessage{unknown param type: \@type}
|
||||
\PackageWarning{raterspec}{unknown param type: \@type}
|
||||
\fi%
|
||||
% typeset definition with link
|
||||
\item[%
|
||||
|
@ -240,7 +257,7 @@
|
|||
\endlinechar-1\relax
|
||||
\expandafter\let\expandafter\@@chk\csname param@#1\endcsname
|
||||
\ifx\@@chk\relax
|
||||
\PackageError{dwspec}{unknown param: #1}
|
||||
\PackageWarning{raterspec}{unknown param: #1}
|
||||
\fi
|
||||
\index{parameter!#1@\texttt{#1}}%
|
||||
\hyperlink{@param:#1}%
|
||||
|
@ -252,7 +269,7 @@
|
|||
\def\paramrefd#1{%
|
||||
\expandafter\let\expandafter\@@pchk\csname param@#1\endcsname
|
||||
\ifx\@@pchk\empty
|
||||
\PackageError{dwspec}{Unknown parameter: #1}%
|
||||
\PackageWarning{raterspec}{Unknown parameter: #1}%
|
||||
\else
|
||||
% output
|
||||
\@@pchk
|
||||
|
|
|
@ -76,6 +76,7 @@ parameter types}.
|
|||
|
||||
\typedef core int:
|
||||
Any signed 32-bit integer
|
||||
|
||||
\end{description}
|
||||
|
||||
\index{parameter type|)}
|
||||
|
|
Loading…
Reference in New Issue