<?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%3Arwan064%3Ascanner.h</id>
	<title>SE250:lab-9:rwan064:scanner.h - 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%3Arwan064%3Ascanner.h"/>
	<link rel="alternate" type="text/html" href="https://wiki.kram.nz/index.php?title=SE250:lab-9:rwan064:scanner.h&amp;action=history"/>
	<updated>2026-09-27T11:45:17Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://wiki.kram.nz/index.php?title=SE250:lab-9:rwan064:scanner.h&amp;diff=8683&amp;oldid=prev</id>
		<title>Mark: 1 revision(s)</title>
		<link rel="alternate" type="text/html" href="https://wiki.kram.nz/index.php?title=SE250:lab-9:rwan064:scanner.h&amp;diff=8683&amp;oldid=prev"/>
		<updated>2008-11-03T05:20:38Z</updated>

		<summary type="html">&lt;p&gt;1 revision(s)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[SE250:lab-9:rwan064|Back to Lab Report]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
  &amp;lt;title&amp;gt;scanner.h&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body bgcolor=&amp;quot;#ffffff&amp;quot; text=&amp;quot;#000000&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;a name=&amp;quot;line1&amp;quot;&amp;gt; 1&amp;lt;/a&amp;gt; &amp;lt;font color=&amp;quot;#444444&amp;quot;&amp;gt;/*&lt;br /&gt;
&amp;lt;a name=&amp;quot;line2&amp;quot;&amp;gt; 2&amp;lt;/a&amp;gt; 	File: scanner.h&lt;br /&gt;
&amp;lt;a name=&amp;quot;line3&amp;quot;&amp;gt; 3&amp;lt;/a&amp;gt; 	Purpose: Header for Code that takes an input stream of characters and seperates it into operators, identifiers and seperators.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;a name=&amp;quot;line4&amp;quot;&amp;gt; 4&amp;lt;/a&amp;gt; 	Author: Rajitha Wannigama&lt;br /&gt;
&amp;lt;a name=&amp;quot;line5&amp;quot;&amp;gt; 5&amp;lt;/a&amp;gt; */&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;a name=&amp;quot;line6&amp;quot;&amp;gt; 6&amp;lt;/a&amp;gt; &lt;br /&gt;
&amp;lt;a name=&amp;quot;line7&amp;quot;&amp;gt; 7&amp;lt;/a&amp;gt; &amp;lt;font color=&amp;quot;0000ff&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;#define PRINT_DEBUG printf( &amp;lt;font color=&amp;quot;#008000&amp;quot;&amp;gt;&amp;amp;quot;DEBUGGING at Line %d&amp;lt;font color=&amp;quot;#77dd77&amp;quot;&amp;gt;\n&amp;lt;/font&amp;gt;&amp;amp;quot;&amp;lt;/font&amp;gt;, __LINE__ );&amp;lt;/strong&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;a name=&amp;quot;line8&amp;quot;&amp;gt; 8&amp;lt;/a&amp;gt; &lt;br /&gt;
&amp;lt;a name=&amp;quot;line9&amp;quot;&amp;gt; 9&amp;lt;/a&amp;gt; &amp;lt;strong&amp;gt;extern&amp;lt;/strong&amp;gt; &amp;lt;strong&amp;gt;const&amp;lt;/strong&amp;gt; &amp;lt;strong&amp;gt;int&amp;lt;/strong&amp;gt; &amp;lt;font color=&amp;quot;#2040a0&amp;quot;&amp;gt;CPFILE_OP&amp;lt;/font&amp;gt;&amp;lt;font color=&amp;quot;4444FF&amp;quot;&amp;gt;;&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;a name=&amp;quot;line10&amp;quot;&amp;gt;10&amp;lt;/a&amp;gt; &amp;lt;strong&amp;gt;extern&amp;lt;/strong&amp;gt; &amp;lt;strong&amp;gt;const&amp;lt;/strong&amp;gt; &amp;lt;strong&amp;gt;int&amp;lt;/strong&amp;gt; &amp;lt;font color=&amp;quot;#2040a0&amp;quot;&amp;gt;CPFILE_EOF&amp;lt;/font&amp;gt;&amp;lt;font color=&amp;quot;4444FF&amp;quot;&amp;gt;;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;a name=&amp;quot;line11&amp;quot;&amp;gt;11&amp;lt;/a&amp;gt; &amp;lt;strong&amp;gt;extern&amp;lt;/strong&amp;gt; &amp;lt;strong&amp;gt;const&amp;lt;/strong&amp;gt; &amp;lt;strong&amp;gt;int&amp;lt;/strong&amp;gt; &amp;lt;font color=&amp;quot;#2040a0&amp;quot;&amp;gt;CPFILE_NL&amp;lt;/font&amp;gt;&amp;lt;font color=&amp;quot;4444FF&amp;quot;&amp;gt;;&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;a name=&amp;quot;line12&amp;quot;&amp;gt;12&amp;lt;/a&amp;gt; &amp;lt;strong&amp;gt;extern&amp;lt;/strong&amp;gt; &amp;lt;strong&amp;gt;const&amp;lt;/strong&amp;gt; &amp;lt;strong&amp;gt;int&amp;lt;/strong&amp;gt; &amp;lt;font color=&amp;quot;#2040a0&amp;quot;&amp;gt;CPFILE_SP&amp;lt;/font&amp;gt;&amp;lt;font color=&amp;quot;4444FF&amp;quot;&amp;gt;;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;a name=&amp;quot;line13&amp;quot;&amp;gt;13&amp;lt;/a&amp;gt; &amp;lt;strong&amp;gt;extern&amp;lt;/strong&amp;gt; &amp;lt;strong&amp;gt;const&amp;lt;/strong&amp;gt; &amp;lt;strong&amp;gt;int&amp;lt;/strong&amp;gt; &amp;lt;font color=&amp;quot;#2040a0&amp;quot;&amp;gt;CPFILE_TAB&amp;lt;/font&amp;gt;&amp;lt;font color=&amp;quot;4444FF&amp;quot;&amp;gt;;&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;a name=&amp;quot;line14&amp;quot;&amp;gt;14&amp;lt;/a&amp;gt; &amp;lt;strong&amp;gt;extern&amp;lt;/strong&amp;gt; &amp;lt;strong&amp;gt;const&amp;lt;/strong&amp;gt; &amp;lt;strong&amp;gt;int&amp;lt;/strong&amp;gt; &amp;lt;font color=&amp;quot;#2040a0&amp;quot;&amp;gt;CPFILE_UN&amp;lt;/font&amp;gt;&amp;lt;font color=&amp;quot;4444FF&amp;quot;&amp;gt;;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;a name=&amp;quot;line15&amp;quot;&amp;gt;15&amp;lt;/a&amp;gt; &lt;br /&gt;
&amp;lt;a name=&amp;quot;line16&amp;quot;&amp;gt;16&amp;lt;/a&amp;gt; &amp;lt;font color=&amp;quot;#444444&amp;quot;&amp;gt;/*&lt;br /&gt;
&amp;lt;a name=&amp;quot;line17&amp;quot;&amp;gt;17&amp;lt;/a&amp;gt; 	Returns true if the character passed as a paramter is a C operator, false otherwise.&lt;br /&gt;
&amp;lt;a name=&amp;quot;line18&amp;quot;&amp;gt;18&amp;lt;/a&amp;gt; */&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;a name=&amp;quot;line19&amp;quot;&amp;gt;19&amp;lt;/a&amp;gt; &amp;lt;font color=&amp;quot;#2040a0&amp;quot;&amp;gt;bool&amp;lt;/font&amp;gt; &amp;lt;font color=&amp;quot;#2040a0&amp;quot;&amp;gt;is_operator&amp;lt;/font&amp;gt;&amp;lt;font color=&amp;quot;4444FF&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt; &amp;lt;strong&amp;gt;char&amp;lt;/strong&amp;gt; &amp;lt;font color=&amp;quot;#2040a0&amp;quot;&amp;gt;c&amp;lt;/font&amp;gt; &amp;lt;font color=&amp;quot;4444FF&amp;quot;&amp;gt;)&amp;lt;/font&amp;gt;&amp;lt;font color=&amp;quot;4444FF&amp;quot;&amp;gt;;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;a name=&amp;quot;line20&amp;quot;&amp;gt;20&amp;lt;/a&amp;gt; &lt;br /&gt;
&amp;lt;a name=&amp;quot;line21&amp;quot;&amp;gt;21&amp;lt;/a&amp;gt; &amp;lt;font color=&amp;quot;#444444&amp;quot;&amp;gt;/*&lt;br /&gt;
&amp;lt;a name=&amp;quot;line22&amp;quot;&amp;gt;22&amp;lt;/a&amp;gt; 	Seperators are SPACE&amp;#039;s, TAB&amp;#039;s, NEWLINE&amp;#039;s or EOF&amp;#039;s.&lt;br /&gt;
&amp;lt;a name=&amp;quot;line23&amp;quot;&amp;gt;23&amp;lt;/a&amp;gt; */&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;a name=&amp;quot;line24&amp;quot;&amp;gt;24&amp;lt;/a&amp;gt; &amp;lt;font color=&amp;quot;#2040a0&amp;quot;&amp;gt;bool&amp;lt;/font&amp;gt; &amp;lt;font color=&amp;quot;#2040a0&amp;quot;&amp;gt;is_seperator&amp;lt;/font&amp;gt;&amp;lt;font color=&amp;quot;4444FF&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt; &amp;lt;strong&amp;gt;char&amp;lt;/strong&amp;gt; &amp;lt;font color=&amp;quot;#2040a0&amp;quot;&amp;gt;c&amp;lt;/font&amp;gt; &amp;lt;font color=&amp;quot;4444FF&amp;quot;&amp;gt;)&amp;lt;/font&amp;gt;&amp;lt;font color=&amp;quot;4444FF&amp;quot;&amp;gt;;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;a name=&amp;quot;line25&amp;quot;&amp;gt;25&amp;lt;/a&amp;gt; &lt;br /&gt;
&amp;lt;a name=&amp;quot;line26&amp;quot;&amp;gt;26&amp;lt;/a&amp;gt; &amp;lt;font color=&amp;quot;#444444&amp;quot;&amp;gt;/*&lt;br /&gt;
&amp;lt;a name=&amp;quot;line27&amp;quot;&amp;gt;27&amp;lt;/a&amp;gt; 	Read till a space, new line, an operator or EOF is reached.&lt;br /&gt;
&amp;lt;a name=&amp;quot;line28&amp;quot;&amp;gt;28&amp;lt;/a&amp;gt; 	If an operator is read as the first character then that&lt;br /&gt;
&amp;lt;a name=&amp;quot;line29&amp;quot;&amp;gt;29&amp;lt;/a&amp;gt; 	operator is returned and function exits. Otherwise the&lt;br /&gt;
&amp;lt;a name=&amp;quot;line30&amp;quot;&amp;gt;30&amp;lt;/a&amp;gt; 	whole word is returned till another operator is found.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;a name=&amp;quot;line31&amp;quot;&amp;gt;31&amp;lt;/a&amp;gt; */&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;a name=&amp;quot;line32&amp;quot;&amp;gt;32&amp;lt;/a&amp;gt; &amp;lt;strong&amp;gt;int&amp;lt;/strong&amp;gt; &amp;lt;font color=&amp;quot;#2040a0&amp;quot;&amp;gt;read_word&amp;lt;/font&amp;gt;&amp;lt;font color=&amp;quot;4444FF&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt; &amp;lt;font color=&amp;quot;#2040a0&amp;quot;&amp;gt;FILE&amp;lt;/font&amp;gt; &amp;lt;font color=&amp;quot;4444FF&amp;quot;&amp;gt;*&amp;lt;/font&amp;gt;&amp;lt;font color=&amp;quot;#2040a0&amp;quot;&amp;gt;fp&amp;lt;/font&amp;gt;, &amp;lt;strong&amp;gt;char&amp;lt;/strong&amp;gt; &amp;lt;font color=&amp;quot;4444FF&amp;quot;&amp;gt;*&amp;lt;/font&amp;gt;&amp;lt;font color=&amp;quot;#2040a0&amp;quot;&amp;gt;str&amp;lt;/font&amp;gt; &amp;lt;font color=&amp;quot;4444FF&amp;quot;&amp;gt;)&amp;lt;/font&amp;gt;&amp;lt;font color=&amp;quot;4444FF&amp;quot;&amp;gt;;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;a name=&amp;quot;line33&amp;quot;&amp;gt;33&amp;lt;/a&amp;gt; &lt;br /&gt;
&amp;lt;a name=&amp;quot;line34&amp;quot;&amp;gt;34&amp;lt;/a&amp;gt; &amp;lt;font color=&amp;quot;#444444&amp;quot;&amp;gt;/*&lt;br /&gt;
&amp;lt;a name=&amp;quot;line35&amp;quot;&amp;gt;35&amp;lt;/a&amp;gt; 	Returns true if str is a keyword of C, false otherwise.&lt;br /&gt;
&amp;lt;a name=&amp;quot;line36&amp;quot;&amp;gt;36&amp;lt;/a&amp;gt; */&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;a name=&amp;quot;line37&amp;quot;&amp;gt;37&amp;lt;/a&amp;gt; &amp;lt;font color=&amp;quot;#2040a0&amp;quot;&amp;gt;bool&amp;lt;/font&amp;gt; &amp;lt;font color=&amp;quot;#2040a0&amp;quot;&amp;gt;is_keyword&amp;lt;/font&amp;gt;&amp;lt;font color=&amp;quot;4444FF&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt; &amp;lt;strong&amp;gt;char&amp;lt;/strong&amp;gt; &amp;lt;font color=&amp;quot;4444FF&amp;quot;&amp;gt;*&amp;lt;/font&amp;gt;&amp;lt;font color=&amp;quot;#2040a0&amp;quot;&amp;gt;str&amp;lt;/font&amp;gt; &amp;lt;font color=&amp;quot;4444FF&amp;quot;&amp;gt;)&amp;lt;/font&amp;gt;&amp;lt;font color=&amp;quot;4444FF&amp;quot;&amp;gt;;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;a name=&amp;quot;line38&amp;quot;&amp;gt;38&amp;lt;/a&amp;gt; &lt;br /&gt;
&amp;lt;a name=&amp;quot;line39&amp;quot;&amp;gt;39&amp;lt;/a&amp;gt; &amp;lt;font color=&amp;quot;#2040a0&amp;quot;&amp;gt;String&amp;lt;/font&amp;gt;&amp;lt;font color=&amp;quot;4444FF&amp;quot;&amp;gt;*&amp;lt;/font&amp;gt; &amp;lt;font color=&amp;quot;#2040a0&amp;quot;&amp;gt;scan&amp;lt;/font&amp;gt;&amp;lt;font color=&amp;quot;4444FF&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt; &amp;lt;font color=&amp;quot;#2040a0&amp;quot;&amp;gt;FILE&amp;lt;/font&amp;gt; &amp;lt;font color=&amp;quot;4444FF&amp;quot;&amp;gt;*&amp;lt;/font&amp;gt;&amp;lt;font color=&amp;quot;#2040a0&amp;quot;&amp;gt;fpIn&amp;lt;/font&amp;gt;, &amp;lt;font color=&amp;quot;#2040a0&amp;quot;&amp;gt;FILE&amp;lt;/font&amp;gt; &amp;lt;font color=&amp;quot;4444FF&amp;quot;&amp;gt;*&amp;lt;/font&amp;gt;&amp;lt;font color=&amp;quot;#2040a0&amp;quot;&amp;gt;fpOut&amp;lt;/font&amp;gt; &amp;lt;font color=&amp;quot;4444FF&amp;quot;&amp;gt;)&amp;lt;/font&amp;gt;&amp;lt;font color=&amp;quot;4444FF&amp;quot;&amp;gt;;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
syntax highlighted by &amp;lt;a href=&amp;quot;http://www.palfrader.org/code2html&amp;quot;&amp;gt;Code2HTML&amp;lt;/a&amp;gt;, v. 0.9.1&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mark</name></author>
	</entry>
</feed>