<?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-8%3Avpup001</id>
	<title>SE250:lab-8:vpup001 - 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-8%3Avpup001"/>
	<link rel="alternate" type="text/html" href="https://wiki.kram.nz/index.php?title=SE250:lab-8:vpup001&amp;action=history"/>
	<updated>2026-04-29T02:26:15Z</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-8:vpup001&amp;diff=8436&amp;oldid=prev</id>
		<title>Mark: 9 revision(s)</title>
		<link rel="alternate" type="text/html" href="https://wiki.kram.nz/index.php?title=SE250:lab-8:vpup001&amp;diff=8436&amp;oldid=prev"/>
		<updated>2008-11-03T05:20:32Z</updated>

		<summary type="html">&lt;p&gt;9 revision(s)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;This lab is about parse trees. &lt;br /&gt;
There were few errors in the code. I have fixed them with the help of my friend and the tutor. The &amp;#039;expect&amp;#039; function should be after the &amp;#039;error&amp;#039; function.&lt;br /&gt;
&lt;br /&gt;
==Task 1==&lt;br /&gt;
&lt;br /&gt;
Just downloading the code from wiki.&lt;br /&gt;
&lt;br /&gt;
==Task 2==&lt;br /&gt;
The code for this task...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
int main(){&lt;br /&gt;
	char *file=&amp;quot;lab8.jpg&amp;quot;;&lt;br /&gt;
	ParseTree* t = mkNode(&amp;#039;-&amp;#039;, mkNode( &amp;#039;-&amp;#039;, mkNode( &amp;#039;a&amp;#039;, 0 ), mkNode( &amp;#039;b&amp;#039;, 0 ), 0 ), 0);&lt;br /&gt;
	prefix_tree(t);&lt;br /&gt;
	tree_to_graph( t, file );&lt;br /&gt;
	return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Output: -(-(a b))&lt;br /&gt;
&lt;br /&gt;
==Task 3 &amp;amp; 4==&lt;br /&gt;
For this task, I have done 3 parse trees and combined them.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
int main(){&lt;br /&gt;
	char *file=&amp;quot;lab8.jpg&amp;quot;;&lt;br /&gt;
	ParseTree* t1 = mkNode(&amp;#039;&amp;gt;&amp;#039;, mkNode( &amp;#039;+&amp;#039;, mkNode( &amp;#039;a&amp;#039;, 0 ), mkNode( &amp;#039;b&amp;#039;, 0 ), 0), mkNode(&amp;#039;c&amp;#039; ,0), 0);&lt;br /&gt;
	ParseTree* t2 = mkNode( &amp;#039;*&amp;#039;, mkNode(&amp;#039;z&amp;#039;, 0), mkNode(&amp;#039;+&amp;#039;, mkNode( &amp;#039;y&amp;#039;, 0), mkNode( &amp;#039;b&amp;#039;, 0), 0), 0);&lt;br /&gt;
	ParseTree* t3 = mkNode(&amp;#039;?&amp;#039;, mkNode(&amp;#039;=&amp;#039;, mkNode(&amp;#039;a&amp;#039;, 0), mkNode(&amp;#039;2&amp;#039;, 0), 0), mkNode(&amp;#039;-&amp;#039;, mkNode(&amp;#039;x&amp;#039;, 0), mkNode(&amp;#039;y&amp;#039;, 0), 0), mkNode(&amp;#039;-&amp;#039;, mkNode(&amp;#039;y&amp;#039;, 0), mkNode(&amp;#039;x&amp;#039;, 0), 0), 0);&lt;br /&gt;
	ParseTree* t = mkNode(&amp;#039;?&amp;#039;, t1, t2, t3, 0);&lt;br /&gt;
	prefix_tree(t);&lt;br /&gt;
	tree_to_graph( t, file );&lt;br /&gt;
	return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Output: ?(&amp;gt;(+(a b) c) *(z +(y b)) ?(=(a 2) -(x y) -(y x)))&lt;br /&gt;
&lt;br /&gt;
I found it easier to split the tree and combine it instead of doing the whole thing in one line.&lt;br /&gt;
I have also drawn the graph.&lt;/div&gt;</summary>
		<author><name>Mark</name></author>
	</entry>
</feed>