31 lines
739 B
C++
31 lines
739 B
C++
#include <vector>
|
|
#include "lexer/lexi.h"
|
|
#include "lexer/util.h"
|
|
#include "lexer/token.h"
|
|
#include "parser/parser.h"
|
|
|
|
const string usage = "usage: app <input> <output>";
|
|
|
|
int main(int argc, char* argv[]) {
|
|
if(argc != 3) {
|
|
cerr << usage << endl;
|
|
return 1;
|
|
}
|
|
get_file_name(argv[1]);
|
|
vector<string> data = open_file(argv[1]);
|
|
lexi l;
|
|
string temp = argv[2];
|
|
vector<token> s = l.lexical_analyzer(data, temp);
|
|
parser p;
|
|
p.tokens = s;
|
|
try {
|
|
p.check_datalog();
|
|
string out = p.out();
|
|
write_file(out, argv[2]);
|
|
} catch(string str) {
|
|
stringstream s;
|
|
s << "Failure!\n " << str;
|
|
write_file(s.str(), argv[2]);
|
|
}
|
|
}
|