<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">% vim: nospell:
\section{Grammar}
\label{sec:grammar}

\setlength{\grammarparsep}{4pt}
\setlength{\grammarindent}{10em}
\begin{grammar}
	&lt;Fuspel&gt; ::= &lt;Rewrite-list&gt;

	&lt;Rewrite-list&gt; ::= &lt;Rewrite&gt; `;' &lt;Rewrite-list&gt; | &lt;empty&gt;

	&lt;Rewrite&gt; ::= &lt;Name&gt; &lt;Arg-list&gt; `=' &lt;Rhs&gt;

	&lt;Arg-list&gt; ::= &lt;Arg&gt; ` ' &lt;Arg-list&gt; | &lt;empty&gt;

	&lt;Arg&gt; ::= [`!'] &lt;Simple-expr&gt;

	&lt;Simple-expr&gt; ::= &lt;Int&gt;
		\alt &lt;Name&gt;
		\alt &lt;Simple-list&gt;
		\alt &lt;Simple-tuple&gt;

	&lt;Simple-list&gt; ::= `[' &lt;Simple-expr&gt; `:' &lt;Simple-list&gt; `]'
		\alt `[]'
	
	&lt;Simple-tuple&gt; ::= `(' &lt;Simple-expr&gt; `,' &lt;Simple-expr&gt; `)'

	&lt;Rhs&gt; ::= &lt;Expr&gt;

	&lt;Expr&gt; ::= &lt;Int&gt;
		\alt &lt;Name&gt;
		\alt &lt;List&gt;
		\alt &lt;Tuple&gt;
		\alt &lt;Expr&gt; &lt;Expr&gt;
		\alt `code' &lt;Name&gt;
		\alt `(' &lt;Expr&gt; `)'

	&lt;List&gt; ::= `[' &lt;Expr&gt; `:' &lt;List&gt; `]'
		\alt `[]'
	
	&lt;Tuple&gt; ::= `(' &lt;Expr&gt; `,' &lt;Expr&gt; `)'
\end{grammar}
</pre></body></html>