<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2900.2604" name=GENERATOR></HEAD>
<BODY>
<DIV><FONT face=Arial size=2><SPAN class=278572012-15032005>Hi 
folks,</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=278572012-15032005></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2><SPAN class=278572012-15032005>I have a parser 
problem. I have a basic calculator program (Graham Hutton's from Nottingham) 
which contains the following code:</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=278572012-15032005></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2><SPAN class=278572012-15032005>-- Define a parser 
to handle the input<BR>expr :: Parser Int<BR>expr = do t &lt;- 
term<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
do symbol 
"+"<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
e &lt;- 
expr<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
return (t + e)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; +++ 
return t</SPAN></FONT></DIV><FONT face=Arial size=2><SPAN 
class=278572012-15032005>
<DIV><BR>term :: Parser Int<BR>term = do f &lt;- 
factor<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
do symbol 
"*"<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
e &lt;- 
expr<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
return (f * t)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; +++ 
return f</DIV>
<DIV><BR>factor :: Parser Int<BR>factor = do symbol 
"("<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
e &lt;- 
expr<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
symbol 
")"<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
return e<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
+++ natural<BR></DIV></SPAN></FONT>
<DIV><FONT face=Arial size=2><SPAN class=278572012-15032005>symbol and natural 
are defined elsewhere and work fine, but when I compile it I get the 
error</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=278572012-15032005>&nbsp;</DIV></SPAN></FONT>
<DIV><FONT face=Arial size=2>ERROR "C:/HUGS/Calculator.hs":66 - Undefined 
variable "t"&nbsp;&nbsp;&nbsp; </FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><SPAN class=278572012-15032005><FONT face=Arial size=2>I suspect I'm 
missing something obvious, but for the life of me I can't see it. Any 
suggestions?</FONT></SPAN></DIV>
<DIV><SPAN class=278572012-15032005><FONT face=Arial 
size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=278572012-15032005><FONT face=Arial 
size=2>Thanks,</FONT></SPAN></DIV>
<DIV><SPAN class=278572012-15032005><FONT face=Arial 
size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=278572012-15032005><FONT face=Arial 
size=2>Nik</FONT></SPAN></DIV>
<DIV><SPAN class=278572012-15032005><FONT face=Arial size=2>(Trying to keep a 
couple of weeks ahead of her students)</FONT></SPAN></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV align=left><FONT face=Arial size=2>Dr Nik Freydís Whitehead</FONT></DIV>
<DIV align=left><FONT face=Arial size=2>University of Akureyri, 
Iceland</FONT></DIV>
<DIV align=left><FONT face=Arial 
size=2>*********************************************************************</FONT></DIV>
<DIV align=left><FONT face=Arial size=2>Having the moral high ground is 
good.</FONT></DIV>
<DIV align=left><FONT face=Arial size=2>Having the moral high ground and an 
FGMP-15 is better.</FONT></DIV>
<DIV align=left><FONT face=Arial 
size=2>*********************************************************************</FONT></DIV>
<DIV>&nbsp;</DIV></BODY></HTML>