\[
\newcommand{\tr}{\Rightarrow}
\newcommand{\trs}{\tr^{\!\ast}}
\newcommand{\rlnm}[1]{\mathsf{(#1)}}
\newcommand{\rred}[1]{\xrightarrow{#1}}
\newcommand{\rreds}[1]{\mathrel{\xrightarrow{#1}\!\!^*}}
\newcommand{\cl}{\mathsf{Cl}}
\newcommand{\pow}{\mathcal{P}}
\newcommand{\matches}{\mathrel{\mathsf{matches}}}
\newcommand{\kw}[1]{\mathsf{#1}}
\newcommand{\andop}{\mathrel{\&\!\&}}
\newcommand{\orop}{\parallel}
\newcommand{\ff}{\mathsf{false}}
\newcommand{\tt}{\mathsf{true}}
\newcommand{\abra}[1]{\langle #1 \rangle}
\newcommand{\bnfnt}[1]{\abra{\small \textsf{#1}}}
\newcommand{\llbracket}{[\![}
\newcommand{\rrbracket}{]\!]}
\newcommand{\first}{\mathsf{First}}
\newcommand{\nullable}{\mathsf{Nullable}}
\newcommand{\follow}{\mathsf{Follow}}
\newcommand{\tm}[1]{\mathsf{#1}}
\newcommand{\nt}[1]{\mathit{#1}}
\newcommand{\Coloneqq}{::=}
\newcommand{\abs}[1]{|#1|}
\]
\[\begin{array}{rcl}
\nt{Prog} &\Coloneqq& \nt{Form}\ \nt{Prog} \mid \tm{eof} \\[4mm]
\nt{Form} &\Coloneqq& \nt{Atom}\\
\nt{Form} &\mid& \tm{(}\ \nt{CForm}\ \tm{)}\\[4mm]
\nt{CForm} &\Coloneqq& \nt{Expr}\\
\nt{CForm} &\mid& \tm{define}\ \tm{ident}\ \nt{SExpr}\\[4mm]
\nt{Atom} &\Coloneqq& \tm{literal} \mid \tm{ident}\\[4mm]
\nt{IdentList} &\Coloneqq& \tm{ident}\ \nt{IdentList} \mid \epsilon\\[4mm]
\nt{SExpr} &\Coloneqq& \nt{Atom}\\
\nt{SExpr} &\mid& \tm{(}\ \nt{Expr}\ \tm{)}\\[4mm]
\nt{SExprList} &\Coloneqq& \nt{SExpr}\ \nt{SExprList} \mid \epsilon\\[4mm]
\nt{Expr} &\Coloneqq& \tm{lambda}\ \tm{(}\ \tm{IdentList}\ \tm{)}\ \nt{SExpr}\\
\nt{Expr} &\mid& \tm{primop}\ \nt{SExprList}\\
\nt{Expr} &\mid& \nt{SExpr}\ \nt{SExprList}\\
\end{array}\]