25. oktober 2002 - 21:10Der er
3 kommentarer og 1 løsning
Rekusvis nedstigning C++
Hej Eksperter! Jeg skal lave en kode til parsning (rekursiv nedstigning), men jeg fatter % is C++.. Nogen der kan hjælpe på vej eller nogen der haft en tillsvarende opgave!??
class ParseNodeB: public ParseNode{ private: public: ParseNodeB(string c):ParseNode(c){} virtual TreeNode * toSyntax(){ if(right->ruleNo==2){ return left->toSyntax(); } else{ TreeNode * x= new TreeExpNode(0,left->toSyntax(),0); return x; } } };
class ParseNodeBPrime: public ParseNode{ private: public: ParseNodeBPrime(string c):ParseNode(c){} virtual TreeNode * toSyntax(){ return 0; } };
class ParseNodeC: public ParseNode{ private: public: ParseNodeC(string c):ParseNode(c){} virtual TreeNode * toSyntax(){ if(ruleNo==1){return center->toSyntax();} else if(ruleNo==2){return new TreeLeafNode(0,'a');} else if (ruleNo==3){return new TreeLeafNode(0,'b');} else {return new TreeEmptyLeafNode(0);} } };
class ParseNodeEmpty: public ParseNode{ private: public: ParseNodeEmpty(string c):ParseNode(c){} virtual TreeNode * toSyntax(){return 0;} };
class ParseNodeTerminal: public ParseNode{ private: public: ParseNodeTerminal(string c):ParseNode(c){} ParseNodeTerminal(char c):ParseNode("_"){name[0]=c;}
virtual TreeNode * toSyntax(){ if (name[0]=='a' || name[0]=='b') return new TreeLeafNode(0,name[0]); else return new TreeEmptyLeafNode(0); } };
Magoo20k >> Din kode løser mere, end hvad jeg har behov for!! 1000 Tak!
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.