<commit_before>
%\documentstyle[refman.sty]{article}
\documentstyle{report}

% page size commands

\title{WaveScript 0.1 Users Manual}

\begin{document}

\maketitle

% title page commads

\pagenumbering{arabic}
\tableofcontents
\clearpage

\chapter{Introduction}

\~/wavescript

\section{Using WaveScript}

See the README for install instructions.  Once the system is installed
you should be able to execute {\tt ws} or {\tt wsc} on any WaveScript
source files ({\tt .ws}).

\subsection*{Develop Incrementally}

WaveScript is still very much a prototype.  It doesn't offer the same
level of support that you can expect from production-quality
compilers.  For example, the compiler doesn't track code locations.
It will often print the surrounding context of an error (in abstract
syntax), but nothing more.

Thus it helps to build your program bit by bit.  Compile often to make
sure that the pieces of your program type-check.

{\tt \bf wsparse:}
If you want the full error message for a stubborn parser error, run
{\tt wsparse} directly on the ws file.  It will either print the AST
(abstract syntax tree) for the file, or will give you an error message
that includes line and character numbers.


\section{Syntax}

Please make liberal use of ~/wavescript/demos/wavescope

\section{Naming conventions}


\chapter{Basics}

\section{Tuples}

\section{Numbers}

% int, uint16, uint8, float, double, complex 

% Could just have NUMBER in the FIRST type check..
% Then type check again AFTER elaboration.
% (It would be really nice to keep source info....)

\section{Streams}<commit_msg>minor<commit_after>
%\documentstyle[refman.sty]{article}
\documentstyle{report}

% page size commands

\title{WaveScript 0.1 Users Manual}

\begin{document}

\maketitle

% title page commads

\pagenumbering{arabic}
\tableofcontents
\clearpage

\chapter{Introduction}

\~/wavescript

\section{Using WaveScript}

See the README for install instructions.  Once the system is installed
you should be able to execute {\tt ws} or {\tt wsc} on any WaveScript
source files ({\tt .ws}).

\subsection*{Develop Incrementally}

WaveScript is still very much a prototype.  It doesn't offer the same
level of support that you can expect from production-quality
compilers.  For example, the compiler doesn't track code locations.
It will often print the surrounding context of an error (in abstract
syntax), but nothing more.

Thus it helps to build your program bit by bit.  Compile often to make
sure that the pieces of your program type-check.

{\tt \bf wsparse:}
If you want the full error message for a stubborn parser error, run
{\tt wsparse} directly on the ws file.  It will either print the AST
(abstract syntax tree) for the file, or will give you an error message
that includes line and character numbers.

\subsection*{The WaveScript Emulator}

Running {\tt ws} on a WaveScript file will simulate the functionality
of the query without actually compiling the query to C++ code.

\subsubsection*{Consider {\tt ws.opt}}

Runnig {\tt ws.opt} in place of {\tt ws} may improve execution time
ofor a query that you are emulating.


\section{Syntax}

Please make liberal use of ~/wavescript/demos/wavescope

\section{Naming conventions}


\chapter{Basics}

\section{Tuples}

\section{Numbers}

% int, uint16, uint8, float, double, complex 

% Could just have NUMBER in the FIRST type check..
% Then type check again AFTER elaboration.
% (It would be really nice to keep source info....)

\section{Streams}
{'fraction_non_alphanumeric': 0.07818338603046852, 'fraction_numerical': 0.002874389192296637, 'mean_word_length': 4.288753799392097, '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': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4531702', 'n_tokens_mistral': 1063, 'n_tokens_neox': 990, 'n_words': 470}