<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mywikibiz.com/index.php?action=history&amp;feed=atom&amp;title=Directory%3ADerek_Elder%2FPrograms%2FFiniteAutomata</id>
	<title>Directory:Derek Elder/Programs/FiniteAutomata - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mywikibiz.com/index.php?action=history&amp;feed=atom&amp;title=Directory%3ADerek_Elder%2FPrograms%2FFiniteAutomata"/>
	<link rel="alternate" type="text/html" href="https://mywikibiz.com/index.php?title=Directory:Derek_Elder/Programs/FiniteAutomata&amp;action=history"/>
	<updated>2026-05-16T00:03:44Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.3</generator>
	<entry>
		<id>https://mywikibiz.com/index.php?title=Directory:Derek_Elder/Programs/FiniteAutomata&amp;diff=96703&amp;oldid=prev</id>
		<title>Derek Elder: +Program</title>
		<link rel="alternate" type="text/html" href="https://mywikibiz.com/index.php?title=Directory:Derek_Elder/Programs/FiniteAutomata&amp;diff=96703&amp;oldid=prev"/>
		<updated>2009-11-02T23:02:45Z</updated>

		<summary type="html">&lt;p&gt;+Program&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
//Program 1d&lt;br /&gt;
//Professor Pattis, ICS-23 Lab 1&lt;br /&gt;
//Programmers: Cameron Ruatta, Derek Elder&lt;br /&gt;
&lt;br /&gt;
import edu.uci.ics.pattis.introlib.Prompt;&lt;br /&gt;
import edu.uci.ics.pattis.introlib.TypedBufferReader;&lt;br /&gt;
import edu.uci.ics.pattis.ics23.collections.*;&lt;br /&gt;
import edu.uci.ics.pattis.ics23.collections.Map.Entry;&lt;br /&gt;
&lt;br /&gt;
import java.util.StringTokenizer;&lt;br /&gt;
import java.io.EOFException;&lt;br /&gt;
&lt;br /&gt;
public class FA&lt;br /&gt;
{&lt;br /&gt;
	public static void main(String[] args)&lt;br /&gt;
	{		&lt;br /&gt;
		Map&amp;lt;String,Map&amp;lt;String,String&amp;gt;&amp;gt; finiteAutomatonMap = new ArrayMap&amp;lt;String,Map&amp;lt;String,String&amp;gt;&amp;gt;();&lt;br /&gt;
		TypedBufferReader tbr = new TypedBufferReader(&amp;quot;Enter Finite Automaton Description File&amp;quot;);&lt;br /&gt;
		//Repeatedly read lines from a file until the EOFException is thrown.&lt;br /&gt;
		for(;;)&lt;br /&gt;
		{&lt;br /&gt;
			try&lt;br /&gt;
			{&lt;br /&gt;
				String line = tbr.readLine();&lt;br /&gt;
				StringTokenizer st = new StringTokenizer(line, &amp;quot;;&amp;quot;);&lt;br /&gt;
				String initialState = st.nextToken();&lt;br /&gt;
				&lt;br /&gt;
				while(st.hasMoreTokens())&lt;br /&gt;
				{&lt;br /&gt;
					String token = st.nextToken();&lt;br /&gt;
					String token2 = st.nextToken();&lt;br /&gt;
&lt;br /&gt;
					//Update map for the current state&lt;br /&gt;
					Map&amp;lt;String,String&amp;gt; stateMap = finiteAutomatonMap.get(initialState);&lt;br /&gt;
					if(stateMap == null)&lt;br /&gt;
					{&lt;br /&gt;
						stateMap = new ArrayMap&amp;lt;String,String&amp;gt;();&lt;br /&gt;
						finiteAutomatonMap.put(initialState,stateMap);&lt;br /&gt;
					}&lt;br /&gt;
					stateMap.put(token,token2);&lt;br /&gt;
				}&lt;br /&gt;
			} catch(EOFException e) {break;}&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		System.out.println(&amp;quot;Finite Automaton&amp;quot;);&lt;br /&gt;
		List&amp;lt;String&amp;gt; stateList = new ArrayList&amp;lt;String&amp;gt;(finiteAutomatonMap.keys());&lt;br /&gt;
		Collections.sort(stateList);&lt;br /&gt;
		for(String states : stateList)&lt;br /&gt;
		{&lt;br /&gt;
			Map&amp;lt;String,String&amp;gt; transitions = finiteAutomatonMap.get(states);&lt;br /&gt;
			System.out.println(states + &amp;quot; transitions = &amp;quot; + transitions);&lt;br /&gt;
		}	&lt;br /&gt;
		&lt;br /&gt;
		tbr = new TypedBufferReader(&amp;quot;Enter start state/inputs file&amp;quot;);&lt;br /&gt;
		String initialState = &amp;quot;&amp;quot;, finalState = &amp;quot;&amp;quot;;&lt;br /&gt;
		for(;;)&lt;br /&gt;
		{&lt;br /&gt;
			try&lt;br /&gt;
			{&lt;br /&gt;
				String line = tbr.readLine();&lt;br /&gt;
				StringTokenizer st = new StringTokenizer(line, &amp;quot;;&amp;quot;);&lt;br /&gt;
				initialState = st.nextToken();&lt;br /&gt;
				String currentState = initialState;&lt;br /&gt;
				System.out.println(&amp;quot;Finite Automaton&amp;quot;);&lt;br /&gt;
				System.out.println(&amp;quot;Initial state = &amp;quot; + initialState);&lt;br /&gt;
				&lt;br /&gt;
				while(st.hasMoreTokens())&lt;br /&gt;
				{&lt;br /&gt;
					String token = st.nextToken();&lt;br /&gt;
&lt;br /&gt;
					currentState = finiteAutomatonMap.get(currentState).get(token);&lt;br /&gt;
					System.out.println(&amp;quot;input = &amp;quot; + token + &amp;quot;; new state = &amp;quot; + currentState);&lt;br /&gt;
					finalState = currentState;&lt;br /&gt;
				}&lt;br /&gt;
			} catch(EOFException e) {break;}&lt;br /&gt;
		}&lt;br /&gt;
		System.out.println(&amp;quot;Final state = &amp;quot; + finalState);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Derek Elder</name></author>
	</entry>
</feed>