00001 #ifndef _TREEPARSER_H_ 00002 #define _TREEPARSER_H_ 00003 00004 #include "stree.h" 00005 #include "rtree.h" 00006 #include "rulesystem.h" 00007 00008 enum ParseType {ParseRules, ParsePHP, ParseNormalizers }; 00009 00011 class XParser{ 00012 protected: 00013 void* parse(const string &fileName, ParseType iparseRules, RuleSystem *ifactor, bool iyydebug); 00014 }; 00016 class RuleParser : public XParser{ 00017 public: 00018 NamedRuleList* parse(const string &fileName, 00019 RuleSystem *factor, 00020 bool iyydebug = 0) { 00021 return (NamedRuleList*)(XParser::parse(fileName,ParseRules,factor,iyydebug)); 00022 }; 00023 }; 00025 class PHPParser : public XParser{ 00026 public: 00027 StatementList* parse(const string &fileName, bool iyydebug = 0) { 00028 return (StatementList*)(XParser::parse(fileName,ParsePHP,NULL,iyydebug)); 00029 }; 00030 }; 00031 00032 static RuleParser* ruleParser = new RuleParser(); 00033 static PHPParser* phpParser = new PHPParser(); 00034 00035 #endif