www.pudn.com > redown.rar > redown.cpp
#include#include #include #include #include using namespace std; class recurdown { public: recurdown() { input(); init(); } void input(); void init(); void E() { T();E1(); } void E1() { AND();T();E1(); } void T() { F();T1(); } void T1() { MUL();F();T1(); } void F(); void AND(); void MUL(); void get_s(); void error(); int priority(char c); void output() { cout< z; char sym; int n; }; void recurdown::input() { cout<<"input:"< >s; } void recurdown::init() { while(!z.empty()) z.pop(); z.push('#'); n=0;sym='#';s=r='\0'; } void recurdown::AND() { if(sym=='+') { get_s();} else if(sym=='-') { get_s();} else error(); } void recurdown::MUL() { if(sym=='*') {get_s();} else if(sym=='/') get_s(); else error(); } void recurdown::F() { if(sym=='(') { get_s(); E(); if(sym==')') get_s(); else error(); } else if(sym=='i') {r+=sym; get_s();} else error(); } void recurdown::error() { cout<<"Failed Recognization"< >c; if(c=='y') goto l; }