forked from niyasc/Compiler-Design-Lab
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathq1.cpp
More file actions
120 lines (109 loc) · 2.2 KB
/
q1.cpp
File metadata and controls
120 lines (109 loc) · 2.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
#include <iostream>
#include <fstream>
#include<string>
using namespace std;
int main()
{
ifstream infile;
infile.open("fAutomata.txt");
int initial,i=0,k=0,l=0,nf,nr,nc;
char ch;
//cout<<"helloworld";
int automata[100][100],final[100];
string rline;
infile.get(ch);
initial=(int)ch-48;
getline(infile,rline);
int j=0;
int len;
/*
len=rline.size();
for(j=0;j<len;j++)
{
//final[j]=rline[i];
// cout<<rline[i];
if(rline[j]!=',')
{
cout<<"abdul";
final[k]=rline[j];
cout<<final[k];
k++;
}
}
cout<<"\n";*/
//i++;
// cout<<rline;
cout<<initial<<"\n";
i=0;
while(getline(infile,rline)){
len=rline.size();
k=0;
for(j=0;j<len;j++)
{
if(l==0)
{
if(rline[j]!=',')
{
final[k]=rline[j]-'0';
// cout<<final[k];
k++;
}
i=-1;
nf=k;
}
else{
//final[j]=rline[i];
// cout<<rline[i];
if(rline[j]!=' ')
{
if(rline[j]=='-')
automata[i][k]=-1;
else
automata[i][k]=rline[j]-'0';
cout<<automata[i][k]<<" ";
k++;
}
}
}
l=1;
cout<<"\n";
i++;
}
//cout<<automata[0][0];
string inputVal;
int inputvalIndex;
while(1){
cout<<"Enter the string\n";
cin>>inputVal;
i=0;
j=initial;k=0;
int result;
while(inputVal[i]!='\0')
{
inputvalIndex=inputVal[i]-'a';
//cout<<inputvalIndex<<"\n";
result= automata[j][inputvalIndex];
// cout<<"\n"<<automata[j][inputvalIndex];
j=result;
if(j==-1)
break;
i++;
}
int flag=0;
//cout<<j;
for(i=0;i<nf;i++)
{
if(j==-1)
break;
if(j==final[i])
flag=1;
}
if(flag==1)
{
cout<<"accept\n";
}
else
cout<<"reject\n";
}
return 0;
}