<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://wiki.kram.nz/index.php?action=history&amp;feed=atom&amp;title=SE250%3Alab-9%3Ahbar055</id>
	<title>SE250:lab-9:hbar055 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.kram.nz/index.php?action=history&amp;feed=atom&amp;title=SE250%3Alab-9%3Ahbar055"/>
	<link rel="alternate" type="text/html" href="https://wiki.kram.nz/index.php?title=SE250:lab-9:hbar055&amp;action=history"/>
	<updated>2026-04-28T21:19:38Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://wiki.kram.nz/index.php?title=SE250:lab-9:hbar055&amp;diff=8545&amp;oldid=prev</id>
		<title>Mark: 3 revision(s)</title>
		<link rel="alternate" type="text/html" href="https://wiki.kram.nz/index.php?title=SE250:lab-9:hbar055&amp;diff=8545&amp;oldid=prev"/>
		<updated>2008-11-03T05:20:35Z</updated>

		<summary type="html">&lt;p&gt;3 revision(s)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Option Two ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Parse(&amp;quot;a=1&amp;quot;):&lt;br /&gt;
        Incomplete parse&lt;br /&gt;
        └&lt;br /&gt;
        └&lt;br /&gt;
 Parse(&amp;quot;a=1;b=2;k;k;k&amp;quot;):&lt;br /&gt;
        Incomplete parse&lt;br /&gt;
        ░&lt;br /&gt;
        ░&lt;br /&gt;
 Parse(&amp;quot;ia&amp;gt;btwtda=a*2ek&amp;quot;):&lt;br /&gt;
        Incomplete parse&lt;br /&gt;
        £&lt;br /&gt;
        £&lt;br /&gt;
 Parse(&amp;quot;ict{x=1;wtda=a*2}ek&amp;quot;):&lt;br /&gt;
        Incomplete parse&lt;br /&gt;
        ä&lt;br /&gt;
        ä&lt;br /&gt;
 Parse(&amp;quot;junk that won&amp;#039;t parse&amp;quot;):&lt;br /&gt;
        Incomplete parse&lt;br /&gt;
        h&lt;br /&gt;
        h&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
i came to realise the StmtSeq calls the Stmt function.&lt;br /&gt;
&lt;br /&gt;
In the Stmt function, we need to get the tokens recognising the statements and fill in the other data, arity and arg.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So after hours of trial and error ... we didn&amp;#039;t get very far ... this is the code we ended with&lt;br /&gt;
&lt;br /&gt;
  Tree* t;&lt;br /&gt;
  Token tok;&lt;br /&gt;
  int i;&lt;br /&gt;
&lt;br /&gt;
    for (i = 0; i &amp;lt; sizeof(tokens); i++) {&lt;br /&gt;
         tok = current(tokens);&lt;br /&gt;
&lt;br /&gt;
         if (tok == &amp;quot;i&amp;quot;){&lt;br /&gt;
            t = mkNode;&lt;br /&gt;
         } else if (tok == &amp;quot;d&amp;quot;) {&lt;br /&gt;
                   t-&amp;gt;name = &amp;#039;d&amp;#039;;&lt;br /&gt;
                   t-&amp;gt;arity = 1;&lt;br /&gt;
          } else if (tok == &amp;quot;e&amp;quot;) {&lt;br /&gt;
                    t-&amp;gt;name = &amp;#039;e&amp;#039;;&lt;br /&gt;
                    t-&amp;gt;arity = 1;&lt;br /&gt;
           } else if (tok == &amp;quot;p&amp;quot;) {&lt;br /&gt;
                     t-&amp;gt;name = &amp;#039;p&amp;#039;;&lt;br /&gt;
                     t-&amp;gt;arity = 1;&lt;br /&gt;
            } else if (tok == &amp;quot;s&amp;quot;) {&lt;br /&gt;
                      t-&amp;gt;name = &amp;#039;k&amp;#039;;&lt;br /&gt;
                      t-&amp;gt;arity = 0;&lt;br /&gt;
             } else if (tok == &amp;quot;t&amp;quot;) {&lt;br /&gt;
                       t-&amp;gt;name = &amp;#039;t&amp;#039;;&lt;br /&gt;
                       t-&amp;gt;arity = 2;&lt;br /&gt;
              } else if (tok == &amp;quot;w&amp;quot;) {&lt;br /&gt;
                        t-&amp;gt;name = &amp;#039;w&amp;#039;;&lt;br /&gt;
                        t-&amp;gt;arity = 2;&lt;br /&gt;
               } else {&lt;br /&gt;
                     t = 0;&lt;br /&gt;
                }&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       return t;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
We came to realise that we need to use the current function to look at 1 token at a time because the tokens variable is holding an array of tokens. We didn&amp;#039;t quite get how to use the tree ... so it didn&amp;#039;t work&lt;br /&gt;
&lt;br /&gt;
but because we had the else statement to &amp;quot;catch&amp;quot; errors ... we got this output&lt;br /&gt;
&lt;br /&gt;
 Parse(&amp;quot;a=1&amp;quot;):&lt;br /&gt;
        Incomplete parse&lt;br /&gt;
        &amp;lt;###&amp;gt;&lt;br /&gt;
        &amp;lt;###&amp;gt;&lt;br /&gt;
 Parse(&amp;quot;a=1;b=2;k;k;k&amp;quot;):&lt;br /&gt;
        Incomplete parse&lt;br /&gt;
        &amp;lt;###&amp;gt;&lt;br /&gt;
        &amp;lt;###&amp;gt;&lt;br /&gt;
 Parse(&amp;quot;ia&amp;gt;btwtda=a*2ek&amp;quot;):&lt;br /&gt;
        Incomplete parse&lt;br /&gt;
        &amp;lt;###&amp;gt;&lt;br /&gt;
        &amp;lt;###&amp;gt;&lt;br /&gt;
 Parse(&amp;quot;ict{x=1;wtda=a*2}ek&amp;quot;):&lt;br /&gt;
        Incomplete parse&lt;br /&gt;
        &amp;lt;###&amp;gt;&lt;br /&gt;
        &amp;lt;###&amp;gt;&lt;br /&gt;
 Parse(&amp;quot;junk that won&amp;#039;t parse&amp;quot;):&lt;br /&gt;
        Incomplete parse&lt;br /&gt;
        &amp;lt;###&amp;gt;&lt;br /&gt;
        &amp;lt;###&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Thats it for me.........&lt;/div&gt;</summary>
		<author><name>Mark</name></author>
	</entry>
</feed>