Yes.
Here is the program with the lines specific to a particular automaton removed.
class FSA
{
public boolean recognize(String str)
{
final int reject = ; // rejection state
int state = 0; // the current state
char current; // the current character
int index = 0 ; // index of the current character
// continue while there are input characters
// and the reject state has not been reached
while ( index < str.length() && state != reject )
{
current = str.charAt( index++ ) ;
// Model State --- copy and paste as needed
if ( state== && current== )
state = ;
else if ( state== && current== )
state = ;
else if ( state== && current >= && current <= )
state = ;
else
state = reject ;
}
// if the final state was reached with the last character,
// the string is accepted.
if ( index == str.length() && state == )
return true;
else
return false;
}
}
class FSAtester
{
public static void main (String[] args)
{
String str = null;
FSA fsa = new FSA();
str = args[0];
if ( fsa.recognize( str ) )
System.out.println("The string is recognized.");
else
System.out.println("The string is rejected.");
}
}
The state transition statements in the body of
the while loop need to be modified for the
specific
finite state automaton
you wish to implement.
Recall that there will be an if or else if
for each state transition of the automaton.
Is Big_AL a legal Java identifier?