% LAST EDIT: Tue Sep  3 15:42:16 1996 by Peter Pepper (basti!pepper) 


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Tables
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


\clearpage

\section*{Appendix: Tables of Commands}

\begin{table}[htbp]
\begin{center}
\leavevmode
\begin{tabular}[h]{|l|l|}
\hline
Command & effect\\
\hline
\hline
\|KeyWord|\{\ldots\}  & keyword  (default: \|textsc|)\\
\|\char"60...\char"27|& keyword  (default: \|textsc|) \\
\|Identifier|\{\ldots\}   & identifier (default: \|mathtt|)\\
\|Grapheme|\{\ldots\}     & grapheme (default: \|texttt|)\\
\|Digit|\{\ldots\}        & digit (default: taken as is)\\
\|Comment| \{\ldots\}     & comment (default: \|textit|)\\
\hline
\|IdentifierFont|\{\ldots\} & sets the font for identifiers (default \|tt|)\\
\|DigitFont|\{\ldots\}      & sets the font for digits (default \|tt|)\\
\hline
\|Language|\{\ldots\}  & language name (e.g.~\|Language|\{\texttt{Haskell}\})\\
\|DefLanguage|\{\ldots\}  & define command for a language name\\
\|Opal|                   & the language name \Opal \\
\hline
\|EnableLisp|   & allow Lisp-like identifiers (e.g.~\texttt{query-replace})\\
\|DisableLisp|  & disallow Lisp-like identifiers (default) \\
\hline
\|ActivateMathScan|  & make the special symbols available for math mode \\
\|EnableMathScan|    & use the special symbols in \$\ldots\$  \\
\|DisableMathScan|   & don't use the special symbols in \$\ldots\$  \\
\hline
\|SetCommand|    & define ``fancy'' command \\
\|SetSymbol|     & define ``fancy'' command (for math symbols) \\
\|SetAmsSymbol|  & define ``fancy'' command (for ams symbols) \\
\|UnSetSymbol|   & undefine ``fancy'' command \\
\|SetMacro|    & define ``fancy'' command for use in \|program| environment \\
\hline
\end{tabular}
\caption{Miscellaneous commands (mostly \texttt{scanner.sty})}
\label{tab:Miscellaneous}
\end{center}
\end{table}




\begin{table}[htbp]
\begin{center}
\leavevmode
\begin{tabular}[h]{|l|l|}
\hline
Command & effect\\
\hline
\hline
\|begin|\{program\}[pcnf]   & beginning of \texttt{program} environment \\
\|end|\{program\}     & end of \texttt{program} environment \\
\|begin|\{opal\}[pcnf]& beginning of \texttt{opal} environment \\
\|end|\{opal\}        & end of \texttt{opal} environment \\
\|ProgramPrelude|     & executed at beginning of \texttt{program} environment\\
\|OpalPrelude|        & executed at beginning of \texttt{opal} environment\\
\hline
\|ProgramSkip|\{\ldots\} & set vertical distance from surrounding paragraphs\\
\|ProgramWidth|\{\ldots\}       & set width of programs \\
\|ProgramLeftIndent|\{\ldots\}  & set left indentation of programs\\
\|ProgramRightIndent|\{\ldots\} & set right indentation of programs\\
\|ProgramInnerIndent|\{\ldots\} & set indentation for main keywords\\
\|EmptyLineSkip|\{\ldots\}      & set vertical space for empty lines\\
\hline
\|begin|\{embeddedProgram\} & begin \texttt{embeddedProgram} environment\\
\|end|\{embeddedProgram\}& end of \texttt{embeddedProgram} environment \\
\|(|\ldots\|)|           & \texttt{embedded program} environment\\
\|EmbeddedProgramPrelude|&executed at beginning of \texttt{embedded programs}\\
\hline
\|[|                  & open tabular environment\\
\|\char"26|           & separation of columns\\
\|]|                  & close tabular environment\\
\|Break|              & enable page break here\\
\|Rule|               & horizontal rule\\
\texttt{-----}        & horizontal rule\\
\|0|\|[|\ldots\|]|    & set width of following tabular environment to zero\\
\|Shrink|\{\ldots\}   & set width of following fragment to zero\\
\hline
\|-|                  & aligned program comment (till end of line)\\
\texttt{--}           & unaligned program comment (till end of line)\\
\|UaCmnt|             & unaligned program comment (till end of line)\\
\|\char"25|           & \TeX~comment (including end of line)\\
\|Comment|            & layout of comments\\
\hline
\|lnr|                & number this line\\
\|Number|             & layout of line numbers\\
\|NumberWidth|\{\ldots\} & width for line numbers\\
\hline
\end{tabular}
\caption{Layout commands (\texttt{basicprog.sty})}
\label{tab:Layout}
\end{center}
\end{table}


\clearpage


\begin{table}[htbp]
\begin{center}
\leavevmode
\begin{tabular}[h]{|ll|l|}
\hline
Layout command & just the keyword & defined by \ldots\\
\hline
\hline
\A{EXTERNAL}{Top}{}\\
\A{IMPLEMENTATION}{Top}{}\\
\A{INTERFACE}{Top}{}\\
\A{INTERNAL}{Top}{}\\
\A{MODULE}{Top}{}\\
\A{SIGNATURE}{Top}{}\\
\A{SPECIFICATION}{Top}{}\\
\A{STRUCTURE}{Top}{}\\
\A{THEORY}{Top}{}\\
\hline
\A{ASSERT}{Main}{}\\
\A{AXM}{Main}{}\\
\A{DATA}{Main}{}\\
\A{DEF}{Main}{}\\
\A{FUN}{Main}{}\\
\A{IMPORT}{Main}{}\\
\A{INHERIT}{Main}{}\\
\A{LAW}{Main}{}\\
\A{PRED}{Main}{}\\
\A{REALIZES}{Main}{}\\
\A{REQUIRE}{Main}{}\\
\A{SORT}{Main}{}\\
\A{SPC}{Main}{}\\
\A{SPEC}{Main}{}\\
\A{THM}{Main}{}\\
\A{TYPE}{Main}{}\\
\hline
\A{COMPLETELY}{Follow}{[1em]}\\
\A{ONLY}{Follow}{}\\
\hline
\A{LET}{Begin}{}\\
\hline
\A{IF}{IfLike}{}\\
\A{OTHERWISE}{IfLike}{[1em]}\\
\hline
\A{THEN}{ThenLike}{}\\
\A{PRE}{ThenLike}{}\\
\A{POST}{ThenLike}{}\\
\hline
\end{tabular}
\caption{Predefined keywords in \texttt{opal2x.sty} [part 1]}
\label{tab:KeyWords}
\end{center}
\end{table}

\begin{table}[htbp]
\begin{center}
\leavevmode
\begin{tabular}[h]{|ll|l|}
\hline
\A{ELSE}{ElseLike}{}\\
\A{IN}{ElseLike}{}\\
\hline
\A{FI}{End}{}\\
\hline
\A{ALL}{Plain}{}\\
\A{AND}{Plain}{}\\
\A{ANDIF}{Plain}{}\\
\A{ANY}{Plain}{}\\
\A{AS}{Plain}{}\\
\A{DERIVE}{Plain}{}\\
\A{DFD}{Plain}{}\\
\A{DISCRIMINATORS}{Plain}{}\\
\A{EX}{Plain}{}\\
\A{FIX}{Plain}{}\\
\A{IMPLIES}{Plain}{}\\
\A{INJECTIONS}{Plain}{}\\
\A{LEFTASSOC}{PLain}{}\\
\A{NOT}{Plain}{}\\
\A{OR}{Plain}{}\\
\A{ORIF}{Plain}{}\\
\A{PRIORITY}{Plain}{}\\
\A{PROPERTIES}{Plain}{}\\
\A{RIGHTASSOC}{PLain}{}\\
\A{SELECTORS}{Plain}{}\\
\A{THE}{Plain}{}\\
\A{UNIQ}{Plain}{}\\
\A{WHERE}{Plain}{}\\
\hline
\end{tabular}
\caption{Predefined keywords in \texttt{opal2x.sty} [part 2]}
\label{tab:KeyWords2}
\end{center}
\end{table}


\begin{table}[htbp]
\begin{center}
\leavevmode
\begin{tabular}[h]{|l|l|}
\hline
Command & effect\\
\hline
\hline
\|TopKeyWord|[\ldots]\{\ldots\} 
             & define topmost keyword (e.g.~\texttt{STRUCTURE})\\
\|MainKeyWord|[\ldots]\{\ldots\}    
             & define main keyword (e.g.~\texttt{FUN})\\
\|FollowKeyWord|[\ldots]\{\ldots\}  
             & define follow-up keyword (e.g.~\texttt{ONLY})\\
\|BeginKeyWord|[\ldots]\{\ldots\}   
             & define begin keyword (e.g.~\texttt{LET})\\
\|IfLikeKeyWord|[\ldots]\{\ldots\}
             & define if-like keyword (e.g.~\texttt{IF})\\
\|ThenLikeKeyWord|[\ldots]\{\ldots\}
             & define then-like keyword (e.g.~\texttt{THEN})\\
\|ElseLikeKeyWord|[\ldots]\{\ldots\}
             & define else-like keyword (e.g.~\texttt{ELSE})\\
\|EndKeyWord|\{\ldots\}     
             & define end keyword (e.g.~\texttt{FI})\\
\|PlainKeyWord|[\ldots]\{\ldots\}   
             & define plain keyword (e.g.~\texttt{AS})\\
\hline
\|KeyWord|\{\ldots\}  & keyword\\
\|\char"60...\char"27|& keyword\\
\hline
\end{tabular}
\caption{Commands for defining new keywords (\texttt{basicprog.sty})}
\label{tab:NewKeywords}
\end{center}
\end{table}





\clearpage




\begin{table}[ht]
  \begin{center}
  \begin{tabular}{|cc|cc|}
    \hline
    \emph{look} & \emph{type} & 
    \emph{look} & \emph{type} \\
    \hline
    \(a^{n}\) & \verb=a^{n}= & \(a_{n}\) & \verb=a_{n}=  \\
    \(a^3\)    & \verb=a^3=   & \(a_1\)    & \verb=a_1=    \\
    \catcode`\_=12\catcode`\^=12
    \(nat^Nat\)   & \verb=nat^Nat= &    
    \makeatletter$(\@UScore+\@UScore)$\makeatother  & \verb=(_+_)= 
    \\
    \hline
  \end{tabular}
  \end{center}
    \caption{Examples for super- and subsetting (\texttt{scanner.sty})}
    \label{tab:subsup}
\end{table}



\begin{table}[ht]
    \begin{center}
        \leavevmode
  \begin{tabular}{| c | c | c | c | c | c |}
  \hline
  \texttt{\char`\#}  & \texttt{\char`\^} & \texttt{\char`\_} &
  \texttt{\char`\&} & \texttt{\char`\@}  & \texttt{\char`\%}\\
  \hline
  \end{tabular}
    \end{center}
    \caption{Normalized symbols (\texttt{opal2x.sty})}
    \label{tab:Normalized symbols}
\end{table}




\def\ColA{
  \begin{tabular}[h]{ll}
\|Ampersand|\quad & \Ampersand \\
\|At|             & \At \\
\|Backslash| &  \Backslash\\
\|Dollar| &  \Dollar\\
\|DoubleQuote| &  \DoubleQuote\\
\|Hashmark| &  \Hashmark\\
\|Percent| &  \Percent\\
  \end{tabular}
}

\def\ColB{
  \begin{tabular}[h]{ll}
\|Compose| & $\Compose$ \\
\|Concat| & \Concat \\
\|Disjoint| & $\Disjoint$ \\
\|SymDiff| & \SymDiff \\
\|SemOpen| & \SemOpen \\
\|SemClose| & \SemClose \\
& \\
  \end{tabular}
}

\def\ColC{
  \begin{tabular}[h]{ll}
\|Box| & \Box \\
\|Diamond| & \Diamond \\
\|BoxBar| & \BoxBar \\
\|BoxMinus| & \BoxMinus \\
\|BoxPlus| & \BoxPlus \\
\|BoxTimes| & \BoxTimes \\
\|BoxDot| & \BoxDot \\
  \end{tabular}
}

\begin{table}[ht]
    \begin{center}
        \leavevmode
  \begin{tabular}{| l | l | l |}
  \hline
 \ColA & \ColB & \ColC \\
  \hline
  \end{tabular}
    \end{center}
    \caption{Auxiliary commands for certain symbols}
    \label{tab:auxiliary commands for symbols}
\end{table}



\vfill



\clearpage


\def\RIghtarrowtail{\raise0.18ex\hbox{$\scriptstyle>$}%
\hskip-0.4em-\hskip-0.75em\raise0.18ex\hbox{$\scriptstyle>$}}

\def\LEftarrowtail{\raise0.18ex\hbox{$\scriptstyle<$}%
\hskip-0.75em-\hskip-0.4em\raise0.18ex\hbox{$\scriptstyle<$}}

\def\DHrightarrow{\mathbin{-\hskip-0.45em\raise0.28ex%
\hbox{$\scriptscriptstyle>\hskip-0.3em>$}}}

\def\DHleftarrow{\mathbin{\raise0.28ex%
\hbox{$\scriptscriptstyle<\hskip-0.3em<$}\hskip-0.45em-}}

\makeatletter

\newbox\BOx\setbox\BOx=\hbox{\copy\@@Box}

\newbox\DIamond\setbox\DIamond=\hbox{\@Diamond}

\newbox\BOxminus\setbox\BOxminus=\hbox{\copy\@@BoxMinus}

\newbox\BOxplus\setbox\BOxplus=\hbox{\copy\@@BoxPlus}

\newbox\BOxtimes\setbox\BOxtimes=\hbox{\copy\@@BoxTimes}

\newbox\BOxdot\setbox\BOxdot=\hbox{\copy\@@BoxDot}

\Special@Macros

\makeatother



\def\ColA{
  \begin{tabular}[h]{ccc}
  \e{=<}            \\
  \e{>=}            \\
  \e{<<}            \\
  \e{>>}            \\
  \e{<.}            \\
  \e{>.}            \\
  \e{.>}            \\
  \e{=.}            \\
  \f{/<}{\not<}     \\
  \f{/>}{\not>}     \\
  \f{/=<}{\not\leq} \\
  \f{/>=}{\not\geq} \\
  \e{/=}            \\
  \e{===}           \\
  \e{=/=}           \\
  \e{||}            \\
  \e{|[}            \\
  \e{]|}            \\
  \h{\<}{\texttt{\bkslsh<}} \Ast  \\
  \h{\>}{\texttt{\bkslsh>}} \Ast  \\
  \e{/}             \\
  \e{:}             \\
  \e{...}           \\
  \e{"}             \\    
  \e{'}             \\
  \g{^}{\char`\^}   \Ast \\
  \g{_}{\char`\_}   \Ast \\
  \texttt{\blnk}&\lower.6ex\hbox{\texttt{\char`\~}}& \Ast \\
  \end{tabular}
} 
\def\ColB{
  \begin{tabular}[h]{ccc}
  \e{=>}            \\
  \e{<=}            \\
  \e{<=>}           \\
  \e{==>}           \\
  \e{<==}           \\
  \e{<==>}          \\
  \h{\wedge}{\texttt{\slsh\bkslsh\blnk}} \Ast \\
  \h{\vee}{\texttt{\bkslsh\slsh}}        \Ast \\
  \e{-;}            \\
  \h{\All}{\texttt{\bkslsh{}All}} \Ast \\
  \h{\A}{\texttt{\bkslsh{}A}} \Ast \\
  \h{\Ex}{\texttt{\bkslsh{}Ex}}   \Ast\\
  \h{\E}{\texttt{\bkslsh{}E}}   \Ast\\
  \e{|-}            \\
  \e{|=}            \\
  \f{[]}{\copy\BOx}      \\
  \f{<>}{\copy\DIamond}  \\
  \e{<|}            \\
  \e{|>}            \\
  \f{[.]}{\copy\BOxdot}  \\
  \e{[|]}           \\
  \f{[-]}{\copy\BOxminus}           \\
  \f{[+]}{\copy\BOxplus}           \\
  \f{[*]}{\copy\BOxtimes}          \\
  \g{|_|}{|\char`\_|}         \\
  \g{_|_}{\char`\_|\char`\_}  \\
  \h{\U}{\texttt{\bkslsh U}}  \Ast                \\
  \h{\I}{\texttt{\bkslsh I}}  \Ast                \\
  \end{tabular}
}
\def\ColC{
  \begin{tabular}[h]{ccc}
  \e{->}             \\
  \e{<-}             \\
  \e{<->}            \\
  \e{-->}            \\
  \e{<--}            \\
  \e{<-->}           \\
  \f{>->}{\RIghtarrowtail}  \\
  \f{<-<}{\LEftarrowtail}   \\
  \f{->>}{\DHrightarrow}    \\
  \f{<<-}{\DHleftarrow}     \\
  \g{|^}{|\char`\^}  \\
  \e{|->}            \\
  \e{|-->}           \\
  \e{-.}             \\
  \e{-:-}            \\
  \e{**}             \\
  \e{><}             \\
  \e{+-}             \\
  \e{++}             \\
  \e{::}             \\
  \h{\o}{\texttt{\bkslsh o}}           \Ast       \\
  \h{\lambda}{\texttt{\bkslsh\bkslsh}} \Ast       \\
  \f{BB}{\Identifier{I\hskip-0.2emB}}             \\
  \f{NN}{\Identifier{I\hskip-0.2emN}}             \\
  \f{ZZ}{\Identifier{Z\hskip-0.3emZ}}             \\
  \f{QQ}{\Identifier{I\hskip-0.5emQ}}             \\
  \f{RR}{\Identifier{I\hskip-0.2emR}}             \\
  \f{VV}{\Identifier{V\hskip-0.4emV}}             \\
  \end{tabular}
}


\begin{table}[ht]
    \begin{center}
        \leavevmode
  \begin{tabular}{|ccc|ccc|ccc|}
  \hline
    \emph{look} & \emph{type} & \emph{-ams} &
    \emph{look} & \emph{type} & \emph{-ams} &
    \emph{look} & \emph{type} & \emph{-ams} \\
    \hline
  \multicolumn{3}{|@{}c}{\ColA} & 
  \multicolumn{3}{@{}|@{}c}{\ColB} & 
  \multicolumn{3}{|@{}c@{}|}{\ColC} \\
  \hline
  \end{tabular}
    \end{center}
    \caption{Special symbols (\texttt{symbols.sty})}
    \label{tab:SpecialSymbols}
\end{table}

The ``look'' columns show the printed output, the ``type'' columns show,
what you have to type, and the ``no-ams'' columns show the alternative
outputs, when \texttt{amssymb} is not loaded; an \Ast~in this column means
that the symbol is \emph{not} introduced (and thus not changeable) by
\verb=\SetSymbol=.





