<commit_before>\chapter{The \texttt{loop} macro} 

Our \texttt{loop} module will use all available Common Lisp functions
for its analysis of syntax and semantics.  We believe this is not a
problem, even though we assume the existence of \texttt{loop} for many
other modules, because the code in this module will be executed during
macro-expansion time, and for a new Common Lisp system, this would be
another full Common Lisp implementation. 

For systems without a full implementation of \texttt{loop} we are
planning to provide macro-expanded versions of modules that would
otherwise require \texttt{loop} in order to be compiled. 

Our \texttt{loop} module will use only standard Common Lisp code in
its expansion, so that macro-expanded uses of \texttt{loop} will not
require any other \sysname{} module in order to work.  <commit_msg>Update state of LOOP macro.<commit_after>\chapter{The \texttt{loop} macro} 

Our \texttt{loop} module uses all available Common Lisp functions for
its analysis of syntax and semantics.  We believe this is not a
problem, even though we assume the existence of \texttt{loop} for many
other modules, because the code in this module will be executed during
macro-expansion time, and for a new Common Lisp system, it would be
executed during cross compilation by another full Common Lisp
implementation.

Our \texttt{loop} module will use only standard Common Lisp code in
its expansion, so that macro-expanded uses of \texttt{loop} will not
require any other \sysname{} module in order to work.  

The code for the \sysname{} \texttt{loop} macro is located in the
directory \texttt{Code/Loop}.  

For parsing the a \texttt{loop} expression, we use a technique called
\emph{combinatory parsing}.

\section{Current state}

At the moment, the full \texttt{loop} syntax is parsed.  Code
generation is incomplete, however.  Only the constructs have code
generators: \texttt{initially}, \texttt{finally}, \texttt{until},
\texttt{while}, \texttt{do}, \texttt{with}, \texttt{repeat},
\texttt{collect}, \texttt{sum}.



{'fraction_non_alphanumeric': 0.06992665036674817, 'fraction_numerical': 0.0, 'mean_word_length': 4.683333333333334, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4496902', 'n_tokens_mistral': 553, 'n_tokens_neox': 527, 'n_words': 284}