The first and second steps are lexing and parsing, which are both explained in
Section~\ref{sec:pars}. When one enables only the parsing the program will show
-the pretty printed parsed source which is valid \SPL{} code. A simple selftest
+the pretty printed parsed source which is valid \SPL{} code. A simple self test
can thus be done by feeding the pretty printed output back into \SPLC{}. This
is show in Listing~\ref{lst:splcex}.
The third phase is the semantic analysis phase. In this phase the types are
-inferred where necessary and they are checked. There are also some trivial
+inferred where necessary and they are type checked. There are also some trivial
sanity checks executed to make sure the program is a valid one. When one
enables the printing of the third phase you are shown the pretty printed source
-code with all types inferred and the internal dictionary used for typechecking.
-This phase is elaborated upon in Section~\ref{sec:sem}.
+code with all types inferred and the internal dictionary used for type
+checking. This phase is elaborated upon in Section~\ref{sec:sem}.
The last and fourth phase is the code generation phase. \SPLC{} generates
\SSM\footnote{\url{http://www.staff.science.uu.nl/~dijks106/SSM/}}
assembly. \SSM{} assembly is a educational assembly language designed for
compiler construction courses and provides the programmer with handy tools such
as an emulator, breakpoints and a couple of higher level assembly instructions.
-Details on code generation is explained in Section~\ref{sec:gen}. Since \SPLC{}
-acts as a filter and the \SSM{} emulator does too one can chain the commands
-together with standard pipes as shown in Listing~\ref{lst:splcex}.
+Details on code generation are explained in Section~\ref{sec:gen}. Since
+\SPLC{} acts as a filter and the \SSM{} emulator does too one can chain the
+commands together with standard pipes as shown in Listing~\ref{lst:splcex}.
\begin{lstlisting}[
label={lst:splcex},