Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //ifVar1>Var2thenVar1=5endif
- //ifVar2<14thenVar3=3+22endif
- //ifVar>Var0thenVar0=Var2elseVar0=Var1endif
- //ifVar1<Var2thenVar2=Var1+Var2elseVar2=Var1+13endif
- #include <iostream>
- #include <string>
- using namespace std;
- bool FSM(char ch, int &S)
- {
- switch(S) {
- case 0:
- if(ch=='i') {S=1; return false;}
- S=-1; return true;
- case 1:
- if(ch=='f') {S=2; return false;}
- S=-1; return true;
- case 2:
- if(ch>='A' && ch<='Z' || ch>='a' && ch<='z') {S=3; return false;}
- S=-1; return true;
- case 3:
- if(ch>='A' && ch<='Z' || ch>='a' && ch<='z' || ch>='0' && ch<='9') {S=3; return false;}
- if(ch=='<' || ch=='>') {S=4; return false;}
- S=-1; return true;
- case 4:
- if(ch>='A' && ch<='Z' || ch>='a' && ch<='z') {S=5; return false;}
- if(ch>='0' && ch<='9') {S=6; return false;}
- S=-1; return true;
- case 5:
- if (ch=='t') {S=7; return false;}
- if(ch>='A' && ch<='Z' || ch>='a' && ch<='z' || ch>='0' && ch<='9') {S=5; return false;}
- S=-1; return true;
- case 6:
- if(ch>='0' && ch<='9') {S=6; return false;}
- if (ch=='t') {S=7; return false;}
- S=-1; return true;
- case 7:
- if (ch=='h') {S=8; return false;}
- if(ch>='A' && ch<='Z' || ch>='a' && ch<='z' || ch>='0' && ch<='9') {S=5; return false;}
- S=-1; return true;
- case 8:
- if (ch=='e') {S=9; return false;}
- if(ch>='A' && ch<='Z' || ch>='a' && ch<='z' || ch>='0' && ch<='9') {S=5; return false;}
- S=-1; return true;
- case 9:
- if (ch=='n') {S=10; return false;}
- S=-1; return true;
- case 10:
- if(ch>='A' && ch<='Z') {S=11; return false;}
- S=-1; return true;
- case 11:
- if(ch>='A' && ch<='Z' || ch>='a' && ch<='z' || ch>='0' && ch<='9') {S=11; return false;}
- if (ch=='=') {S=12; return false;}
- S=-1; return true;
- case 12:
- if(ch>='A' && ch<='Z' || ch>='a' && ch<='z') {S=13; return false;}
- if(ch>='0' && ch<='9') {S=14; return false;}
- S=-1; return true;
- case 13:
- if (ch=='e') {S=18; return false;}
- if(ch>='A' && ch<='Z' || ch>='a' && ch<='z' || ch>='0' && ch<='9') {S=13; return false;}
- if (ch=='+' || ch=='-') {S=15; return false;}
- S=-1; return true;
- case 14:
- if(ch>='0' && ch<='9') {S=14; return false;}
- if (ch=='+' || ch=='-') {S=15; return false;}
- if (ch=='e') S=18; return false;
- S=-1; return true;
- case 15:
- if(ch>='A' && ch<='Z' || ch>='a' && ch<='z') {S=16; return false;}
- if(ch>='0' && ch<='9') {S=17; return false;}
- S=-1; return true;
- case 16:
- if (ch=='e') {S=18; return false;}
- if(ch>='A' && ch<='Z' || ch>='a' && ch<='z' || ch>='0' && ch<='9') {S=16; return false;}
- S=-1; return true;
- case 17:
- if(ch>='0' && ch<='9') {S=17; return false;}
- if (ch=='e') {S=18; return false;}
- S=-1; return true;
- case 18:
- if (ch=='l') {S=19; return false;}
- if (ch=='n') S=30; return false;
- if(ch>='A' && ch<='Z' || ch>='a' && ch<='z' || ch>='0' && ch<='9') {S=16; return false;}
- S=-1; return true;
- case 19:
- if (ch=='s') {S=20; return false;}
- if(ch>='A' && ch<='Z' || ch>='a' && ch<='z' || ch>='0' && ch<='9') {S=16; return false;}
- S=-1; return true;
- case 20:
- if (ch=='e') {S=21; return false;}
- if(ch>='A' && ch<='Z' || ch>='a' && ch<='z' || ch>='0' && ch<='9') {S=16; return false;}
- S=-1; return true;
- case 21:
- if(ch>='A' && ch<='Z' || ch>='a' && ch<='z') {S=22; return false;}
- S=-1; return true;
- case 22:
- if(ch>='A' && ch<='Z' || ch>='a' && ch<='z' || ch>='0' && ch<='9') {S=22; return false;}
- if (ch=='=') {S=23; return false;}
- S=-1; return true;
- case 23:
- if(ch>='A' && ch<='Z' || ch>='a' && ch<='z') {S=24; return false;}
- if(ch>='0' && ch<='9') {S=25; return false;}
- S=-1; return true;
- case 24:
- if (ch=='e') {S=29; return false;}
- if(ch>='A' && ch<='Z' || ch>='a' && ch<='z' || ch>='0' && ch<='9') {S=24; return false;}
- if (ch=='+' || ch=='-') {S=26; return false;}
- S=-1; return true;
- case 25:
- if (ch=='e') {S=29; return false;}
- if(ch>='0' && ch<='9') {S=25; return false;}
- if (ch=='+' || ch=='-') {S=26; return false;}
- S=-1; return true;
- case 26:
- if(ch>='A' && ch<='Z' || ch>='a' && ch<='z') {S=27; return false;}
- if(ch>='0' && ch<='9') {S=28; return false;}
- S=-1; return true;
- case 27:
- if (ch=='e') {S=29; return false;}
- if(ch>='A' && ch<='Z' || ch>='a' && ch<='z' || ch>='0' && ch<='9') {S=27; return false;}
- S=-1; return true;
- case 28:
- if(ch>='0' && ch<='9') {S=28; return false;}
- if (ch=='e') {S=29; return false;}
- S=-1; return true;
- case 29:
- if(ch=='n') {S=30; return false;}
- if(ch>='A' && ch<='Z' || ch>='a' && ch<='z' || ch>='0' && ch<='9') {S=27; return false;}
- S=-1; return true;
- case 30:
- if(ch=='d') {S=31; return false;}
- if(ch>='A' && ch<='Z' || ch>='a' && ch<='z' || ch>='0' && ch<='9') {S=27; return false;}
- S=-1; return true;
- case 31:
- if(ch=='i') {S=32; return false;}
- if(ch>='A' && ch<='Z' || ch>='a' && ch<='z' || ch>='0' && ch<='9') {S=27; return false;}
- S=-1; return true;
- case 32:
- if(ch=='f') {S=33; return false;}
- S=-1; return true;
- case 33:
- break;
- }
- }
- int main() {
- int S=0;
- string str;
- int finalState = 33;
- bool check = false;
- while(getline(cin, str), str != "") {
- if(!check)
- check=true;
- else
- FSM('\n',S);
- for(auto i: str)
- if(FSM(i,S)) break;
- }
- cout << S << endl;
- if(finalState == S)
- cout<<"Yes";
- else
- cout<<"No";
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement