% -- circus.sty version 1 -------------------------------------------------

% Comments, complaints, and suggestions to
%
%   Jim.Woodcock@comlab.ox.ac.uk
%
% Acknowledgements to Jim Davies and Mike Spivey.
%
% Changed on 4.7.02 by Ana Cavalcanti to include: \circnameset
%
% -- circus.sty -----------------------------------------------------------

\def\fileversion{1.0}
\def\filedate{01/07/17}

\NeedsTeXFormat{LaTeX2e}

\ProvidesPackage{circus}[{\filedate\space\fileversion\space circus package}]

% -- options -----------------------------------------------------------

\newif\if@cm@ \@cm@false
\newif\if@lucida@ \@lucida@false
\newif\if@times@ \@times@false
\newif\if@color@ \@color@false
\newif\if@csp@ \@csp@false

\DeclareOption{cm}{\@cm@true\@lucida@false\@times@false}
\DeclareOption{lucida}{\@cm@false\@lucida@true\@times@false}
\DeclareOption{times}{\@cm@false\@lucida@false\@times@true}
\DeclareOption{color}{\@color@true}
\DeclareOption{csp}{\@csp@true}

\ExecuteOptions{cm} \ProcessOptions

\RequirePackageWithOptions{zed}

\@ifpackageloaded{csp}{\relax}{%
  \RequirePackageWithOptions{csp}}

%\RequirePackage{my-a4}

\newenvironment{circus}{\begin{zed}}{\end{zed}}%

\def\fuzz{{\large\it f\kern0.1em}{\normalsize\sc uzz}}
\let\Fuzz=\fuzz

\makeatletter

\def\demo{\par\vbox\bgroup\begingroup\quote}

\def\gives{\endquote\endgroup\egroup}

\def\enddemo{\global\@ignoretrue}

\def\symtab{\setbox0=\vbox\bgroup \def\\{\cr}
  \halign\bgroup\strut$##$\hfil&\quad##\hfil\cr}

\def\endsymtab{\crcr\egroup\egroup \dimen0=\ht0 \divide\dimen0 by2
  \advance\dimen0 by\ht\strutbox \splittopskip=\ht\strutbox
  \vbadness=10000 \predisplaypenalty=0
    $$\halign{##\cr\hbox to\linewidth{%
        \valign{##\vfil\cr
          \setbox1=\vsplit0 to\dimen0 \unvbox1\cr
          \noalign{\hfil}\unvbox0\cr
          \noalign{\hfil}}}\cr
      \noalign{\prevdepth=\dp\strutbox}}$$
    \global\@ignoretrue}

\makeatother

%%ignore \block \endblock

\newcommand{\mathsl}[1]{\hbox{\slshape #1}}

\newcommand{\Circus}{{\sf\slshape Circus}}

\newcommand{\circbegin}{\mathbf{begin}}
\newcommand{\circstate}{\mathbf{state}}
\newcommand{\circchannel}{\mathbf{channel}}
\newcommand{\circchanset}{\mathbf{chanset}}
\newcommand{\circnameset}{\mathbf{nameset}}
\newcommand{\circcon}{\mathbf{con}}
\newcommand{\circelse}{[\!]}
\newcommand{\circend}{\mathbf{end}}
\newcommand{\circfi}{\mathbf{fi}}
\newcommand{\circif}{\mathbf{if}}
\newcommand{\circdo}{\mathbf{do}}
\newcommand{\circod}{\mathbf{od}}
\newcommand{\circmu}{\mu}
\newcommand{\circprocess}{\mathbf{process}}
\newcommand{\circthen}{\rightarrow}
\newcommand{\circvar}{\mathbf{var}}
\newcommand{\circval}{\mathbf{val}}
\newcommand{\circres}{\mathbf{res}}
\newcommand{\circvres}{\mathbf{vres}}
\newcommand{\circvalres}{\circvres}
\newcommand{\boolean}{{\mathbb B}}
\newcommand{\freetype}[1]{\mathsf{#1}}

\newcommand{\Semi}{\hbox{\large ;}}

\newcommand{\lchanset}{\{\!|}
\newcommand{\rchanset}{|\!\}}
\newcommand{\linter}{|\!|\hspace{-4pt}[}
\newcommand{\rinter}{]\hspace{-4pt}|\!|}

\def\II{\hbox{\texttt{\slshape I \kern -7.5pt I}}}
\def\circledR{{\mathhexbox\msafam@72 }}
