cws/cw03.tex
changeset 992 c3dd3a98f919
parent 989 aa976b429904
child 993 9a85924835c0
--- a/cws/cw03.tex	Fri Sep 26 23:10:52 2025 +0100
+++ b/cws/cw03.tex	Sun Sep 28 14:03:59 2025 +0100
@@ -22,20 +22,21 @@
 explained during the lectures. This might make your grammar
 simpler. However, make sure you understand the code involved in the
 ``hack'' because if you just do ``mix-and-match'' you will receive
-strange errors.  The main function that will be tested is called
+strange error messages.  The main function that will be tested is called
 \texttt{eval} and \texttt{Stmts.parse\_all}. The latter expects a list
 of tokens as input and generates an AST. The former expects an AST and
 ``runs'' the program. The marks will be distributed such that 6 marks
 are given for the correct grammar (and parsers); 4 marks for the correct
 \texttt{eval} function.  You should use the lexer from CW2 for the
-parser - you potentially need to make additions for CW3.  
+parser - you potentially need to make modifications to the regular 
+expressions for CW3.  
 
 \subsection*{Disclaimer\alert}
 
 It should be understood that the work you submit represents your own
 effort. You have not copied from anyone else. An exception is the
 Scala code I showed during the lectures or uploaded to KEATS, which
-you can both use. You can also use your own code from the CW~1 and
+you can both use. You can also use your own code from CW~1 and
 CW~2. 
 %But do not
 %be tempted to ask Github Copilot for help or do any other
@@ -133,17 +134,20 @@
 from Task 1, parse the assignments of the form
 
 \begin{quote}
-\texttt{... += ...} \;\;and\;\; \texttt{... *= ...}
+\texttt{... += ...} \;\;, \texttt{... -= ...} \;\; and\;\; \texttt{... *= ...}
 \end{quote}
 
+\noindent
 and translate them into simple assignments. For example
 
 \begin{quote}
 \texttt{cnt += 1}
 \end{quote}
 
-should give the assignment \texttt{cnt := cnt + 1}. Similarly
-for \texttt{*=}.
+\noindent
+should produce the assignment \texttt{cnt := cnt + 1}. Similarly
+for \texttt{-=} and \texttt{*=}. Be careful to \emph{translate} these
+assignments---they should not produce a separate AST-node.
 
 \subsection*{Task 4}