\pagestyle{plain}

\begin{titledslide}{ }

\end{titledslide}

\begin{slide}{}

$\begin{array}{lll}
U\!O\!P & \in  & \mbox{Unary Operator}\\
B\!O\!P & \in & \mbox{Binary Operator}\\
E & \in & \mbox{Expression} \\
P & \in & \mbox{Pattern}
\end{array}$ \\


$\begin{array}{lll}
\\
Variable & ::= & x \mid y \mid z \mid \cdots \mid a \mid b \mid \cdots \mid 
                 f \mid \cdots \mid x_1 \mid \cdots \mid F \mid G \mid
                 \cdots   \\

Constant & ::= & Integer \mid Boolean \mid {\sf ()} \mid {\sf Nil} \mid
                 ({\sf Not}) \mid \cdots \mid {\sf (+)}
                 \mid {\sf (-)} \mid \cdots \mid {\sf Make\_nD\_array} \\

U\!O\!P & ::= & {\sf Negate} \mid{\sf Not} \mid {\sf nD\_Bounds} \mid
                {\sf I\_nD\_array} \mid {\sf Open\_cons}  \\

B\!O\!P & ::= & {\sf +} \mid {\sf -} \mid {\sf *} \mid \cdots \mid {\sf ==}
                \mid {\sf Eq?} \mid {\sf <} \mid \cdots \mid {\sf And}
                \mid {\sf :} \\

E &::=& Variable \mid {\sf Next} \; Variable \mid Constant \\
  &   &  \mid (U\!O\!P \; E) \mid (E \; B\!O\!P  \; E)
         \mid (E\; E) \mid E[E] \mid E.{\sf  cons\_1}
         \mid E.{\sf cons\_2} \\
  &   &  \mid (E,E) \mid (E,E,E) \mid \cdots  \\
  &   &  \mid ({\sf If} \; E \; {\sf then} \;  E \;
         {\sf else} \;E) \mid 
         \{ {\sf Case} \; E \; {\sf of} \; Clause\;[\; \mid \; Clause]^*\; \} \\
  &   &  \mid\{ {\sf While}\;E\;{\sf do}\;[Statement;]^*\;{\sf Finally}\; E \}\\
  &   &  \mid \{{\sf For}\;Variable\;\leftarrow\;E\;{\sf to}\;E\;{\sf step}\;E\;
         {\sf do}\; [Statement;]^* \; {\sf Finally} \; E \} \\
  &   &  \mid \{ {\sf Fun} \; [Variables]^* \; = \; E \} \mid
         \{ \underline{{\sf Fun}} \; [Variables]^* \; = \; E \} \\
  &   & \mid Block \\

Block & ::=& \{ [Statement;]^* \;\;{\sf In} \; E \} \\

Statement &::=& Binding \mid Command \\

Binding &::= & P \; {\sf =} \; E \\

Command & ::= & E[E]=E \mid E.{\sf cons\_1} = E \mid E.{\sf cons\_2} = E \\

Clause & ::= & P = E \\

P &::= & {\sf Nil} \mid Variable  \mid  {\sf Next} \; Variable \mid (P,P)
         \mid  (P,P,P) \mid \cdots \mid  (P : P)\\

Program &::=&  Block

\end{array} $\\
\\
\begin{center}
De-sugared Id$^-$
\end{center}

\end{slide}

\end{document}
