FunctionDefinition* configureRuleForFunction(Parser* pParser, Repository* pRepo) { FunctionDefinition* pFunctionDefinition = new FunctionDefinition(); PushFunction* pPushFunction = new PushFunction(pRepo); AddFunctionNode* pAddFunctionNode = new AddFunctionNode(pRepo); pFunctionDefinition->addAction(pPushFunction); pFunctionDefinition->addAction(pAddFunctionNode); pParser->addRule(pFunctionDefinition); return pFunctionDefinition; }
int main(int argc, char* argv[]) { std::cout << "\n Testing ActionsAndRules class\n " << std::string(30,'=') << std::endl; try { //std::queue<std::string> resultsQ; PrintPreproc pp; PreprocStatement pps; pps.addAction(&pp); FunctionDefinition fnd; PrintFunction prt; fnd.addAction(&prt); Toker toker("../ActionsAndRules.h"); SemiExp se(&toker); Parser parser(&se); parser.addRule(&pps); parser.addRule(&fnd); while(se.get()) parser.parse(); std::cout << "\n\n"; } catch(std::exception& ex) { std::cout << "\n\n " << ex.what() << "\n\n"; } }
int main(int argc, char* argv[]) { std::cout << "\n Testing ActionsAndRules class\n " << std::string(30,'=') << std::endl; RelationshipAnal* p = new RelationshipAnal; TypeAnal* q = new TypeAnal; try { PrintPreproc pp; PreprocStatement pps; pps.addAction(&pp); FunctionDefinition fnd; PrintFunction prt; fnd.addAction(&prt); ClassStructEnumDefinition cls1; std::vector<std::string> classResult; PrintClass cls2(&classResult); cls1.addAction(&cls2); InheritanceDetection* cls3 = new InheritanceDetection; InheritanceAction* cls4 = new InheritanceAction(q, p); cls3->addAction(cls4); Toker toker("../ActionsAndRules.h"); SemiExp se(&toker); Parser parser(&se); parser.addRule(&pps); parser.addRule(&fnd); parser.addRule(&cls1); parser.addRule(cls3); while(se.get()) parser.parse(); std::cout << "\n\n"; } catch(std::exception& ex) { std::cout << "\n\n " << ex.what() << "\n\n"; } }
int main(int argc, char* argv[]) { std::cout << "\n Testing ActionsAndRules class\n " << std::string(30,'=') << std::endl; try { std::queue<std::string> resultsQ; PreprocToQ ppq(resultsQ); //Modified Pallavi PrintPreproc ppq; PreprocStatement pps; pps.addAction(&ppq); FunctionDefinition fnd; PrettyPrintToQ pprtQ(resultsQ); //Modified Pallavi PrettyPrintFunction pprtQ; fnd.addAction(&pprtQ); Toker toker("../ActionsAndRules.h"); SemiExp se(&toker); Parser parser(&se); parser.addRule(&pps); parser.addRule(&fnd); while(se.get()) parser.parse(); size_t len = resultsQ.size(); for(size_t i=0; i<len; ++i) { std::cout << "\n " << resultsQ.front().c_str(); resultsQ.pop(); } std::cout << "\n\n"; } catch(std::exception& ex) { std::cout << "\n\n " << ex.what() << "\n\n"; } }