\chapter{Concrete Syntax and\\
Informal Semantics}
\label{sec:concrete_syntax}

In this chapter we describe the concrete syntax of the language as it is recognized by the parser. In the
syntactic description we will use extended Backus-Naur form with the following conventions:

\begin{itemize}
\item nonterminals are presented in \nonterm{italics};
\item concrete terminals are \term{grayed out};
\item classes of terminals are \token{CAPITALIZED};
\item a postfix ``$^\star$'' designates zero-or-more repetitions;
\item square brackets ``$[\dots]$'' designate zero-or-one repetition;
\item round brackets ``$(\dots)$'' are used for grouping;
\item alteration is denoted by ``$\alt$'', sequencing by juxaposition;
\item a colon ``$:$'' separates a nonterminal being defined from its definition.
\end{itemize}

In the description below we will take in-line code samples in blockquotes "..." which are not considered as a
part of concrete syntax.

\input{03.01.lexical_structure}
\input{03.02.compilation_units}
\input{03.03.scope_expressions}
\input{03.04.expressions}



