\documentclass{WigReport}
\usepackage{epsfig} % so you can include .eps figures
\usepackage{alltt}  % so you can include program text 
\title{Wig Compiler Report}
\ReportNumber{yyyy-xx} % replace  yyyy with a year and xx with your group #
\author{First Member \\  % put your names here
        Second Member \\
        Third Member}
\begin{document}

\MakeTitlePage
\tableofcontents
\listoffigures % comment out if you have no figures
\listoftables  % comment out if you have no tables
\clearpage

% Replace each subsection below with the appropriate contents.
% Feel free to add more (sub)sections if you want. Write clearly
% and concisely. Assume that your readers know all about WIG and
% the COMP-520 course; don't quote the project description.
%
\section{Introduction}
\subsection{Clarifications}
Have you discovered any unclear points in the WIG language definition?
How have you chosen to resolve these?

\subsection{Restrictions}
Have you deliberately made any restrictions in your version of WIG?
What was your motivation? What are the implications?

\subsection{Extensions}
Have you made any extensions to your version of WIG?
What was your motivation? What are the implications?

\subsection{Implementation Status}
What is the status of your WIG implementation? Have all your proposed
features been implemented? Have they been tested? Do they work?

\section{Parsing and Abstract Syntax Trees}
\subsection{The Grammar}
Give the full grammar for your version of the WIG language by
listing your {\tt bison} input with all actions removed.

\subsection{Using the {\tt flex} or {\tt SableCC} Tool}
Discuss any interesting points in your {\tt flex} implementation of the
scanner. What are your token kinds?
Did you use start conditions? How and why?

\subsection{Using the {\tt bison} or {\tt SableCC} Tool}
Discuss any interesting points in your {\tt bison} implementation of the
parser. How did you make {\tt bison} accept your grammar? 

\subsection{Abstract Syntax Trees}
Present the structure of your abstract syntax trees.  If you used 
{\tt SableCC}, discuss how you modified the tree.

\subsection{Desugaring}
Do you resolve any syntactic sugar during parsing? How and why?

\subsection{Weeding}
Do you weed unwanted parse trees? How and why?

\subsection{Testing}
How have you tested this phase? Does it work?

\section{Symbol Tables}
\subsection{Scope Rules}
Describe the scope rules of your language.

\subsection{Symbol Data}
Describe the contents of symbol table entries.

\subsection{Algorithm}
Describe your algorithm for building symbol tables and
checking scope rules.

\subsection{Testing}
How have you tested this phase? Does it work?

\section{Type Checking}
\subsection{Types}
Describe the types supported by your language.

\subsection{Type Rules}
Describe the type rules of your language.

\subsection{Algorithm}
Describe your algorithm for checking type rules.

\subsection{Testing}
How have you tested this phase? Does it work?

\section{Resource Computation}
\subsection{Resources}
Describe the resources that you compute.

\subsection{Algorithm}
Describe your algorithm for computing resources.

\subsection{Testing}
How have you tested this phase? Does it work?

\section{Code Generation}
\subsection{Strategy}
Describe the overall strategy for generating code for a service.

\subsection{Code Templates}
Describe the code templates for your language constructs.

\subsection{Algorithm}
Describe your algorithm for generating code.

\subsection{Runtime System}
Describe the runtime system that is used by the services you generate.

\subsection{Sample Code}
Show the complete code generated for the service {\tt tiny.wig}.

\subsection{Testing}
How have you tested this phase? Does it work?

\section{Availability and Group Dynamics}
\subsection{Manual}
Describe how to compile and install services.

\subsection{Demo Site}
Give the URL for a web site that contains demos of 
services that you have generated.

\subsection{Division of Group Duties}
Explain who worked on what parts of the compiler and how you divided
the work.

\end{document}
