Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 5

NFA /** * * @author 10i454 */ import java.io.

*; public class nfa { public static void main(String arg[]) throws IOException { int [][]transition_table=new int[20][4]; int i, j=1, k=1, st=0,prst=0, par=0, prepar=0, clbr=0, kcl=0; char [] input_array=new char[50]; DataInputStream din=new DataInputStream(System.in); transition_table[k][j+2]=transition_table[prst][j+2]=0; System.out.println("Enter the Regular Expression: "); String input=din.readLine(); System.out.println("****** NFA TRANSITION TABLE *****"); System.out.println("st i/p tr-st"); for(i=0;i<input.length();i++) { input_array[i]=input.charAt(i); } for(i=0;i<input.length()+1;i++) { if(kcl>0) { kcl--; transition_table[k][j]=transition_table[prst][j+2]; transition_table[k][j+2]=transition_table[st][j+2]; System.out.println(transition_table[k][j]+" "+transition_table[k-1][j+1]+" "+transition_table[k][j+2]); st=k; prst=k; k++; i++; } if(input_array[i]=='1') { transition_table[k][j]=transition_table[prst][j+2];

transition_table[k][j+1]=1; transition_table[k][j+2]=transition_table[st][j+2]+1; System.out.println(transition_table[k][j]+" "+transition_table[k][j+1]+" "+transition_table[k][j+2]); st=k; prst=k; k++; if(clbr>0) { i--; clbr--; prst--; st--; } } else if(input_array[i]=='0') { transition_table[k][j]=transition_table[prst][j+2]; transition_table[k][j+1]=0; transition_table[k][j+2]=transition_table[st][j+2]+1; System.out.println(transition_table[k][j]+" "+transition_table[k][j+1]+" "+transition_table[k][j+2]); st=k; prst=k; k++; if(clbr>0) { i--; clbr--; prst--; st--; } } else if(input_array[i]=='+') { transition_table[k][j]=transition_table[prst][j+2]; //transition_table[k][j+1]; transition_table[k][j+2]=par; prst=k; st=k-1; k++;

} else if(input_array[i]=='(') { prepar=par; par=transition_table[prst][j+2]; } else if(input_array[i]==')') { par=prepar; prst=prst-2; clbr++; } else if(input_array[i]=='*') { kcl=1; i--; } } } }

You might also like