#ifndef __PARSER_H__ #define __PARSER_H__ #include #include #include #include #include "token.h" #include "scheme.h" #include "fact.h" #include "rule.h" #include "query.h" #include "predicate.h" #include "parameter.h" using namespace std; class parser { public: parser() {} vector tokens; set domain; vector schemelist; vector factlist; vector querylist; vector predlist; vector rulelist; string get_token(); void check_datalog(); void check_schemelist(string); void check_scheme(string); void check_factlist(string); void check_fact(string); void check_rulelist(string); void check_rule(string); void check_querylist(string); void check_query(string); void check_predicate_list(string, rule&); predicate check_predicate(string); void check_parameterlist(string type, predicate&); void check_parameter(string, predicate&); void match(string); void error(); string out(); }; #endif