수업시간에 교수님이 한번 해보라고 농담삼아 던지신 심플파서
S-> aS | bS | c '\n' 으로 끝나는 심플한 그래머를 만족하는
파서를 작성하는것.
의외로 간단하다....
#include <iostream>
#include <conio.h>
using namespace std;
// S->aS|hS|c'\n'
int S()
{
char ch,temp;
ch=getch();
if(ch=='a' || ch=='h')
{
cout << "valid Parse : " << ch << endl;
return S();
}
else if(ch=='c')
{
temp=getch();
if(temp=='\0' || temp==13)
{
cout << "valid Parse : " << ch << endl<<endl;
cout << "Finished Parse : OK" << endl;
return 0;
}
else
{
cout << endl << "invalid Parse : " << ch << endl;
cout << "err" << endl;
return -1;
}
}
else
{
cout << endl << "invalid Parse : " << ch << endl;
cout << "ERR" << endl;
return -1;
}
return 0;
}
int main()
{
// Start Parser
S();
return 0;
}